博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
程序性能测试方法
阅读量:5259 次
发布时间:2019-06-14

本文共 881 字,大约阅读时间需要 2 分钟。

程序性能测试工具

程序处理请求过程中,根据监控发现latency会产生周期性的峰值。因此尝试了多种性能测试工具,记录如下。

vmstat

  • 参考
  • vmstat -at 1 | tee vmstat.log

查看缺页中断

  • 参考
  • watch -n 1 -d 'ps -o majflt,minflt -p pid
    • 其中 majflt 与 minflt 的不同是, majflt 表示需要读写磁盘,可能是内存对应页面在磁盘中需要 load 到物理内存中,也可能是此时物理内存不足,需要淘汰部分物理页面至磁盘中

查看进程运行在哪些CPU内核上

  • 参考
  • ps -o pid,psr,comm -p pid
    • psr列
  • taskset -a -p -c 0-30 pid
    • 设置pid进程运行在0~30核上
  • top -H -d 1 -p pid
    • 查看pid进程的线程
    • 按f,选择需要显示的列
    • top命令后按1可显示CPU列表,shift+p排序

查看内存泄露

  • valgrind
    • 参考
    • valgrind —leak-check-full --show-leak-kinds=all --log-file=“valgrind.log"
  • sanitize
    • 参考
    • 比valgrind对程序性能影响更小,但需要GCC 4.8以上或使用clang编译

strace

  • 参考
  • strace -cp pid -f
    • 统计pid进程所有系统调用的耗时占比

pstack

  • 查看线程栈

gprof

  • 安装graphviz sudo yum install graphviz
  • 下载gprof2dot.py
  • gprof -b ./docFeatureServer gmon.out > report.txt
  • python ./gprof2dot.py -n0 -e0 -s -w report.txt > report.do
  • dot ./report.dot -T svg -o report.svg
  • 参考

转载于:https://www.cnblogs.com/wangzhiyi/p/10391432.html

你可能感兴趣的文章
overflow属性
查看>>
Leetcode:Minimus Depth of Binary Tree
查看>>
半年实习的一点感悟
查看>>
Servlet 与 Ajax 交互一直报status=parsererror
查看>>
Lucene学习第一课
查看>>
依赖项属性
查看>>
gitlab安装配置
查看>>
MyISAM InnoDB 区别
查看>>
python提高
查看>>
【Jmeter基础知识】Jmeter的三种参数化方式
查看>>
Python开发入门与实战2-第一个Django项目
查看>>
Technet IIS内幕FAQ摘录(一)
查看>>
软件单元测试与代码规范
查看>>
Hadoop2.6集群环境搭建(HDFS HA+YARN)原来4G内存也能任性一次.
查看>>
Mybatis框架——2017.08.26
查看>>
spring-Cloud 学习目录
查看>>
centos 7.x编写开机启动服务
查看>>
Codeforces Gym101502 I.Move Between Numbers-最短路(Dijkstra优先队列版和数组版)
查看>>
20169218 2016-2017-2 《网络攻防实践》第八周学习总结
查看>>
初接触人工智能
查看>>