Linux性能提升秘籍:25個(gè)系統(tǒng)調(diào)優(yōu)技巧

2024-12-17 18:24 更新

大家好,我是 V 哥。Linux系統(tǒng)性能調(diào)優(yōu)是一個(gè)多層次的過程,涉及內(nèi)核參數(shù)調(diào)整、硬件配置優(yōu)化、應(yīng)用程序調(diào)整等多個(gè)方面。以下是25個(gè)詳細(xì)的Linux系統(tǒng)性能調(diào)優(yōu)技巧,幫助你提高系統(tǒng)的整體性能。

1. 調(diào)整swappiness參數(shù)

  • 技巧:減少系統(tǒng)對(duì)交換分區(qū)的依賴,提升內(nèi)存使用效率。
  • 操作:將/proc/sys/vm/swappiness的值設(shè)置為較低值(如10),讓系統(tǒng)更傾向于使用物理內(nèi)存。
     sysctl vm.swappiness=10

2. 使用tophtop監(jiān)控系統(tǒng)資源

  • 技巧:定期使用top或更直觀的htop工具,了解CPU、內(nèi)存、負(fù)載等資源的實(shí)時(shí)使用情況,找出性能瓶頸。

3. 調(diào)整ulimit設(shè)置

  • 技巧:為進(jìn)程增加打開文件句柄的限制,以避免高負(fù)載下的資源不足。
  • 操作:編輯/etc/security/limits.conf,為用戶設(shè)置更高的文件句柄限制:
     * hard nofile 65535
     * soft nofile 65535

4. 優(yōu)化I/O調(diào)度器

  • 技巧:為不同的工作負(fù)載選擇合適的I/O調(diào)度器,如noop適用于SSD,deadline適用于低延遲應(yīng)用。
  • 操作:更改I/O調(diào)度器:
     echo noop > /sys/block/sda/queue/scheduler

5. 使用vmstat監(jiān)控系統(tǒng)性能

  • 技巧:通過vmstat查看CPU、內(nèi)存、I/O等的詳細(xì)統(tǒng)計(jì),了解系統(tǒng)負(fù)載情況,及時(shí)調(diào)整。
     vmstat 1

6. 調(diào)整dirty_ratiodirty_background_ratio

  • 技巧:優(yōu)化寫入緩存的刷新頻率,減少磁盤I/O壓力。
  • 操作
     sysctl vm.dirty_ratio=15
     sysctl vm.dirty_background_ratio=5

7. 啟用大頁(yè)內(nèi)存(Huge Pages)

  • 技巧:對(duì)使用大量?jī)?nèi)存的應(yīng)用(如數(shù)據(jù)庫(kù))啟用大頁(yè)內(nèi)存,減少內(nèi)存頁(yè)的分配和管理開銷。
  • 操作:在/etc/sysctl.conf中增加以下配置:
     vm.nr_hugepages=256

8. 調(diào)整內(nèi)核參數(shù)net.core.somaxconn

  • 技巧:增加服務(wù)器的連接隊(duì)列長(zhǎng)度,避免在高并發(fā)時(shí)的連接拒絕。
  • 操作
     sysctl -w net.core.somaxconn=1024

9. 優(yōu)化網(wǎng)絡(luò)緩沖區(qū)

  • 技巧:增加網(wǎng)絡(luò)緩沖區(qū)大小,避免高負(fù)載時(shí)的網(wǎng)絡(luò)包丟失。
  • 操作
     sysctl -w net.core.rmem_max=16777216
     sysctl -w net.core.wmem_max=16777216

10. 禁用不必要的服務(wù)

  • 技巧:禁用不需要的系統(tǒng)服務(wù),以減少系統(tǒng)資源消耗。
  • 操作:使用systemctl disablechkconfig禁用不需要的服務(wù)。

11. 使用iostat監(jiān)控磁盤性能

  • 技巧:通過iostat工具定期查看磁盤I/O性能,確定是否存在磁盤瓶頸。
     iostat -x 1

12. 調(diào)整tcp_tw_recycletcp_tw_reuse

  • 技巧:減少短連接時(shí)的TIME_WAIT數(shù)量,加快TCP連接的回收。
  • 操作
     sysctl -w net.ipv4.tcp_tw_reuse=1
     sysctl -w net.ipv4.tcp_tw_recycle=1

