全部產品
Search
文件中心

Alibaba Cloud Linux:Alibaba Cloud Linux 3與CentOS 7的區別

更新時間:Jul 17, 2024

CentOS 7停止維護EOL(End of Life)後,您可以選擇將CentOS 7遷移至Alibaba Cloud Linux 3。遷移前可以通過本文瞭解Alibaba Cloud Linux 3與CentOS 7有哪些區別。

說明

核心及核心工具鏈區別

組件

CentOS 7 x86

Alibaba Cloud Linux 3 x86

Alibaba Cloud Linux 3 Arm64

說明

gcc

4.8.5_44.el7

10.2.1_3.8.al8

10.2.1-3.5.al8

在遷移到Alibaba Cloud Linux 3之後,您的應用程式需要重新編譯以適配新版本的動態連結程式庫,否則可能出現連結失敗的情況。

glibc

2.17_326.el7_9

2.32_1.16.al8

2.32-1.12.al8

核心

3.10.0-1160.114.2.el7

5.10.134-16.1.al8

更多核心差異請參見核心區別

binutils

2.27_44.base.el7_9.1

2.35_12.2.al8

systemd

219_78.el7_9.9

239_74.0.3.al8

grub2

2.02_0.87.0.2.el7.centos.14

2.02-148.0.1.al8.1

系統重要組件版本區別

說明

如果您在CentOS 7上通過編譯安裝的方式使用更高版本的組件,而非直接使用yum源提供的組件,在遷移至Alibaba Cloud Linux 3後可能系統會出現無法登入,應用無法正常運行等現象。此時,您需要選擇在Alibaba Cloud Linux 3上對相關組件進行重新編譯,或者使用Alibaba Cloud Linux 3 yum源提供的組件。

組件

CentOS 7 x86

Alibaba Cloud Linux 3 x86 & Arm64

說明

python

python2/python3.4/python3.6

python2/python3.6/python3.8/python3.11

在CentOS上/usr/bin/python預設指向python2,在Alinux上預設指向python3。如果您的程式中直接使用python xxx.py執行python程式,則可能遇到相容性問題。

java-1.8.0-alibaba-dragonwell

3:8.15.16.372-2.al8

在執行yum install java時,CentOS預設安裝java-1.8.0-openjdk,而Alibaba Cloud Linux預設安裝java-1.8.0-alibaba-dragonwell。如果您需要在Alibaba Cloud Linux上安裝openjdk,請使用yum install java-1.8.0-openjdk

java-1.8.0-openjdk

1:1.8.0.412.b08-1.el7_9

1:1.8.0.412.b08-2.0.1.1.al8

golang

1.20.12-1.el7

1.20.12-8.0.1.al8

nginx

1:1.20.1-10.el7

1:1.20.1-1.0.3.al8

php

5.4.16-48.el7

7.4.33-1.0.1.al8

mysql

8.0.36-1.0.1.1.al8

在執行yum install mysql時,CentOS預設安裝MariaDB,而Alibaba Cloud Linux預設安裝MySQL。

mariadb

5.5.68-1.el7

3:10.5.22-1.0.1.al8

postgresql

9.2.24-9.el7_9

13.14-1.0.1.al8

redis

3.2.12-2.el7

6.2.7-1.0.2.al8

openssl

1.0.2k_26.el7_9

1.1.1k_12.0.1.al8

系統重要組件區別

組件

CentOS 7 x86

Alibaba Cloud Linux 3 x86 & Arm64

包管理

yum

dnf

網路資料包過濾架構

iptables

nftables

容器組件

docker

podman

說明

您也可以引入docker-ce自行部署。

連接埠區別

版本

協議

連接埠

服務

CentOS 7

TCP/UDP

111

rpcbind

TCP

22

SSH

TCP

25

smtp

UDP

68

說明

由NetworkManager進程監聽。

dhcp

UDP/UDP6

323

chronyd

Alibaba Cloud Linux 3

TCP/UDP/TCP6/UDP6

111

rpcbind

TCP

22

SSH

UDP

68

說明

由dhclient進程監聽。

dhcp

UDP/UDP6

323

chronyd

TCP/UDP

5355

