您的位置:新葡亰496net > 服务器网络 > linux服务器每秒并发处理数的计算方法,企业Sh

linux服务器每秒并发处理数的计算方法,企业Sh

发布时间:2019-09-23 02:38编辑:服务器网络浏览(71)

    1、利用互连网管理量总结。

    1.利用网络处理量总计

    公司shell脚本深入分析apache日志实战

    若果apache日志格式为: 118.78.199.98 – - [09/Jan/2010:00:59:59 0800] “GET /Public/Css/index.css HTTP/1.1″ 304 – “ “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6.3)”

    log日志剖析,Nginx 0.8.5版本access.log日志分析shell命令  大 | 中 | 小  [ 2011-6-4 16:48 | by jed ]新葡亰496net,

    算算参考公式:

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

    一,分析apache日志
    1,有贰个文书shell.sh,内容如下:
    [root@test3root]#catshell.sh






    现必要将该文件中的域名截抽取来,总计重复域名出现的次数,然后按次数进行降序排列,总计后的结果如下:
    3www.linuxidc.com
    2www.google.com
    1www.yahoo.com.

    标题1:在apachelog中搜索国访问谈次数最多的11个IP。 awk '{print $1}' apache_log |sort |uniq -c|sort -nr|head -n 10

    Nginx 版本新闻:

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

    并发=服务器传输连接数 除以 服务器软件的keepalive设置和服务器软件的百货集团设置从前的小小值;

    sort将文件的每一行作为三个单位,相互相比,相比标准是从首字符向后,依次按ASCII码值实行相比较,最终将她们按升序输出,uniq是去除紧挨着的一模二样的行只保留一行
    1234 [root@test3 ~]# awk -F "/"'{print $3}' shell.sh |sort |uniq  -c
    3 www.linuxidc.com
    2 www.google.com
    1 www.yahoo.com.cn

    awk 首先将每条日志中的IP抓出来,如日志格式被自定义过,可以 -F 定义分隔符和 print钦点列;
    sort进行第一排序,为的使同样的笔录排列到一道;
    upiq -c 合相提并论复的行,并记下重复次数。
    head实行前十名筛选;
    sort -nr依据数字进行倒叙排序。

    nginx version: nginx/0.8.53Nginx日志配置项:

    翻译一下:

    connection established总括办法:

     

    自己参照他事他说加以考察的吩咐是: 显示10条最常用的命令
    sed -e "s/| //n/g" ~/.bash_history | cut -d ' ' -f 1 | sort | uniq -c | sort -nr | head

    access_log /data0/logs/access.log combined;Nginx日志格式:

    并发 = 服务器传输链接数 除以 服务器软件的keepalive设置和服务器软件的逾期设置之间的最小值

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

    2,在apachelog中找寻国访问谈次数最多的拾个IP
    /usr/local/apache2/logs/access_log的格式如下
    192.168.46.1-chen[21/Sep/2013:14:04:48 0800]"GET/phpmyadmin/themes/pmahomme/img/tab_hover_bg.pngHTTP/1.1"200502

    标题2:在apache日志中寻找国访问谈次数最多的多少个分钟。 awk '{print  $4}' access_log |cut -c 14-18|sort|uniq -c|sort -nr|head
    awk 用空格分出来的第四列是[09/Jan/2010:00:59:59;
    cut -c 提取14到18个字符
    结余的剧情和难点1近似。

    $remote_addr – $remote_user [$time_local] $request $status $apache_bytes_sent $http_referer $http_user_agent127.0.0.1 - - [24/Mar/2011:12:45:07 0800] "GET /fcgi_bin/xxx.fcgi?id=xxx HTTP/1.0" 200 160 "-" "Mozilla/4.0"通过日记查看当天做客页面排前10的url:

    本条公式算出来的数字是keepalive时间段内的平均值,比真实平均值要小一些,假设想找最大值将在设定keepalive为0或1,然后多探测四回。

    2.应用服务器日志计算

    123 [root@test3 ~]# awk '{print $1}' /usr/local/apache2/logs/access_log |sort|uniq -c|head -n 10
    7 127.0.0.1
    228 192.168.46.1

    标题3:在apache日志中找到访谈最多的页面: awk '{print $11}' apache_log |sed 's/^.*cn/(.*/)/"//1/g'|sort |uniq -c|sort -rn|head

    #>cat access.log | grep "24/Mar/2011" | awk '{print $7}' | sort | uniq -c | sort -nr | head -n 10

    connection established是服务器当前正值传输的链接,但是keepalive张开时,新创制的传导链接会向来留存直到keepalive/timeout关闭链接;顾客端主动关闭链接的话connection established也会停业,可是这种链接一般比较少,许多浏览器都以支撑keepalive并遵照服务器配置的。

    第一要有日记,日志能够是nginx日志,也足以是现实性成效模块的事体日志;日志的光阴以秒,当然单位也得以是别的,不一样时期单位最后算法的分母基数区别;

    3.在apache日志中寻找国访问谈次数最多的多少个分钟
    /usr/local/apache2/logs/access_log的格式如下
    192.168.46.1-chen[21/Sep/2013:14:04:48 0800]"GET/phpmyadmin/themes/pmahomme/img/tab_hover_bg.pngHTTP/1.1"200502

    就像是难题1和2,独一特殊是用sed的轮换功用将”

    由此日记查看当天ip连接数,计算ip地址的总连接数

    在linux查看connection established数字的方式是在命令行实施:

    能够吸取输出:

    1234567891011 [root@test3 ~]# awk '{print $4}' /usr/local/apache2/logs/access_log|cut -c 14-18 |sort|uniq -c|sort -nr|head
    33 13:55
    30 13:35
    19 13:22
    15 13:54
    15 13:45
    15 13:38
    15 13:36
    13 13:04
    10 12:59
    9 13:18

    难题4:在apache日志中寻找国访问谈次数最多(负载最重)的多少个日子段(以分钟为单位),然后在会见这几个日子哪多少个IP访谈的最多? 1,查看apache进程:
    ps aux | grep httpd | grep -v grep | wc -l

    #>cat access.log | grep "24/Mar/2011" | awk '{print $1}' | sort | uniq -c | sort –nr

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

    23 [09/sep/2008:20:26:02

    4.在apache日志中找到访谈最多的页面
    /usr/local/apache2/logs/access_log的格式如下
    192.168.46.1-chen[21/Sep/2013:14:04:48 0800]"GET/phpmyadmin/themes/pmahomme/img/tab_hover_bg.pngHTTP/1.1"200502

    2,查看80端口的tcp连接:
    netstat -tan | grep "ESTABLISHED" | grep ":80" | wc -l

    38 112.97.192.16

    keepalive和timeout数字查看办法要翻看web server软件的布置文件

    26 [09/sep/2008:20:26:03

    1234567891011 [root@test3 ~]# awk '{print $7}' /usr/local/apache2/logs/access_log |sort|uniq -c|sort -nr|head
    46 /
    44 /phpmyadmin/
    10 /phpmyadmin/js/jquery/jquery-1.6.2.js?ts=1359376847
    9 /phpmyadmin/js/update-location.js?ts=1359376847
    9 /phpmyadmin/js/jquery/jquery-ui-1.8.16.custom.js?ts=1359376847
    9 /phpmyadmin/js/jquery/jquery.qtip-1.0.0-rc3.js?ts=1359376847
    9 /phpmyadmin/js/functions.js?ts=1359376847
    8 /phpmyadmin/js/cross_framing_protection.js?ts=1359376847
    7 /phpmyadmin/themes/pmahomme/jquery/jquery-ui-1.8.16.custom.css
    7 /phpmyadmin/themes/pmahomme/img/sprites.png

    3,通过日记查看当天ip连接数,过滤重复:
    cat access_log | grep "19/May/2011" | awk '{print $2}' | sort | uniq -c | sort -nr

    20 117.136.31.145

    在意:这些办法只好用于最前端的服务器或7层交流机,前端之后的服务器因为缓存或链接格局的原原本本的经过每每是不准确的。

    17 [09/sep/2008:20:26:04

    5,在apache日志中寻觅国访问问次数最多(负载最重)的几个日子段(以分钟为单位),然后在拜候那几个日子哪多少个IP访谈的最多?

    4,当天ip连接数最高的ip都在干些什么(原本是蜘蛛):
    cat access_log | grep "19/May/2011:00" | grep "61.135.166.230" | awk '{print $8}' | sort | uniq -c | sort -nr | head -n 10

    19 112.97.192.31

    2、利用服务器日志总计

    ......

    /usr/local/apache2/logs/access_log的格式如下
    192.168.46.1-chen[21/Sep/2013:14:04:48 0800]"GET/phpmyadmin/themes/pmahomme/img/tab_hover_bg.pngHTTP/1.1"200502

    5,当天做客页面排前10的url:
    cat access_log | grep "19/May/2010:00" | awk '{print $8}' | sort | uniq -c | sort -nr | head -n 10

    3 61.156.31.20

    因为服务器每管理一个须要,都会在日记里留下一条音信,所以使用服务器软件的日记来估测计算是最纯正的,可是是这种总计方法转换也恐怕会非常大,须要取最大值总计。

    tail -100 nginx.log|awk "{print $3;}" | sort | uniq -c

    123456789101112 如下是光阴段的访谈量情形
    [root@test3 ~]# awk '{print $4}' /usr/local/apache2/logs/access_log |cut -c  9-18 |uniq -c|sort -nr|head
    33 2013:13:55
    30 2013:13:35
    19 2013:13:22
    15 2013:13:54
    15 2013:13:45
    15 2013:13:38
    15 2013:13:36
    10 2013:12:59
    9 2013:13:18
    9 2013:13:16

    6,用tcpdump嗅探80端口的拜访看看什么人最高
    tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr

    2 209.213.40.6

    率先在规定服务器软件有将有着供给写入二个日记文件里,并保障该日记文件正在不停记录。

    一声令下的野趣是取log文件的结尾100条记下,然后用awk获得日志文件中意味时间的一列($4),接着再对该列举行三回排序,最后是用uniq把这一列相邻的重新行统一,并盘算合併的条数;个中先sort在uniq是一种安全的做法,以担保同等秒的日志先被归到一同,然后再统一,那样就不会有一样秒的日记被切成几段那样的气象;

    6,apache相关的种类操作

    跟着从日记里查看该ip在干嘛:
    cat access_log | grep 220.181.38.183| awk '{print $1"/t"$8}' | sort | uniq -c | sort -nr | less

    1 222.76.85.28

    为节省时间和服务器财富,把log文件的最后10000条记下拿出来总括,作者就用nginx私下认可的main格式作个例证:

    123456789101112131415161718192021222324252627282930 1,查看apache进程:
    ps aux | grep httpd | grep -v grep | wc -l
    2,查看80端口的tcp连接:
    netstat -tan | grep "ESTABLISHED" | grep ":80" | wc -l
    3,通过日记查看当天ip连接数,过滤重复:
    cat access_log | grep "19/May/2011" | awk '{print $2}' | sort | uniq -c | sort -nr
    4,当天ip连接数最高的ip都在干些什么(原本是蜘蛛):
    cat access_log | grep "19/May/2011:00" | grep "61.135.166.230" | awk '{print $8}' | sort | uniq -c | sort -nr | head -n 10
    5,当天探访页面排前10的url:
    cat access_log | grep "19/May/2010:00" | awk '{print $8}' | sort | uniq -c | sort -nr | head -n 10
    6,用tcpdump嗅探80端口的走访看看什么人最高
    tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr
    继而从日记里查看该ip在干嘛:
    cat access_log | grep 220.181.38.183| awk '{print $1"/t"$8}' | sort | uniq -c | sort -nr | less
    7,查看某不时间段的ip连接数:
    grep "2006:0[7-8]" www20110519.log | awk '{print $2}' | sort | uniq -c| sort -nr | wc -l
    8,当前WEB服务器中连着次数最多的20条ip地址:
    netstat -ntu |awk '{print $5}' |sort | uniq -c| sort -n -r | head -n 20
    9,查看日志中做客次数最多的前十二个IP
    cat access_log |cut -d ' ' -f 1 |sort |uniq -c | sort -nr | awk '{print $0 }' | head -n 10 |less
    10,查看日志中出现玖18次以上的IP
    cat access_log |cut -d ' ' -f 1 |sort |uniq -c | awk '{if ($1 > 100) print $0}'|sort -nr |less
    11,查看近来访谈量最高的文书
    cat access_log |tail -10000|awk '{print $7}'|sort|uniq -c|sort -nr|less
    12,查看日志中做客超越100次的页面
    cat access_log | cut -d ' ' -f 7 | sort |uniq -c | awk '{if ($1 > 100) print $0}' | less
    13,列出传输时间当先 30 秒的文件
    cat access_log|awk '($NF > 30){print $7}'|sort -n|uniq -c|sort -nr|head -20
    14,列出最最耗时的页面(当先60秒的)的以及对应页面发生次数
    cat access_log |awk '($NF > 60 && $7~//.php/){print $7}'|sort -n|uniq -c|sort -nr|head -100

    7,查看某有时间段的ip连接数:
    grep "2006:0[7-8]" www20110519.log | awk '{print $2}' | sort | uniq -c| sort -nr | wc -l

    经过日记查看当天拜谒次数最多的11个IP ,只供给在上贰个指令后增进head命令

    实践命令:

    推荐介绍阅读:

    8,当前WEB服务器中连着次数最多的20条ip地址:
    netstat -ntu |awk '{print $5}' |sort | uniq -c| sort -n -r | head -n 20

    #>cat access.log | grep "24/Mar/2011" |awk '{print $3}'|sort |uniq -c|sort -nr|head –n 10

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

    Apache页面压缩配置难题形成JSON数据传输时间延长 http://www.linuxidc.com/Linux/2013-08/88637.htm

    9,查看日志中访谈次数最多的前十三个IP
    cat access_log |cut -d ' ' -f 1 |sort |uniq -c | sort -nr | awk '{print $0 }' | head -n 10 |less

    38 112.97.192.16

    指令的意味是取log文件的末梢30000条记下,然后用awk获得日志文件中表示时间的一列($4),接着再对该列举行一遍排序,最终是用uniq把这一列相邻的双重行统一,并图谋合併的条数。

    使用Apachetop来分析Apache实时日志 http://www.linuxidc.com/Linux/2013-08/88836.htm

    10,查看日志中冒出九十六遍以上的IP
    cat access_log |cut -d ' ' -f 1 |sort |uniq -c | awk '{if ($1 > 100) print $0}'|sort -nr |less

    20 117.136.31.145

    在那之中先sort再uniq是一种安全的做法,以管教同等秒的日志先被归到一同,然后再统一,那样就不会有同样秒种的日志会被切成几段那样的场景。

     

    11,查看近些日子访谈量最高的文本
    cat access_log |tail -10000|awk '{print $7}'|sort|uniq -c|sort -nr|less

    19 112.97.192.31

    能够获得输出:

    接下去请看第2页美丽内容: http://www.linuxidc.com/Linux/2013-09/90627p2.htm

    12,查看日志中访问抢先一百回的页面
    cat access_log | cut -d ' ' -f 7 | sort |uniq -c | awk '{if ($1 > 100) print $0}' | less

    3 61.156.31.20

    23 [09/Sep/2008:20:26:02

    新葡亰496net 1

    13,列出传输时间超越 30 秒的文书
    cat access_log|awk '($NF > 30){print $7}'|sort -n|uniq -c|sort -nr|head -20

    2 209.213.40.6

    26 [09/Sep/2008:20:26:03

    14,列出最最耗费时间的页面(当先60秒的)的以及相应页面产生次数
    cat access_log |awk '($NF > 60 && $7~//.php/){print $7}'|sort -n|uniq -c|sort -nr|head -100

    linux服务器每秒并发处理数的计算方法,企业Shell脚本分析及切割Apache日志实战。1 222.76.85.28

    17 [09/Sep/2008:20:26:04

    您大概感兴趣的篇章:

    • python解析apache访谈日志脚本分享
    • apache日志文件详解和实用分析命令
    • apache使用日志分割模块rotatelogs分割日志详解
    • 在Linux系统上查看Apache服务器的一无所长日志
    • 界定 Apache日志文件大小的方法
    • 动用apachetop实时监察和控制日志、动态分析服务器运转状态
    • Apache访谈日志的布局与利用

    由此日记查看当天做客次数最多的12个IP

    20 [09/Sep/2008:20:26:05

    #>awk '{print $1}' access.log |sort |uniq -c|sort -nr|head

    ...

    10680 10.0.21.17

    70 [09/Sep/2008:20:29:43

    1702 10.0.20.167

    61 [09/Sep/2008:20:29:44

    823 10.0.20.51

    45 [09/Sep/2008:20:29:45

    504 10.0.20.255

    linux服务器每秒并发处理数的计算方法,企业Shell脚本分析及切割Apache日志实战。37 [09/Sep/2008:20:29:46

    215 58.60.188.61

    2 [09/Sep/2008:20:29:47

    192 183.17.161.216

    在这一个输出中,第一条记下和最终一条记下因为日子有非常的大恐怕被隔开分离,所以是完全不可靠之音信,可以忽略。

    38 112.97.192.16

    假使出口少于10行的话,要推而广之一下限制,修改tail -一千0为tail -一千00取最后80000条数据计算。

    20 117.136.31.145

    假诺只要求看最大值,能够再用sort命令实行排序,并用head命令抽取前10行记录:

    19 112.97.192.31

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

    6 113.106.88.10

    awk命令是贰个效应比较强的授命,在此地只用到最轻巧易行的awk '{print $4;}',意思是将日志每行按空格切分开,然后切出来的结果依次从左到右正是$1 $2 $3 ...,nginx私下认可的main日志时间字段刚好是$4,所以在那边拿$4来测算。假如是别的格式的日记,依据本条法子去找到列数:

    经过日记查看当天钦点ip访问次数过的url和做客次数:

    就拿apache暗中认可的日志来看,首先:

    #>cat access.log | grep "10.0.21.17" | awk '{print $7}' | sort | uniq -c | sort –nr

    head -1 apache.log

    224 /test/themes/default/img/logo_index.gif

    获得近似以下的出口:

    224 /test/themes/default/img/bg_index_head.jpg

    60.8.207.86 - - [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)"

    224 /test/themes/default/img/bg_index.gif

    用awk按空格来切分开之后,60.8.207.86正是$1,$2和$3都以-,[09/Sep/二零零六:21:03:58是$4,这就是索要拿出去总括的。嗯,怎么apache的日志和nginx的一律的?将来才发觉。

    219 /test/vc.php

    那命令也基本没什么变化,实行一下:

    219 /

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

    213 /misc/js/global.js

    小心,假如是在squid服务器前边的apache,则日志会产生那样:

    211 /misc/jsext/popup.ext.js

    60.8.207.86, 127.0.0.1 - - [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)"

    211 /misc/js/common.js

    因为日志的首先个段:x_forwarded_for中含有空格,所以时间的段会在$3、$4或$5之间浮动,进而不可能鲜明,能够先用二遍awk或cut以[本条标识切分一下:

    210 /sladmin/home

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

    197 /misc/js/flib.js

    经过日记查看当天拜会次数最多的时刻段

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

    #>awk '{print $4}' access.log | grep "24/Mar/2011" |cut -c 14-18|sort|uniq -c|sort -nr|head

    诸如此比总结就规范了。

    24 16:49

    总计参照他事他说加以考察公式: 并发 = connection established / min(server keepalive, server timeout) 翻译一下: 并发 = 服务器传输链接数 除...

    19 16:17

    16 16:51

    11 16:48

    4 16:50

    3 16:52

    1 20:09

    1 20:05

    1 20:03

    1 19:55

    再有啥其余的,我们继续补充啦

    因而日记查看某时间段访问次数最多的url

    [qidian@qd16-176 www]$ cat www_access_log.2016-01-28 | grep '2016:10:46' | awk '{print $7}'|sort |uniq -c|sort -nr|head

    询问有个别时间段的需要量

    cat www_access_log.2016-02-02 | grep "02/Feb/2016:21:0"|wc -l

    查询301最多的url排行

    cat www_access_log.2016-02-18 | awk '{if($9 == 301) print $7}'|sort |uniq -c|sort -nr|head

    apache访谈日志剖析

    当下WEB服务器中连着次数最多的ip地址

    #netstat -ntu |awk '{print $5}' |sort | uniq -c| sort -nr

    查看日志中拜访次数最多的前11个IP

    #cat access_log  |cut -d ' ' -f 1 |sort |uniq -c | sort -nr | awk '{print $0 }' | head -n 10 |less

    查阅日志中出现九十九次以上的IP

    #cat access_log  |cut -d ' ' -f 1 |sort |uniq -c | awk '{if ($1 > 100) print $0}'|sort -nr |less

    翻开这几天访谈量最高的公文

    #cat access_log |tail -10000|awk '{print $7}'|sort|uniq -c|sort -nr|less

    查看日志中拜会当先玖十九次的页面

    #cat access_log | cut -d ' ' -f 7 | sort |uniq -c |  awk '{if ($1 > 100) print $0}' | less

    总结某url,一天的探访次数

    #cat access_log|grep '12/Aug/2009'|grep 'index/e1.gif'|wc|awk '{print $1}'

    前二十日的拜见次数最多的网页

    #cat access_log|awk '{print $7}'|uniq -c |sort -n -r|head -20

    从日记里查看该ip在干嘛

    #cat access_log | grep 218.66.36.119| awk '{print $1"t"$7}' | sort | uniq -c | sort -nr | less

    列出传输时间超越 30 秒的文书

    #cat access_log|awk '($NF > 30){print $7}' |sort -n|uniq -c|sort -nr|head -20

    列出最最耗费时间的页面(超过60秒的)

    #cat access_log |awk  '($NF > 60 && $7~/.php/){print $7}' |sort -n|uniq -c|sort -nr|head -100

    本文由新葡亰496net发布于服务器网络,转载请注明出处:linux服务器每秒并发处理数的计算方法,企业Sh

    关键词: