- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux系统分析工具介绍对于程序员来说,整个计算机系统由四个重要的模块组成,分别是:CPU,网络,磁盘,内存。在我们的程序或者系统出现问题时,我们应该分别有一定先后顺序的对这四块进行排查。而在Linux系统下,有很多高效的工具,可以帮助我们分析定位问题。本文对于Linux下常用的一些工具进行一些简单的介绍,帮助读者能对这些工具有一个初步的了解。如果有不对的地方,欢迎随时指正交流。1.CPU对于cpu我们主要介绍top,strace,perf,vmstat。1.1 toptop命令可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。Top常用的可选参数和其对应的含义如下:(1)-c:显示完整的命令;(2)-d:屏幕刷新间隔时间; ?(3)-i时间:设置间隔时间;(4)-u用户名:指定用户名;(5)-p进程号:指定进程;(6)-n次数:循环显示的次数。?top执行起来的效果如下:前五行是系统整体的统计信息。第一行是任务队列信息,第二行和第三行为进程和CPU的信息,最后两行为内存信息。下面对一些比较重要的参数进行说明。?Load average:0.60,0.94,1.04。load average表示系统在过去1分钟5分钟15分钟的任务队列的平均长度。这个值越大就表示系统CPU越繁忙。Cpu(s):5.0%us(用户空间占用的cpu百分百),3.9%sy(系统空间占用的cpu百分比),0.0%ni(用户进程空间内改变过优先级的用户占用的cpu百分比),90.9%id(空闲cpu的百分比),0.2%wa(等待输入输出cpu的百分比)。Mem:817280k buffers(用作内核缓存的内存量)。Swap:磁盘交换区容量。1.2 strace?strace可以跟踪到一个进程产生的系统调用,包含参数、返回值、执行消耗的时间。?strace的常用的选项以及选项对应的含义如下:(1)-c 统计每一系统调用的所执行的时间,次数和出错的次数等(2)-f 跟踪由fork调用所产生的子进程(3)-t 在输出中的每一行前加上时间信息(4)-tt 在输出中的每一行前加上时间信息(微妙级)?(5)-T 显示每一调用所耗的时间(6)-e trace=set 只跟踪指定的系统调用。例如:-e trace=open,close,read,write表示只跟踪这四个系统调用。默认的为set=all(7)-e trace=file 只跟踪有关文件操作的系统调用(8)-e trace=process 只跟踪有关进程控制的系统调用(9)-e trace=network 跟踪与网络有关的所有系统调用(10)-e strace=signal 跟踪所有与系统信号有关的 系统调用(11)-e trace=ipc 跟踪所有与进程通讯有关的系统调用(12)-o filename 将strace的输出写入文件filename -p pid 跟踪指定的进程pid例如执行 strace cat /dev/null,会得到如下输出:每一行都是一条系统调用,等号左边是系统调用的函数名及其参数,右边是该调用的返回值。如果你知道你要找的是什么,你可以让strace只跟踪一些类型的系统调用。例如你需要看看在loadconfigure脚本里面执行的程序里面系统调用ececve的调用情况,则只需要输入这样一条shell命令:strace -f -o loadconfigure-strace.txt -e execve ./loadconfigure再例如,我们知道ActLogicSvr的进程号是16789,则可以执行strace -p?16789 -c来统计ActLogicSvr在某一段时间系统调用的统计情况。结果如下所示:这里很清楚的告诉你调用了那些系统函数,调用次数多少,消耗了多少时间等等这些信息,这个对我们分析一个程序来说是非常有用的。1.3 Perfperf是Linux的性能调优工具。perf工具的常用命令包括top,record,report等。perf top命令用来显示程序运行的整体状况。该命令主要用来观察整个系统当前的状态,比如可以通过查看该命令的输出来查看当前系统最耗时的内核函数或某个用户进程。Perf stat的运行效果如下:perf record命令则用来记录指定事件在程序运行过程中的信息,而Perf report命令则用来报告基于前面record命令记录的事件信息生成的程序运行状况报告。我们通常用命令perf record -g -p pid将进程在命令运行期间的各项指令运行所占CPU的比例存在perf.data里面(-g表示记录函数之间的调用关系)。再用perf report --call-graph --stdio将刚刚的统计结
文档评论(0)