性能定位常用命令整理

统计每秒钟Nginx收到多少请求:

cat access.log | grep 2019:20:19:50 | wc -l

解释:access.log为Nginx的日志,通过Nginx的配置文件nginx.conf查看日志文件名称和位置,2019:20:19:50 表示获取20点19分50秒接收的请求数,去掉秒则可以得到每分钟收到的请求数

查看GC情况:

jstat -gc PID 300 20

解释:PID是进程号,300表示300毫秒收集一次,20表示收集次数

jstack -l PID > a.txt

解释:将java堆栈输出到a.txt文件中

jcmd PID Thread.print >a.txt

解释:jcmd是JDK1.8以上版本才能用,和jstack的效果一样,也是将java堆栈文件打印到a.txt文件中

pstack PID >a.txt

解释:pstack命令表示将进程为PID的本地堆栈打印到a.txt文件中,文件中的LVMID 与top -Hp PID中的线程号是一致的

top -Hp PID

解释:打印进程号为PID的线程信息,可以得到最耗资源的线程号,执行printf %x PPID得到线程号的16进制,与java堆栈中的nid匹配

printf  %x PPID

解释:将十进制线程号转换成十六进制

 iostat -x 1

解释:iostat主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。-x表示显示和io相关的扩展数据,检查awai列,如果该列在负载下持续超过10ms,说明磁盘过慢或磁盘过载

iostat -d -k 2

解释:-d表示显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;2表示,数据显示每隔2秒刷新一次。

netstat -an | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

解释:查看linux系统中tcp连接的状态和连接数量统计,当结果中出现大量FINA_WAIT2时,表示服务器已经不堪重负

netstat -s|grep -i listen

解释:Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。-s 按各个协议进行统计。

posted @   寒冰宇若  阅读(233)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示