zoukankan      html  css  js  c++  java
  • 查看服务器各种性能参数

    提升linux下tcp服务器并发连接数限制
    http://blog.chinaunix.net/uid-24907956-id-3428052.html


    1.查看Web服务器(Nginx)的并发请求数及其TCP连接状态:
    netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"t",state[key]}'

    返回结果一般如下:
    LAST_ACK 5 
    SYN_RECV 30
    ESTABLISHED 1597 (正常数据传输状态)
    FIN_WAIT1 51
    FIN_WAIT2 504
    TIME_WAIT 1057 (处理完毕,等待超时结束的请求数)

    其他参数说明:

    tcp状态:
    LISTEN:侦听来自远方的TCP端口的连接请求
    SYN-SENT:再发送连接请求后等待匹配的连接请求
    SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认
    ESTABLISHED:代表一个打开的连接
    FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认
    FIN-WAIT-2:从远程TCP等待连接中断请求
    CLOSE-WAIT:等待从本地用户发来的连接中断请求
    CLOSING:等待远程TCP对连接中断的确认
    LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认
    TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认
    CLOSED:没有任何连接状态

    2.查看哪些进程使用了swap分区

    for i in $( cd /proc;ls |grep "^[0-9]"|awk ' $0 >100') ;do awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps 2>/dev/null ; done | sort -k2nr | head -10

     上面的命令会列出进程id,然后用ps aux|grep 进程id 查看具体是什么进程使用了swap分区。

     
    3.查看目录下面各个子目录的占用空间大小,并按由大到小排序
    du -h --max-depth=1 |grep 'G' |sort -rn
    排除某个大目录
    sudo du -sh /home/www/* --exclude="/home/www/upload"
     

    4.查看Nginx运行进程数
    ps -ef | grep nginx | wc -l


    5.查看Web服务器进程连接数:
    netstat -antp | grep 80 | grep ESTABLISHED -c

    6.通过命令查看服务器上正在运行的php进程
    ps aux|grep php-fpm |wc -l


    7.查看已经有多少个php进程用来处理tcp请求
    netstat -anopt | grep "php-fpm" | grep "ESTABLISHED" | wc -l

    当前正在进行tcp网络数据传输的php进程列表

    netstat -anopt | grep "php-fpm" | grep "ESTABLISHED"

    8.netstat命令统计服务器并发连接数
    netstat -anopt | grep "ESTABLISHED" |wc -l

    9.查看服务器连接列表

    netstat -anopt | grep "ESTABLISHED"

    netstat -anopt | grep "192.168.0.11:3306" | grep "ESTABLISHED" 查看服务器与其他服务器的正在进行传输数据状态的连接列表

    ss -tanp  | grep "ESTAB"

    10.ss命令统计服务器并发连接数
    ss -o state established | wc -l

    11.如何查看当前占用CPU或内存最多的几个进程

    ps aux | sort -k4nr | head -10

    命令行输入top回车,然后按下大写M按照memory排序,按下大写P按照CPU排序。

    *命令详解: 
    1. head:-N可以指定显示的行数,默认显示10行。 
    2. ps:参数a指代all——所有的进程,u指代userid——执行该进程的用户id,x指代显示所有程序,不以终端机来区分。ps -aux的输出格式如下:

    3. sort -k4nr中(k代表从根据哪一个关键词排序,后面的数字4表示按照第四列排序;n指代numberic sort,根据其数值排序;r指代reverse,这里是指反向比较结果,输出时默认从小到大,反向后从大到小。)。本例中,可以看到%MEM在第4个位置,根据%MEM的数值进行由大到小的排序。-k3表示按照cpu占用率排序。

     

    12.ss命令列出所有http连接中的连接
    ss -o state established '( dport = :http or sport = :http )'

    13.ss命令显示Sockets摘要
    ss -s

    14.如何查看一个php进程的内存占用情况:
    pmap $(pgrep php-fpm|head -1)


    15.ps指令查看内存占用情况:
    ps -A --sort -rss -o comm,pmem,pcpu|uniq -c |head -15

    16.分页查看网络链接
    netstat -anotp | more

    netstat -anotp | grep "ESTABLISHED" | more

    17.倒叙分页查看某个log文件
    tac test.log | more

    18.查看系统路由表
    netstat -r

    19.批量跟踪php进程
    ps -ef | grep fpm | awk '{print "-p " $2}' | xargs strace


    20.查看哪个进程磁盘IO资源占用较高
    iotop -oP
    命令的含义:只显示有I/O行为的进程

    iotop还是非常好用的,能看到哪些进程使用了swap分区

    21.linux监控网络实时带宽:
    先安装iftop
    #yum install iftop

    命令:
    iftop -i eth0 -n

    TX:发送总流量
    RX:接收总流量
    TOTAL:总流量
    Cumm:运行iftop到目前时间的总流量
    peak:流量峰值
    rates:分别表示过去2S 10S 40S的平均流量

    22、查看某个端口被哪个进程监听

    netstat -anp|grep 9000


    23.查看服务器网卡带宽:

    ethtool eth0

    显示:
    Speed: 1000Mb/s (等于125MB/s)

    1B=8bit

    bps(bit per second 每秒多少个比特)

    24.du-查看文件夹大小-并按大小进行排序

     du -sh * | sort -nr

     sudo du -ah --max-depth=1

    查看根目录下大于20M的文件列表

    sudo find / -type f -size +20M  -print0 | xargs -0 du -h | sort -nr

    25.文件夹建立软链接(用绝对地址)

    ln -s 源地址(真实存在的实际地址)  目的地址(符号链接-快捷方式)

    26.查看网卡实时流量

    sar -n DEV 1 2

    sar命令包含在sysstat工具包中,提供系统的众多统计数据。其在不同的系统上命令有些差异,某些系统提供的sar支持基于网络接口的数据统计,也可以查看设备上每秒收发包的个数和流量。

     sar –n DEV  1 2

    命令后面1 2 意思是:每一秒钟取1次值,取2次。

    DEV显示网络接口信息

    另外,-n参数很有用,他有6个不同的开关:DEV | EDEV | NFS | NFSD | SOCK | ALL ,其代表的含义如下:

    • DEV显示网络接口信息。
    • EDEV显示关于网络错误的统计数据。
    • NFS统计活动的NFS客户端的信息。
    • NFSD统计NFS服务器的信息
    • SOCK显示套接字信息
    • ALL显示所有5个开关
    [sre@CDVM-213017031 ~]$ sar -n DEV 1 2
    Linux 2.6.32-431.el6.x86_64 (CDVM-213017031)     05/04/2017     _x86_64_    (4 CPU)
    
    08:05:30 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
    08:05:31 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    08:05:31 PM      eth0   1788.00   1923.00    930.47    335.60      0.00      0.00      0.00
    
    08:05:31 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
    08:05:32 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    08:05:32 PM      eth0   1387.00   1469.00    652.12    256.98      0.00      0.00      0.00
    
    Average:        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
    Average:           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    Average:         eth0   1587.50   1696.00    791.29    296.29      0.00      0.00      0.00

    参数说明:

    • IFACE:LAN接口
    • rxpck/s:每秒钟接收的数据包
    • txpck/s:每秒钟发送的数据包
    • rxbyt/s:每秒钟接收的字节数
    • txbyt/s:每秒钟发送的字节数
    • rxcmp/s:每秒钟接收的压缩数据包
    • txcmp/s:每秒钟发送的压缩数据包
    • rxmcst/s:每秒钟接收的多播数据包
    • rxerr/s:每秒钟接收的坏数据包
    • txerr/s:每秒钟发送的坏数据包
    • coll/s:每秒冲突数
    • rxdrop/s:因为缓冲充满,每秒钟丢弃的已接收数据包数
    • txdrop/s:因为缓冲充满,每秒钟丢弃的已发送数据包数
    • txcarr/s:发送数据包时,每秒载波错误数
    • rxfram/s:每秒接收数据包的帧对齐错误数
    • rxfifo/s:接收的数据包每秒FIFO过速的错误数
    • txfifo/s:发送的数据包每秒FIFO过速的错误数
  • 相关阅读:
    php 字符串
    iOS copy&mutableCopy理解
    Swift学习(二)
    Swift 学习一函数&函数属性&懒加载
    LICEcap GIF 屏幕录制工具
    UIApplication介绍
    进度条渐变色
    -(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
    DedeCms 5.7友情链接模块注入漏洞
    phpcms v9会员中心文件上传漏洞
  • 原文地址:https://www.cnblogs.com/dongruiha/p/7567587.html
Copyright © 2011-2022 走看看