systemd-resolve

核心區別

sysctl系統參數

說明

sysctl系統參數差異較多,本文僅給出重要的sysctl差異說明。

變更配置項

sysctl

CentOS 7 x86

Alibaba Cloud Linux 3 x86 & Arm64

說明

Linux社區補丁資訊

讀寫屬性

讀寫屬性

kernel.panic

0

rw

1

rw

預設行為改變。

此選項用於控制核心在發生panic後,需要等待n(sysctl的值)秒自動重啟。

  • n>0代表等待n秒

  • n=0代表不重啟

  • n<0代表立即重啟

kernel.watchdog_thresh

10

rw

50

rw

以秒為單位的watchdog逾時時間。

雲上鏈路更為複雜,調整該參數以降低誤判warning的機率。

kernel.nmi_watchdog

1

rw

0

rw

是否開啟hard lockup檢測。

在ECS上不支援NMI中斷,因此開啟此功能並無意義。

如果您使用裸金屬,且需要該功能,您可以手工開啟該配置。

kernel.hung_task_timeout_secs

120

rw

240

rw

以秒為單位的,處於D狀態的進程未被調度的逾時時間。

雲上鏈路更為複雜,調整該參數以降低誤判warning的機率。

vm.drop_caches

0

rw

-w

讀寫權限變更。

該選項原本支援讀取上次寫入的值的行為誤導使用者該選項是設定系統到非緩衝模式,而非發起一次清除緩衝的任務。為防止誤解,去掉了該開關的讀許可權。

  • Commit ID:204cb79ad42f015312a5bbd7012d09c93d9b46fb

  • Subject資訊:kernel:sysctl: make drop_caches write-only

vm.dirty_ratio

30

rw

40

rw

該選項受到tuned的影響,在CentOS 7上tuned使用virtual-guest進行調優,設定的值為30。在Alibaba Cloud Linux上使用ecs-performance模式,值為40。

vm.numa_zonelist_order

default

rw

Node

rw

隨Linux社區版本迭代而失效。

該選項的作用是控制系統記憶體配置時從各個node&zone選擇的順序,隨著Linux社區版本迭代,已不需要使用者手動控制。

  • Commit ID:c9bff3eebc09be23fbc868f5e6731666d23cbea3

  • Subject資訊:mm, page_alloc: rip out ZONELIST_ORDER_ZONE

net.ipv4.tcp_mem

rw

rw

該選項由3個整型的值(low, pressure, max)組成,分別代表:

  • low:當TCP使用的頁數少於此值時,系統不予關心。

  • pressure:TCP使用的頁數高於此值時,系統會減少記憶體使用量,進入pressure mode。

  • max:所有TCP socket最大能使用的頁的數量。

該選項的預設值與系統記憶體大小緊密相關,但在同樣的記憶體規格上您會觀察到Alibaba Cloud Linux 3上緩衝區大小相比CentOS 7小一半左右,這是Linux社區版本迭代調整了預設值的初始化演算法導致的。

  • Commit ID:b66e91ccbc34ebd5a2f90f9e1bc1597e2924a500

  • Subject資訊:tcp: halvestcp_mem[] limits

net.ipv4.tcp_fastopen

0

rw

1

rw

隨Linux社區版本調整預設值。

該選項用於控制系統是否支援發送和接收TCP Fast Open相關報文。

  • 0表示不支援。

  • 1表示僅支援發送相關報文。

  • Commit ID:e1cfcbe82b4534bd0f99fef92a6d33843fd85e0e

  • Subject資訊:ipv4: Namespaceify tcp_fastopen knob

net.ipv4.tcp_fack

1

rw

0

rw

隨Linux社區版本迭代而失效。

用於支援TCP FACK特性,該特性已被RACK特性替代,因此在Alibaba Cloud Linux 3上已失效。

  • Commit ID:713bafea92920103cd3d361657406cf04d0e22dd

  • Subject資訊:tcp: retire FACK loss detection

net.core.somaxconn

128

rw

4096

rw

隨Linux社區版本而調整預設值。

