查看服务器各种性能参数
提升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分区。
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
查看监听的端口所对应的进程编号
sudo lsof -i -P -n | grep LISTEN
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过速的错误数
posted on 2017-09-21 11:11 dongruiha 阅读(4721) 评论(0) 编辑 收藏 举报