当前位置: 首页 > Linux

【人间995】【Linux性能优化】系统CPU占用率很高,却找不到高CPU应用?

时间:2023-04-06 04:18:02 Linux

笔谦一直在实践费曼学习法了解系统知识原理掌握性能分析工具多练习,多思考,多提问只记录个人学习记录,欢迎指正1.总结1.当遇到CPU占用率高,但无法定位某个进程通过top,需要考虑是否是短期应用引起的例如:1、应用本身有问题,导致反复重启2、应用通过exec调用其他二进制程序,这些程序运行时间比较短2.使用top工具查看CPU时,需要同时关注其他参数,比如运行进程数、Tasks、%cpu3、execsnoop是一个专门为短期程序设计的工具,通过ftrace4实时监控exec()行为。通过这个对于这个练习,也对docker进行一些简单的命令操作dockerps-a//查看当前所有容器dockerimages//所有镜像dockerrmcontainId//删除对应的容器dockercpXXXCopy2.案例实践之一虚拟机A上安装nginx和PHP应用$dockerrun--namenginx-p``10000``:``80``-itdfeisky/nginx:sp$dockerrun--namephpfpm-itd--networkcontainer:nginxfeisky/php-fpm:sp在另一台机器B上,使用curl访问http://[VM1的IP]:10000,确认Nginx已经正常启动##虚拟机A的IP:192.168.153.132curlhttp://192.168.153.132:10000/可以了!jasen@ubuntu:~$ab-v模拟100个并发请求测试Nginx性能使用ab工具,一共测试了1000个请求。这次在第二个终端中,我们将测试的并发请求数改为5,并将请求持续时间设置为10分钟(-t600)。这样,当你在第一个终端使用profiling工具时,Nginx的压力还在继续。继续在第二个终端运行ab命令:pid查看进程并重新测试压力,然后在第一个终端运行top命令观察一段时间(很重要)。下图只是一个瞬间状态:perf分析CPU性能事件那么,如何验证是否存在大量压力进程呢?既然top,pidstat工具解决不了问题,试试perf工具,可以用来分析CPU性能事件。如下:#记录性能事件,等待大约``15``秒后按Ctrl+C退出$perfrecord-g#查看报告$perfreport事实上,压力占所有CPU时钟事件的67%。也可以使用enter键展开+位置查看stress的调用栈详情