讀了郭欣的《構建高性能站點指南》,收穫頗豐,這裏算是一點讀後感、總結+小體驗,向作者致敬
這篇講的是服務器的併發處理能力,從哪幾點來評測服務器的併發處理能力呢?吞吐率、CPU併發處理能力、系統調用、內存分配、持久連接、I/O模型、服務器併發策略,這裏的每一點都是非常值得深究的
1. 吞吐率
定義:web服務器單位時間內處理的請求個數
工具:apache的ab壓力測試工具,詳情見http://blog.csdn.net/fly_heart_yuan/article/details/6970509
分析:壓力測試中,不斷增大併發數,從1開始到1000,我們會得到一系列結果,在結果中,應重點關注四個數據:併發用戶數、吞吐率、請求等待時間、請求處理時間,後三項的時間都會隨着併發用戶數的增多而發生變化,或增或減,我們會在這四個數據之間權衡,找到一個平衡點,具體這個平衡點在哪裏,根據自己的情況去確定
2. CPU併發計算
定義:無
工具:top命令
分析:
參考:http://www.slideshare.net/myw58/jiangjiangwei
3 系統調用
工具:strace 命令
strace命令可以跟蹤某一個進程,列出該進程所有調用的系統函數
做這個實驗的時候,爲了方便,我把php-cgi的數目配成一個,使用 ps aux|grep php-cgi 可以查看到php-cgi的進程號,後使用strace -p XXX(進程號)可以跟蹤該進程
4. 內存分配
5. 持久連接
建立一次TCP鏈接的操作是很一項不小的開銷,所以鏈接的次數越少,越有利於性能的提升,適用於密集型圖片或網頁等小數據請求處理
6. I/O模型
7. 服務器併發策略