Linux性能优化-狂打日志的问题 磁盘IO与网络
https://blog.csdn.net/hixiaoxiaoniao/article/details/86534555 Linux性能优化-狂打日志的问题
iostat pidstat strace lsof
https://blog.csdn.net/weixin_31456563/article/details/116729876
查看各核 CPU 情况 mpstat -P ALL 1 3
https://blog.csdn.net/hixiaoxiaoniao/article/details/86671893
磁盘IO讲解
linux
tc 网络流量控制
https://blog.csdn.net/hixiaoxiaoniao/article/details/88391691
查看tc配置规则,显示有30%的丢包率
-
tc -s qdisc show dev eth0
-
qdisc netem 8001: root refcnt 2 limit 1000 loss 30%
-
Sent 9199 bytes 163 pkt (dropped 83, overlimits 0 requeues 0)
-
backlog 0b 0p requeues 0
删除tc规则
tc qdisc del dev eth0 root netem loss 30%
---------------------------------------------------
tcpdump 对网络上的数据包进行截获 netstat -i 查看有无丢包
yum install tcpdump -y
Wireshark(以前是 etherea是 Windows下非常简单易用的抓包工具。但在 Linux下很难找到一个好用的图形化抓包工具
还好有 Tcpdump。我们可以用 Tcpdump+ Wireshark的完美组合实现:在 Linux里抓包,然后在 Windows里分析包
hping3 模拟发送SYN数据包

(1)tcp: ip Icmp arp rarp和tcp、udp、imp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型
(2)-i eth1:只抓经过接囗eth1的包
3)-t:不显示时间戳
4)-s 0:抓取数据包时默认抓取长度为68字节。加上S0后可以抓到完整的数据包
(5)-c100:只抓取100个数据包
(6) dst port !22:不抓取目标端口是22的数据包
(7) src net 192168.1.024:数据包的源网络地址为192168.1.0/24
(8)-w ./target. cap:保存成cap文件,方便用 ethereal(即 wireshark)分析
--------------------------------------
# 只关注套接字统计
$ netstat -s | grep socket
73 resets received for embryonic SYN_RECV sockets
308582 TCP sockets finished time wait in fast timer
8 delayed acks further delayed because of locked socket
290566 times the listen queue of a socket overflowed
290566 SYNs to LISTEN sockets dropped
# 稍等一会,再次运行
$ netstat -s | grep socket
73 resets received for embryonic SYN_RECV sockets
314722 TCP sockets finished time wait in fast timer
8 delayed acks further delayed because of locked socket
344440 times the listen queue of a socket overflowed
344440 SYNs to LISTEN sockets dropped
根据两次统计结果中 socket overflowed 和 sockets dropped 的变化,你可以看到,有大量的套接字丢包,并且丢包都是套接字队列溢出导致的。所以,接下来,我们应该分析连接队列的大
小是不是有异常。
你可以执行下面的命令,查看套接字的队列大小:
ss -ltnp
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 10 10 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=10491,fd=6),("nginx",pid=10490,fd=6),("nginx",pid=10487,fd=6))
LISTEN 7 10 *:9000 *:* users:(("php-fpm",pid=11084,fd=9),...,("php-fpm",pid=10529,fd=7))
这次可以看到,Nginx 和 php-fpm 的监听队列 (Send-Q)只有 10,而 nginx 的当前监听队列长度 (Recv-Q)已经达到了最大值,php-fpm 也已经接近了最大值。很明显,套接字监听队
列的长度太小了,需要增大
https://blog.csdn.net/weixin_30235225/article/details/102054174
本文来自博客园,作者:up~up,转载请注明原文链接:https://www.cnblogs.com/soft-engineer/articles/15464822.html
浙公网安备 33010602011771号