該選項用於控制socket監聽隊列的最大長度,128已無法滿足現代伺服器的需求,故調整為4096。

  • Commit ID:19f92a030ca6d772ab44b22ee6a01378a8cb32d4

  • Subject資訊:net: increase SOMAXCONN to 4096

net.core.default_qdisc

pfifo_fast

rw

fq_codel

rw

預設的qdisc模型,fq_codel能更好地解決bufferbloat問題。

已移除配置項

已移除配置項是指在CentOS 7中存在,在Alibaba Cloud Linux 3中被移除的配置項。

sysctl參數

讀寫屬性

說明

Linux社區補丁資訊

kernel.panic_on_stackoverflow

0

rw

隨Linux社區版本迭代被移除。

該選項用於啟用核心棧溢出檢測,在後續迭代中,核心棧已預設帶上guard page進行檢測,故該功能失效。

  • Commit ID:117ed45485413b1977bfc638c32bf5b01d53c62b

  • Subject資訊:x86/irq/64: Remove stack overflow debug code

kernel.random.read_wakeup_threshold

64

rw

隨Linux社區版本迭代被移除。

  • Commit ID:c95ea0c69ffda19381c116db2be23c7e654dac98

  • Subject資訊:random: remove kernel.random.read_wakeup_threshold

kernel.compat-log

1

rw

隨Linux社區版本迭代被移除。

在x86 64位架構上不支援虛擬8086模式,如果配置了該選項,則調用vm86old()和vm86()時會列印warning日誌。由於該warning並不是必要的,所以後續被移除了,此選項也一併被移除。

  • Commit ID:9dcfcda5768eda793e15a1a73da38cfd1fc1a47a

  • Subject資訊:compat: remove compat_printk()

kernel.numa_balancing_settle_count

4

rw

隨Linux社區版本迭代被移除。

Linux對不同類型的任務分別採用更科學的指標區分負載,從而不再需要該選項來管控頻率的閾值。

  • Commit ID:1bd53a7efdc988163ec4c25f656df38dbe500632

  • Subject資訊:sched/numa: Drop sysctl_numa_balancing_settle_count sysctl

kernel.sched_shares_window_ns

10000000

rw

隨Linux社區版本迭代被移除,該功能在CentOS 7上已失效。

  • Commit ID:3c3fcb45d524feb5d14a14f332e3eec7f2aff8f3

  • Subject資訊:sched/fair: Kill the unused 'sched_shares_window_ns' tunable

kernel.sched_time_avg_ms

1000

rw

隨Linux社區版本迭代被移除。

由於Linux對RT調度類採用PELT負載跟蹤演算法,從而拋棄舊演算法及相關參數,該參數則是其中之一。

  • Commit ID:5fd778915ad29184a5ff8eb82d1118f6916b79e4

  • Subject資訊:sched/sysctl: Remove unused sched_time_avg_ms sysctl

vm.hugepages_treat_as_movable

0

rw

隨Linux社區版本迭代被移除。

該配置項本意是允許從 ZONE_MOVABLE地區分配不可遷移的大頁,以減少記憶體片段,但該功能目前已嚴重影響記憶體熱插拔,所以被移除。

  • Commit ID:d6cb41cc44c63492702281b1d329955ca767d399

  • Subject資訊:mm, hugetlb: remove hugepages_treat_as_movable sysctl

vm.nr_pdflush_threads

0

r-

隨Linux社區版本迭代被移除,該功能在CentOS 7上已失效。

  • Commit ID:b35bd0d9f8a8ea17aae40893e18274d191a2d2c5

  • Subject資訊:sysctl: remove /proc/sys/vm/nr_pdflush_threads

net.ipv4.tcp_tw_recycle

0

rw

隨Linux社區版本迭代被移除。

該配置項允許處於TIME-WAIT的socket被快速回收。由於在實現上假設遠端同一地址的時間戳記是單調遞增的,而NAT和TCP時間戳記隨機漂移特性已打破該假設,導致該功能無法正常使用,故被移除。

  • Commit ID:4396e46187ca5070219b81773c4e65088dac50cc

  • Subject資訊:tcp: remove tcp_tw_recycle

net.ipv4.tcp_thin_dupack

0

rw

