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。