13. 使用tuned自動(dòng)優(yōu)化系統(tǒng)配置

  • 技巧:安裝并使用tuned工具,根據(jù)系統(tǒng)角色自動(dòng)調(diào)整內(nèi)核參數(shù)和性能配置。
  • 操作
     yum install tuned
     tuned-adm profile throughput-performance

14. 啟用異步I/O(AIO)

  • 技巧:對(duì)于需要高性能I/O的應(yīng)用(如數(shù)據(jù)庫(kù)),啟用異步I/O能提高I/O操作的并行性。

15. 調(diào)整文件系統(tǒng)掛載參數(shù)

  • 技巧:使用noatime選項(xiàng)掛載文件系統(tǒng),避免每次文件讀取時(shí)更新訪問時(shí)間,減少磁盤I/O。
  • 操作:編輯/etc/fstab,添加noatime
     /dev/sda1 / ext4 defaults,noatime 0 0

16. 使用nscd加速DNS解析

  • 技巧:通過緩存DNS查詢結(jié)果,加快頻繁的網(wǎng)絡(luò)請(qǐng)求的解析速度。
  • 操作:安裝并啟動(dòng)nscd服務(wù):
     yum install nscd
     systemctl start nscd

17. 禁用不必要的內(nèi)核模塊

  • 技巧:減少不必要的內(nèi)核模塊加載,釋放內(nèi)存和處理能力。
  • 操作:通過lsmod查看當(dāng)前加載的模塊,使用modprobe -r卸載不需要的模塊。

18. 使用perf工具進(jìn)行性能分析

  • 技巧:通過perf工具分析應(yīng)用程序的性能瓶頸,進(jìn)行有針對(duì)性的調(diào)優(yōu)。
     perf top

19. 優(yōu)化進(jìn)程調(diào)度策略

  • 技巧:根據(jù)應(yīng)用場(chǎng)景,使用chrt命令為關(guān)鍵任務(wù)分配更高的調(diào)度優(yōu)先級(jí)。
     chrt -f 99 <process-id>

20. 調(diào)整TCP窗口大小

  • 技巧:增加TCP窗口大小,提升高延遲網(wǎng)絡(luò)環(huán)境下的吞吐量。
  • 操作
     sysctl -w net.ipv4.tcp_window_scaling=1
     sysctl -w net.core.rmem_default=262144
     sysctl -w net.core.wmem_default=262144

21. 啟用Transparent Huge Pages(THP)

  • 技巧:?jiǎn)⒂猛该鞔箜?yè)機(jī)制,可以在需要大塊內(nèi)存的應(yīng)用中提升性能,特別是虛擬化或數(shù)據(jù)庫(kù)應(yīng)用。
  • 操作:編輯/sys/kernel/mm/transparent_hugepage/enabled,設(shè)置為always。

22. 調(diào)整tcp_fin_timeout參數(shù)

  • 技巧:減少TCP連接關(guān)閉的等待時(shí)間,加快連接釋放。
  • 操作
     sysctl -w net.ipv4.tcp_fin_timeout=15

23. 使用SSD優(yōu)化讀寫速度

  • 技巧:對(duì)于高I/O的應(yīng)用,使用SSD替代HDD,可以極大提高讀寫性能。

24. 啟用NUMA(Non-Uniform Memory Access)優(yōu)化

  • 技巧:在多核系統(tǒng)上啟用NUMA優(yōu)化,以充分利用CPU和內(nèi)存之間的局部性,提升性能。
  • 操作:使用numactl工具管理進(jìn)程的CPU和內(nèi)存親和性:
     numactl --interleave=all <application>

25. 使用systemd-analyze加快系統(tǒng)啟動(dòng)時(shí)間

  • 技巧:通過systemd-analyze工具分析系統(tǒng)啟動(dòng)時(shí)間,禁用啟動(dòng)時(shí)的瓶頸服務(wù),提升系統(tǒng)啟動(dòng)速度。
    systemd-analyze blame

最后

以上25個(gè)Linux系統(tǒng)性能調(diào)優(yōu)技巧覆蓋了從內(nèi)核參數(shù)調(diào)整、I/O優(yōu)化、網(wǎng)絡(luò)設(shè)置到文件系統(tǒng)、內(nèi)存管理和進(jìn)程調(diào)度等多個(gè)方面。這些技巧可以根據(jù)具體業(yè)務(wù)需求選擇性應(yīng)用,從而提高系統(tǒng)的整體性能和響應(yīng)速度。關(guān)注威哥愛編程,碼碼通暢不掉發(fā)。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)