成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

linux服務器每秒并發處理數的計算方法

運維 服務器運維
很多單位的服務器都采用了linux作為服務器操作系統,但是linux服務器的最大并發處理數的算法和Windows服務器的并發處理數算法不一樣,本文介紹了Linux服務器的并發處理器的計算方法。

1、利用網絡處理量計算。

計算參考公式:

并發 = connection established / min(server keepalive, server timeout)

翻譯一下:

并發 = 服務器傳輸鏈接數 除以 服務器軟件的keepalive設置和服務器軟件的超時設置之間的最小值

這個公式算出來的數字是keepalive時間段內的平均值,比真實平均值要小一點,如果想找最大值就要設定keepalive為0或1,然后多探測幾次。

connection established是服務器當前正在傳輸的鏈接,但是keepalive打開時,新建立的傳輸鏈接會一直存在直到keepalive/timeout關閉鏈接;客戶端主動關閉鏈接的話connection established也會關閉,不過這種鏈接一般比較少,多數瀏覽器都是支持keepalive并遵守服務器配置的。

在linux查看connection established數字的辦法是在命令行執行:

netstat -est|grep "connections established"|cut -d "c" -f 1

keepalive和timeout數字查看辦法要查看web server軟件的配置文件

注意:這個方法只能用于最前端的服務器或7層交換機,前端之后的服務器因為緩存或鏈接方式的原因往往是不準確的。

2、利用服務器日志計算

因為服務器每處理一個請求,都會在日志里留下一條信息,所以利用服務器軟件的日志來計算是最準確的,但是是這種計算方式浮動也可能會比較大,需要取最大值計算。

首先在確定服務器軟件有將所有請求寫入一個日志文件里,并確保該日志文件正在不停記錄。

為節省時間和服務器資源,把log文件的最后一萬條記錄拿出來統計,我就用nginx默認的main格式作個例子:

執行命令:

tail -10000 nginx.log | awk '{print $4;}' | sort | uniq -c

命令的意思是取log文件的最后一萬條記錄,然后用awk取得日志文件中表示時間的一列($4),接著再對該列進行一次排序,最后是用uniq把這一列相鄰的重復行合并,并計算合并的條數。

其中先sort再uniq是一種安全的做法,以確保同一秒的日志先被歸到一起,然后再合并,這樣就不會有同一秒種的日志會被切成幾段這樣的現象。

可以得到輸出:

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

在這些輸出中,第一條記錄和最后一條記錄因為時間有可能被切斷,所以是完全不可靠之信息,可以忽略。

如果輸出少于10行的話,要擴大一下范圍,修改tail -10000為tail -100000取最后十萬條數據統計。

如果只需要看最大值,可以再用sort命令進行排序,并用head命令取出前10行記錄:

tail -10000 nginx.log | awk '{print $4;}' | sort | uniq -c | sort -nr | head

awk命令是一個功能比較強的命令,在這里只用到最簡單的awk '{print $4;}',意思是將日志每行按空格切分開,然后切出來的結果依次從左到右就是$1 $2 $3 ...,nginx默認的main日志時間字段剛好是$4,所以在這里拿$4來計算。如果是別的格式的日志,依照這個辦法去找到列數:

就拿apache默認的日志來看,首先:

head -1 apache.log

得到類似以下的輸出:

60.8.207.86 - - [09/Sep/2008:21:03:58 +0800] "GET / HTTP/1.0" 200 11141 "

用awk按空格來切分開之后,60.8.207.86就是$1,$2和$3都是-,[09/Sep/2008:21:03:58是$4,這就是需要拿出來統計的。嗯,怎么apache的日志和nginx的一樣的?現在才發現。

那命令也基本沒什么變化,執行一下:

tail -10000 apache.log | awk '{print $4;}' | sort | uniq -c | sort -nr | head

注意,如果是在squid服務器后面的apache,則日志會變成這樣:

60.8.207.86, 127.0.0.1 - - [09/Sep/2008:21:03:58 +0800] "GET / HTTP/1.0" 200 11141 "

因為日志的第一個段: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

tail -10000 apache.log | cut -d"[" -f 2 | awk '{print $1;}' | sort | uniq -c | sort -nr | head

這樣統計就準確了。

責任編輯:桑丘 來源: 理想中國
相關推薦

2018-08-22 10:32:15

虛擬桌面服務器

2010-01-25 10:45:25

服務器虛擬化硬件配置需

2018-10-18 10:17:40

服務器并發多線程

2009-11-25 13:38:20

IIS并發數

2018-01-23 10:23:53

2018-10-23 10:28:01

服務器流量高并發

2020-10-16 16:40:26

Linux高并發命令

2009-12-01 13:25:24

服務器并發

2019-07-31 14:36:46

Linux服務器框架

2018-03-19 08:46:52

2019-12-27 11:13:24

高并發服務器邏輯

2018-02-27 14:30:17

2011-01-14 16:25:59

Linux服務器集群系統

2013-03-21 17:17:34

2018-01-18 21:54:10

云計算公共云云服務

2024-11-19 16:14:46

Java開發

2011-01-07 17:21:01

2009-10-09 10:46:17

2010-09-14 11:33:39

Linux下設置tft

2010-08-27 10:40:58

Linux DHCP服
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一级a性色生活片久久毛片波多野 | 亚洲精品不卡 | 天天操一操 | 99精品在线观看 | 亚洲精品18 | 激情av免费看 | 精品国产99| 久久精品色欧美aⅴ一区二区 | 国产1页 | 亚洲最色网站 | 免费性视频 | 欧美国产日韩在线观看成人 | 男人天堂色 | a级片www| 久久久久亚洲精品中文字幕 | 国产一级淫片免费视频 | 91福利在线观看 | 国产福利视频导航 | 亚洲国产精品一区二区第一页 | 欧美日韩视频 | 久久久在线视频 | 国产日韩欧美一区二区 | 亚洲精品国产a久久久久久 中文字幕一区二区三区四区五区 | www.亚洲视频.com | 亚洲精品一区二区三区中文字幕 | 久久成人精品视频 | 精品久久久久久久久久久 | 午夜三区| www成人免费 | 午夜三级视频 | 色婷婷国产精品综合在线观看 | 亚洲第一色av| 国产精品久久久久影院色老大 | 九色视频网站 | 日韩视频在线免费观看 | 欧美精品久久久久久久久老牛影院 | 亚洲毛片在线观看 | 国产综合视频 | 亚洲人成人一区二区在线观看 | 国产真实精品久久二三区 | 成人在线电影在线观看 |