Linux 伺服器效能調校

網路效能測試軟體

  • Netperf (http://www.netperf.org): 支援 TCP, UDP, DLPI (Data Link Provider Interface), UNIX Domain Sockets.

  • SPEC SFS (http://www.spec.org/)

  • Volanomark (http://www.volano.com/benchmarks.html)

  • Web server: SPECweb, SPECweb SSL, TPC-W, SPECjAPPServer and ECPerf

  • Oracle: http://www.oracle.com/apps_benchmark/index.html)

  • SAP Standard (http://www50.sap.com/benchmark/)

Linux 網路參數設定

echo "30000" > /proc/sys/net/ipv4/tcp_max_syn_backlog 預設為 1024,可增加 Server queue TCP SYN 的數量 echo "2000000" > /proc/sys/net/ipv4/tcp_max_tw_buckets 預設為 180000,增加 TIME-WAIT state 的數量 echo "50000" > /proc/sys/net/core/netdev_max_backlog 設定可以 queue 在IP層之下的 network core 之封包數目,可以使用較多的記憶體儲存進入的封包,預設 1000。

最好用的文件仍然是 Kernel source 中的 Documentation,設定 Kernel 參數可透過 sysctl, procfs 範例:

# sysctl -w kernel.shmmax=32 # sysctl -p /etc/sysctl.conf # echo "32" > /proc/sys/kernel/shmmax Linux kernel 2.6 /proc/sys/kernel/ thread-max: 系統中可允許的最大 thread 數目。 domainname hostname ostype osrelease version:Kernel version real-root-dev:real root device partition rtsig-max:最大的 real time signals rtsig-nr:現在 queue 中的 real-time signals 數量 pid_max /proc/sys/fs/ file-max: file descriptors 的最大數目 file-nr: file handles 的個數 super-max: 檔案系統的最大數目 /proc/sys/net/ipv4/ ip_no_pmtu_disc: 關閉 Path MTU discovery /proc/sys/net/route/ max_size: routing cache 的最大 size max_delay: flushing routing cache 的最大延遲時間 /proc/sys/net/conf/interface/ proxy_arp: rp_filter: 需要驗證來源位址 /proc/sys/net/core rmem_default: socket 的接收 buffer size rmem_max: socket 的最大接收 buffer size wmem_default: socket 的傳送 buffer size wmem_max: socket 的最大傳送 buffer size netdev_max_backlog: queued 封包的最大數目

參考文獻 1. Sandra K. Johnson, Performance Tuning for Linux Servers, IBM PRESS, 2005. 2. 劉怡芳、劉育銘,伺服器效能調校專家─以 Linux 為例,學貫,2005。

Last updated