全部產品
Search
文件中心

Elastic Compute Service:將x86應用遷移到倚天雲端服務器

更新時間:May 07, 2025

基於倚天710 ARM CPU架構的倚天雲端服務器可以顯著提升執行個體的計算、儲存和網路效能。您可以將x86平台的應用遷移到倚天執行個體伺服器上使用,擷取更優效能的雲端服務體驗。本文介紹遷移到倚天雲端服務器的遷移步驟、情境和使用流程。

遷移背景

什麼是倚天雲端服務器

倚天雲端服務器是基於倚天執行個體(包含倚天710 ARM CPU架構的ECS執行個體)的雲端服務器。通過晶片快速路徑加速手段,完成計算、儲存、網路效能的數量級提升,可應用於雲原生、視頻編解碼、高效能運算、基於CPU的機器學習和遊戲服務等情境。

說明

基於倚天710 ARM CPU架構的執行個體規格類型系列包括g8y、c8y和r8y。您可以通過以下連結瞭解執行個體規格及計算、儲存、網路等指標資料。

遷移必要性

倚天雲端服務器採用ARM架構(與x86架構不同)。若需將x86平台上的原始碼程式部署到倚天雲端服務器上使用,必須經過重新編譯,並建議進行針對性最佳化以提升效能。

遷移步驟

將基於x86平台的應用遷移到倚天伺服器上,主要分為以下兩步:

  1. 遷移前準備

    您需要規劃雲端服務器的作業系統、基礎軟體選型、硬體資源配置;需要檢查代碼是否存在x86架構相關的彙編指令、硬體特性依賴等;需要檢查第三方庫是否提供ARM版本;需要進行相容性測試等。

  2. 軟體編譯遷移

    根據軟體程式設計語言,安裝編譯器、軟體版本等,之後重新編譯。

遷移情境

軟體編譯遷移主要包含以下兩種情境:

  • 源碼軟體:指開發人員開發的或者基於開源軟體增強開發的軟體。自研軟體使用的程式設計語言主要包含以下兩類:

    • 編譯型語言:以C++/Go為代表的編譯型語言,這些語言會將原始碼編譯成架構相關的二進位檔案,因此遷移後必須進行重新編譯。更多資訊,請參見Make/CMake構建檔案C/C++語言遷移

    • 解釋型語言:以Java/Python為代表的解釋型語言,這些語言原始碼編譯檔案與架構無關,理論上可以跨架構運行。但是,如果解釋型語言引入了本地庫,比如Java應用通過JNI調用了C開發的動態連結程式庫,那麼此應用就與架構相關,必須重新編譯。更多資訊,請參見Java語言遷移Python語言遷移

  • 開源軟體:開源軟體指開發人員從開源社區下載未做源碼修改的軟體或者所使用作業系統生態中預設攜帶的軟體。當前大部分開源軟體在倚天ARM平台上已經提供較好的應用生態,您可以直接使用作業系統提供的開源生態軟體來安裝部署。更多資訊,請參見開源軟體遷移

遷移流程

從x86平台遷移到倚天雲端服務器之前,需要準備環境資源,包括雲端服務器、作業系統、基礎軟體。將x86平台業務軟體遷移到倚天雲端服務器,具體流程如下:

步驟一:建立倚天雲端服務器

具體步驟,請參見自訂購買執行個體。您需要注意以下參數。

參數

說明

執行個體規格

  • g8y(首選)

  • c8y

  • r8y

鏡像

  • Alibaba Cloud Linux

    • Alibaba Cloud Linux 3.2104 LTS 64位 ARM版(首選)

    • Alibaba Cloud Linux 3.2104 LTS 64位 ARM版 等保2.0三級版

  • Anolis OS

    • Anolis 8.8 64位 RHCK ARM版

    • Anolis 8.8 64位 ANCK ARM版 等保2.0三級版

    • Anolis 8.8 64位 ANCK ARM版

    • Anolis 8.6 64位 RHCK ARM版

    • Anolis 8.6 64位 ANCK ARM版

    • Anolis 8.4 64位 RHCK ARM版

    • Anolis 8.4 64位 ANCK ARM版

    • Anolis 7.9 64位 RHCK ARM版

    • Anolis 7.9 64位 ANCK ARM版

  • Ubuntu

    • Ubuntu 22.04 64位 ARM版

    • Ubuntu 20.04 64位 ARM版

    • Ubuntu 18.04 64位 ARM版

  • CentOS 7.9 64位 ARM

    說明

    CentOS 7系列已停止維護(EOL),不建議您使用該版本。

  • Debian

    • Debian 11.5 64位 ARM版

    • Debian 11.2 64位 ARM版

    • Debian 10.13 64位 ARM版

      說明

      Debian 10.13已停止維護(EOL),不建議您使用該版本。

步驟二:軟體遷移

軟體遷移主要分為自研軟體和開源軟體,推薦使用的編譯器、運行庫、應用等版本如下表所示。請自行安裝使用。

分類

軟體

推薦版本

說明

編譯器

GCC

gcc 10.2.1

建議使用gcc 10以上版本,效能有大幅提升。

LLVM

LLVM 13/clang 13

  • clang 13使用的glibc版本為2.17及以上

  • clang 13使用c++執行階段程式庫為libstdc++ (gcc 6/9以上版本)

  • clang 13依賴llvm 13和gcc-c++ rpm

Glibc

glibc 2.32

JDK

Dragonwell 11或OpenJDK 11

優先推薦Dragonwell,效能和支援更好。

Golang

go 1.18+

Go SDK正持續針對ARM架構進行最佳化,推薦您使用最新版本:

  • Go 1.16最佳化了ARM原子操作效能及資料拷貝。

  • Go 1.18從棧傳參最佳化為寄存器傳參,在ARM架構下有10%的效能提升。

Python

3.8

Python 2.7版本已於2020年1月1日停止維護(EOL),Python 3.6版本已於2022年12月23日停止維護(EOL),建議您使用Python 3.7及以上版本。

PHP

7.4+

對應社區支援

容器

K8s

K8s 1.22 Containerd 1.5.0+

對應社區支援

Web應用

Nginx

使用推薦的作業系統版本提供的內建版本

作業系統發行商維護支援

httpd

使用推薦的作業系統版本提供的內建版本

作業系統發行商維護支援

NodeJS

使用推薦的作業系統版本提供的內建版本

作業系統發行商維護支援

資料庫

MySQL

使用推薦的作業系統版本提供的內建版本

作業系統發行商維護支援

Redis

使用推薦的作業系統版本提供的內建版本

作業系統發行商維護支援

巨量資料

Hadoop

Hadoop 3.3.1

對應社區支援

Spark

Spark 3.2

對應社區支援

Hive

Hive 3.1

對應社區支援

Elasticsearch

ES 7.12

對應社區支援

其他

Gromacs

new version

對應社區支援

BWA

new version

對應社區支援

Gatk

4.3.0.0

對應社區支援

步驟三:遷移後編譯

根據您的業務需求,請參考如下指導對軟體進行編譯構建。

參考文檔

查看CPU架構

執行uname -march命令查看CPU架構,不同架構回顯資訊如下:

  • ARM架構顯示:aarch64

    image

  • x86架構顯示:x86_64

    image

查看CPU詳細資料

執行lscpu命令查看CPU詳細資料,不同架構回顯資訊如下:

  • ARM架構顯示:

    image

  • x86架構顯示:

    image

查看OS資訊

x86架構與ARM架構的OS資訊不同。執行cat /proc/version命令查看OS資訊及編譯器版本,不同架構回顯資訊如下:

  • x86架構顯示:

    image

  • ARM架構顯示:

    image