linux服務器每秒并發(fā)處理數(shù)的計算方法_第1頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、linux服務器每秒并發(fā)處理數(shù)的計算方法并發(fā) = connection establish / min(server keepalive, server out) 翻譯一下: 并發(fā) = 服務器傳輸鏈接數(shù) 除以 服務器軟件的keepalive設置和服務器軟件的超時設置之間的最小值 這個公式算出來的數(shù)字是keepalive時光段內的平均值,比真切平均值要小一點,假如想找最大值就要設定keepalive為0或1,然后多探測幾次。 connection established是服務器當前正在傳輸?shù)逆溄樱莐eepalive打開時,新建立的傳輸鏈接會向來存在直到keepalive/timeout關閉鏈

2、接;客戶端主動關閉鏈接的話connection established也會關閉,不過這種鏈接普通比較少,多數(shù)掃瞄器都是支持keepalive并遵守服務器配置的。 在linux查看connection established數(shù)字的方法是在行執(zhí)行: connections established| -d c -f 1 keepalive和timeout數(shù)字查看方法要查看web server軟件的配置文件 注重:這個辦法只能用于最前端的服務器或7層交換機,前端之后的服務器由于緩存或鏈接方式的緣由往往是不精確的。 2、利用服務器日志計算 由于服務器每處理一個哀求,都會在日志里留下一條信息,所以利用服務

3、器軟件的日志來計算是最精確的,但是是這種計算方式浮動也可能會比較大,需要取最大值計算。 首先在確定服務器軟件有將全部哀求寫入一個日志文件里,并確保該日志文件正在不停記錄。 為節(jié)約時光和服務器資源,把log文件的最后一萬條記錄拿出來統(tǒng)計,我就用nginx默認的main格式作個例子: 執(zhí)行指令: tail -10000 nginx.log | awk 'print $4;' | | -c 指令的意思是取log文件的最后一萬條記錄,然后用awk取得日志文件中表示時光的一列($4),接著再對該列舉行一次排序,最后是用uniq把這一列相鄰的重復行合并,并計算合并的條數(shù)。 其中先sort再

4、uniq是一種平安的做法,以確保同一秒的日志先被歸到一起,然后再合并,這樣就不會有同一秒種的日志會被切成幾段這樣的現(xiàn)象。 可以得到輸出: 23 09/sep/2008:20:26:02 26 09/sep/2008:20:26:03 17 09/sep/2008:20:26:04 20 09/sep/2008:20:26:05 . 70 09/sep/2008:20:29:43 61 09/sep/2008:20:29:44 45 09/sep/2008:20:29:45 37 09/sep/2008:20:29:46 2 09/sep/2008:20:29:47 在這些輸出中,第一條記錄和最

5、后一條記錄由于時光有可能被切斷,所以是徹低不行靠之信息,可以忽視。 假如輸出少于10行的話,要擴大一下范圍,修改tail -10000為tail -100000取最后十萬條數(shù)據(jù)統(tǒng)計。 假如只需要看最大值,可以再用sort指令舉行排序,并用head指令取出前10行記錄: tail -10000 nginx.log | awk 'print $4;' | sort | uniq -c | sort -nr | head awk指令是一個功能比較強的指令,在這里只用到最容易的awk 'print $4;',意思是將日志每行按空格切分開,然后切出來的結果依次從左到右就是

6、$1 $2 $3 .,nginx默認的main日志時光字段剛好是$4,所以在這里拿$4來計算。假如是別的格式的日志,依照這個方法去找到列數(shù): 就拿apache默認的日志來看,首先: head -1 apache.log 得到類似以下的輸出: 6 - - 09/sep/2008:21:03:58 +0800 get / http/1.0 200 11141 mozilla/4.0 (compatible; msie 6.0; windows nt 5.1; sv1) 用awk按空格來切分開之后,6就是$1,$2和$3都是-,09/sep/2008:21:0

7、3:58是$4,這就是需要拿出來統(tǒng)計的。嗯,怎么apache的日志和nginx的一樣的?現(xiàn)在才發(fā)覺。 那指令也基本沒什么變幻,執(zhí)行一下: tail -10000 apache.log | awk 'print $4;' | sort | uniq -c | sort -nr | head 注重,假如是在squ服務器后面的apache,則日志會變成這樣: 6, - - 09/sep/2008:21:03:58 +0800 get / http/1.0 200 11141 mozilla/4.0 (compatible; msie 6.0; windows nt 5.1; sv1) 由于日志的第一個段:x_forwarded_for中含有空格,所以時光的段會在$3、$4或$5之間變幻,從而不能確定,可以先用一次awk或cut以這個符號切分一下: tail -10000 apache.log | awk -f 'print $2;' | awk 'print $1;' | sort | uniq -c | sort -nr | head

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論