模擬的訪問不是很大,併發數500,請求數10000,效果還可以。
先是基本的apache,什麼都沒有做過,時間用了3點多秒
考慮一下需要優化什麼,優化的作用是什麼,優化完之後會有什麼效果
優化apache自身:
修改配置文件,把prefork裏最大進程數調高一些默認是256,我調到了500,最大連接數默認256也調到了500.
去掉了日誌訪問 ln -s /var/log/httpd/access_log >/dev/null
利用內存當做硬盤讓客戶端讀取靜態頁面 mount -o size=500M =t tmpfs none /tmp/www
解決出現大量的TIME_WAIT
echo 1 >/proc/sys/net/ipv4/tcp_tw_recycle
echo 1 >/proc/sys/net/ipv4/tcp_tw_reuse
修改apache配置文件
打開 keepalive on
優化內核網絡參數
增大處於established狀態的數量,
echo 10000 > /proc/sys/net/core/somaxconn
syn的消息隊列長度,使系統可以處理更多的併發連接
echo 10000 >/proc/sys/net/ipv4/tcp_max_syn_backlog
其他的一些考慮
1、apache要開啓keepalive模式,減少連接的次數。
2、但是每增加一個連接,就會使用一個文件描述符,因此需要增加文件描述符的數量。