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

2024-12-17 18:24 更新

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

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

  • 技巧:減少系統(tǒng)對交換分區(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)存、負載等資源的實時使用情況,找出性能瓶頸。

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

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

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

  • 技巧:為不同的工作負載選擇合適的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等的詳細統(tǒng)計,了解系統(tǒng)負載情況,及時調(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. 啟用大頁內(nèi)存(Huge Pages)

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

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

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

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

  • 技巧:增加網(wǎng)絡(luò)緩沖區(qū)大小,避免高負載時的網(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

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

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

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

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

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

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

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

16. 使用nscd加速DNS解析

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

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

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

18. 使用perf工具進行性能分析

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

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

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

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

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

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

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

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

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

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

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

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

最后

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

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號