隨Linux社區版本迭代被移除,該功能已被TCP RACK特性替代。

  • Commit ID:4a7f6009441144783e5925551c72e3f2e1b0839b

  • Subject資訊:tcp: remove thin_dupack feature

net.ipv4.tcp_max_ssthresh

0

rw

隨Linux社區版本迭代被移除。該配置項本意是用於人工調整TCP慢啟動速度的,但目前已被更有效且更加自動化的方式替代,故移除。

  • Commit ID:9f9843a751d0a2057f9f3d313886e7e5e6ebaac9

  • Subject資訊:tcp: properly handle stretch acks in slow start

fs.negative-dentry-limit

0

rw

該配置項為CentOS 7自研配置項,非Linux社區通用功能,已在CentOS 8中被移除。

Why negative-dentry-limit sysctl parameter is not available in Red Hat Enterprise Linux 8?

fs.may_detach_mounts

0

rw

該配置項為CentOS 7自研配置項,非Linux社區通用功能,已在CentOS 8中被移除。

What is the parameter fs.may_detach_mounts on Red Hat Enterprise Linux 7?

/sys/參數

路徑

CentOS 7 x86

Alibaba Cloud Linux 3 x86 & Arm64

說明

/sys/block/<blk>/queue/read_ahead_kb

128

4,096

  • tuned新版本會對該參數進行調優。

  • 該值會影響磁碟的預讀,過大可能導致資料庫相關業務效能下降,磁碟I/O上升。

  • 如果您遇到此類問題,建議調整回128。

/sys/module/virtio_net/parameters/napi_tx

開啟

  • 該參數會影響virtio_net的發送隊列是否使用napi機制。

  • 在某些極端benchmark情境下,啟用該參數會導致TCP報文無法彙總,從而降低benchmark的跑分結果。

  • 可在核心cmdline中增加virtio_net.napi_tx=0來關閉該參數。

核心cmdline

cmdline

CentOS 7 x86

Alibaba Cloud Linux 3 x86 & Arm64

說明

cgroup.memory=nokmem

關閉

開啟

該參數用于禁用對kernel memory的cgroup審計和限制功能,開啟該參數有助於提升系統效能。更多資訊,請參見龍蜥社區

  • CentOS:預設未配置該參數。

  • Alibaba Cloud Linux 3:預設已配置該參數。

crashkernel=auto

開啟

關閉

該參數用於自動計算kdump kernel預留記憶體的大小。

  • CentOS:預設已配置該參數。

  • Alibaba Cloud Linux 3:預設未配置該參數。Alibaba Cloud Linux 3已在鏡像中預先配置好 crashkernel的預留記憶體大小,因此該差異無影響。

net.ifnames=0

開啟

開啟

該參數用於配置網路介面的命名規則為傳統模式(例如:eth0,eth1),關閉systemd的可預測的網路介面功能。

CentOS與Alibaba Cloud Linux均預設已配置該參數,表示配置為傳統模式。

說明

網路介面命名變更很容易對相容性造成影響。更多資訊,請參見出錯提示“Unsupported network configuration”

核心Kconfig

說明

核心Kconfig差異較多,本文僅給出重要的核心Kconfig差異說明。

Kconfig

CentOS 7 x86

Alibaba Cloud Linux 3 x86

Alibaba Cloud Linux 3 Arm64

說明

CONFIG_NR_CPUS

5120

1024

1024

支援最大CPU數量。

目前阿里雲上並無超過1024核的執行個體,該差異無影響。

CONFIG_NODES_SHIFT

10

6

6

支援最大NUMA數量。

目前阿里雲上並無超過64個NUMA節點的執行個體,該差異無影響。

CONFIG_PREEMPT_NONE

is not set

y

is not set

核心搶佔模式。

none模式在雲上能擷取更好的效能,但Arm64由於歷史原因沒有做調整。

Alibaba Cloud Linux 3將在5.10.134-17核心支援以cmdline的方式動態調整預設搶佔模式。

CONFIG_PREEMPT_VOLUNTARY

y

is not set

y

CONFIG_BTRFS_FS

m

is not set

is not set

Alibaba Cloud Linux 3不支援btrfs檔案系統,推薦使用ext4或xfs檔案系統。