怎样分析战地1 cpu利用率100上不去的情况

新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
稍有积蓄, 积分 242, 距离下一级还需 258 积分
论坛徽章:0
本帖最后由 oracle26 于
19:14 编辑
RHEL6.3 中,跑一个C写的单线程压力测试程序,一直压,都压的业务很慢了,但CPU的使用率始终只有60%左右,求教瓶颈在哪儿呢?
CPU 64核,只有CPU#0比较高,后面的CPU始终比较空闲。第一张和第三张是mpstat的,第二张是vmstat,第四张是top
QQ图片28.jpg (70.24 KB, 下载次数: 11)
19:12 上传
QQ图片24.jpg (87.05 KB, 下载次数: 12)
19:12 上传
QQ图片18.jpg (153.95 KB, 下载次数: 11)
19:11 上传
29771.jpg (56.62 KB, 下载次数: 11)
19:11 上传
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
稍有积蓄, 积分 242, 距离下一级还需 258 积分
论坛徽章:0
只是看的出来In和cs比较高,但Interrupts和context swith比较高的话,那CPU应该忙起来才对啊,为什么就是忙不起来呢?
稍有积蓄, 积分 242, 距离下一级还需 258 积分
论坛徽章:0
而且context swith远高于interrupts,是不是一直在进行上下文切换,其实CPU上的时间片并没有被利用起来,但又没有现成在CPU上被执行,所以才导致业务程序处理的很慢,而CPU利用率又不高?
如果是这种情况,在系统层面有可以优化的吗?
巨富豪门, 积分 22811, 距离下一级还需 17189 积分
论坛徽章:15
环境中有几个核?
稍有积蓄, 积分 242, 距离下一级还需 258 积分
论坛徽章:0
humjb_1983
巨富豪门, 积分 22811, 距离下一级还需 17189 积分
论坛徽章:15
oracle26 发表于
64回复 4# humjb_1983
64个cpu,单线程压力?
稍有积蓄, 积分 242, 距离下一级还需 258 积分
论坛徽章:0
恩,但线程,并发,有30个左右的线程同时跑回复
humjb_1983
巨富豪门, 积分 22811, 距离下一级还需 17189 积分
论坛徽章:15
64个核,30个线程,显然压力不足嘛~~
稍有积蓄, 积分 242, 距离下一级还需 258 积分
论坛徽章:0
但实际的并发有几百个,只是在CPU上同时跑的只有30个左右
关键是业务已经变慢了,并发往上提也没有意义了,试了后面压力增大,基本没什么改变回复
humjb_1983
巨富豪门, 积分 22811, 距离下一级还需 17189 积分
论坛徽章:15
呵呵,那只能说明你们的业务的并发性能不好,未能完全利用cpu资源,可能是锁等竞争操作效率太低。。。
北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处分析cpu使用情况的方法
分析cpu使用情况的方法
学习啦【CPU知识】 编辑:沈迪豪
  大家都知道怎么使用电脑,但是你知道怎么分析cpu使用情况吗?不知道的话跟着学习啦小编一起来学习了解怎么分析cpu使用情况。
  怎么分析cpu使用情况
  要分析系统的CPU资源是否够的前提谁占用了CPU资源,占用了多少,时间多长。 下面是一些衡量CPU闲忙程度的经用指标:
  1)用户使用CPU的情况
  CPU运行常规用户进程
  CPU运行niced process
  CPU运行实时进程
  2)系统使用CPU的情况
  用于系统调用
  用于I/O管理:中断和驱动
  用于内存管理:paging and swapping
  用于进程管理:context switch and process start
  3)WIO:由于进程等待I/O而使CPU处于空闲状态的比率,这些I/O主要指block I/O,raw I/O,VM paging/
  4)CPU的空闲率,即除了上面的WIO以外的空闲情况;
  5)CPU用于上下文交换的比率(Context Switch CPU utilization)
  6)nice
  7)real-time
  运行进程队列的长度,即处于可运行状态的进程个数的大小,不过我们关心的是这些在等待CPU调度执行时所花的时间;
  9)平均负载(load average)
  CPU资源成为系统性能的瓶颈的征兆
  CPU就像人的大脑,完成各种交给它的任务。如果任务太多,CPU就要忙不过来,它的运行效率就要下降。就像人生病会有一典型症状一样,当CPU资源 成为系统性能的瓶颈时,它也有一些典型的症状:
  很慢的响应时间(slow response time)
  CPU空闲时间为零(zero percent idle CPU)
  过高的用户占用CPU时间(high percent user CPU)
  过高的系统占用CPU时间(high percent system CPU)
  长时间的有很长的运行进程队列(large run queue size sustained over time)
  processes blocked on prority
  必须注意的是,如果系统出现上面的这些症状并不能说一定是由于CPU资源不够,事实,有些症状 的出现很可能是由于其他资源的不足而引起,如内存不够时,CPU会忙内存管理的事,这时从表面上, CPU的利用是100%,甚至显得不够,如果据此就简单地认为增加CPU就可以解决问题是大错特错了。
  因此,还是那句话,必须用不同的工具、从不同的方面对系统进行分析后,才能做出结论,即使这样,经验将 起到不可替代的作用。
  哪些进程是占用CPU资源的大户?
  在操作系统中,并不是所有的进程都以同样的方式使用CPU资源。通常情况下,有些进程需要比其他进程更多的CPU时间片才能顺利地完成任务。 下面是一些典型的占用CPU资源的大户:
  进程创建(process creation)
  终端字符进程(teminal character processes(MUX- and LAN-based)
  计算密集型进程和实时进程
  X-终端和X-服务器进程(X-terminals and X-servers)
  利用SAR工具分析CPU的利用率
  利用SAR进行CPU的利用率分析的命令形式:
  #sar -u,这时数据是通过sa1在后台定时生成;
  #sar -u 5 100,每隔5秒取样一次,共取100次;
  SAR -u:Report CPU utilization (the default); portion of time running in one of several modes. On a multi-processor system, if the -M option is used together with the -u option, per-CPU utilization as well as the average CPU utilization of all the processors are reported. If the -M option is not used, only the average CPU utilization of all the processors is reported:
  cpu: cpu number (only on a multi-processor system with the -M option);
  %wio: idle with some process waiting for I/O (only block I/O, raw I/O, or VM pageins/swapins indicated);
  %idle:
  对结果的分析
  首先,我们看%idle列的值,如果为接近零,则再看对应%wio列的值,如果这列的大于7,则表明系统的磁盘或其他I/O可能有问题,需要进一步的分析:
  用iostat命令分析各个磁盘的传输闲忙状况,如#iostat -t 5 2,每隔5秒取样一次,共取2次;
  用sar -d命令分析各块设备(磁盘、磁带)活动情况;
  用sar -b命令分析系统的缓存的活动情况;
  用sar -w命令分析进程的deactivation/reactivation and switching acti
  如果%idle列很小,而对应的%wio列的值也很小,这时,我们查看%usr列和%sys列的值。如果%usr列的值很大,说明有用户进程占用很多CPU时间;如果%sys列的值很大,则说明系统管理方面花了很多时间。需要进一步的分析:
  用GlancePlus对占用CPU时间最大的进程进行单独分析,为什么它会占用如此多的CPU时间。
  如果%sys列的值很大,可以用SAR -C命令对系统调用进行进一步分解,看这些系统调用主要是做些什么。同时,还必须分析是否有其他瓶颈,如paging也会引起%sys的值很大,这时,可以用sar -q查看系统的运行进程队列长度,也可以用GlancePlus和vmstat查看内存的使用情况;
  利用SAR工具分析运行进程队列长度
  利用SAR进行运行进程队列长度分析的命令形式:
  #sar -q,这时数据是通过sa1在后台定时生成;
  #sar -q 5 100,每隔5秒取样一次,共取100次;
  SAR -q: Report average queue length while occupied, and percent of time occupied. On a multi-processor machine, if the -M option is used together with the -q option, the per-CPU run queue as well as the average run queue of all the processors are reported. If the -M option is not used, only the average run queue information of all the processors is reported:
  cpu: cpu number (only on a multi-processor system with the -M option);
  runq-sz: Average length of the run queue(s) of processes (in memory and runnable);
  %runocc: The percentage of time the run queue(s) were occupied by processes (in memory and runnable);
  swpq-sz: Average length of the swap queue of runnable processes (processes swapped out but ready to run);
  %swpocc: The percentage of time the swap queue of runnable processes (processes swapped out but ready to run) was occupied.
  对结果的分析:
  这些数据越小越好。
  如果runq-sz大于4,或者%swapocc大于5时,则表明系统的CPU或内存可能有问题,需要进一步的分析:
  用sar -u命令分析CPU的使用情况;
  用sar -w命令分析进程的deactivation/reactivation and switching acti
  也可以用GlanceP
  利用SAR工具分析系统调用
  利用SAR进行系统调用分析的命令形式:
  #sar -c,这时数据是通过sa1在后台定时生成;
  #sar -c 5 100,每隔5秒取样一次,共取100次;
  SAR -c: Report system calls:
  scall/s: Number of system calls of
  sread/s: Number of read() and/or readv() sys
  swrit/s: Number of write() and/or writev() sys
  swpq-sz: Average length of the swap queue of runnable processes (processes swapped out but ready to run);
  fork/s: Number of fork() and/or vfork() sys
  exec/s: Number of exec() sys
  rchar/s: Number of characters transferred by read system calls block devices only)
  wchar/s: Number of characters transferred by write system calls (block devices only) per second.
  对结果的分析:
  如果scall/s列的值很大,那么这么多的系统调用的原因就必须仔细分析了。
  我们可以查看fork/s和exec/s列的值,看看系统是否在创建大量新的进程。
  利用time命令测试某个命令和程序的执行效率
  我们可以利用time命令来测试一个命令的执行效率,语法为:
  time command
  command is executed. Upon completion, time prints the elapsed time during the command, the time spent in the system, and the time spent executing the command. Times are reported in seconds.
  Execution time can depend on the performance of the memory in which the program is running.
  当我们觉得某个进程的性能不好时,最简单的方法就是利用time命令来查看一下进程执行时它的 时间分布情况,然后再用其他工具进一步分析。
  利用top命令查看最耗CPU资源的进程
  我们可以利用top命令来查看最耗CPU资源的进程。top命令还会根据进程占用CPU资源的多少而动态改变。
  它的语法为:
  top [-s time] [-d count] [-q] [-u] [-h] [-n number]
  其中各选项的含义为:
  -s time: 屏幕刷新的时间间隔time,缺省为5秒;
  -d count: 屏幕刷新count次后,top命令自己也退出;
  -q: This option runs the top program at the same priority as if it is executed via a nice -20 command so that it will execute faster (see nice(1)). This can be very useful in discovering any system problem when the system is very sluggish. This option is accessibly only to users who have appropriate privileges.
  -u: User ID (uid) numbers are displayed instead of usernames. This improves execution speed by eliminating the additional time required to map uid numbers to user names.
  -h: Hides the individual CPU state information for systems having multiple processors. Only the average CPU status will be displayed.
  -n number: Show only number processes per screen. Note that this option is ignored if number is greater than the maximum number of processes that can be displayed per screen.
  在top命令运行时,我们可用以下几个快捷键来翻屏:
  j: 向前翻;
  k: 向后翻;
  t: 回到第一页;
  对结果的分析:
  通过top命令,我们可以快速了解到目前系统的CPU资源使用情况,尤其是占用CPU资源最多的进程是我们必须关注的对象。
  我们通过RES(the current size of the process resident in memory)列可以知道每个进程占用内存的数量。
  我们通过NICE列可以知道系统是否使用NICE值来调节该进程的工作负载平衡。
  利用uptime命令查看系统整体情况
  uptime prints the current time, the length of time the system has been up, the number of users logged on to the system, and the average number of jobs in the run queue over the last 1, 5, and 15 minutes.
  w is linked to uptime and prints the same output as uptime -w, displaying a summary of the current activity on the system.
  它的语法为:
  uptime [-hlsuw] [user]
  w [-hlsuw] [user]
  其中各选项的含义为:
  -h: Suppress the first line and the heading line. This option should not be used with the -u option. This option assumes the use of the -w option to uptime.
  -l: Use long output. This option assumes the use of the -w option to uptime.
  -s: Use the short form. of output for displaying terminal information. The terminal the login time and CPU times are suppressed.
  -u: Print only the first line describing the overall state of the system. This is the default for the uptime command.ormation for systems having multiple processors. Only the average CPU status will be displayed.
  -w: Print a summary of the current activity on the system for each user. This is the default for the w command.
分析cpu使用情况的方法相关文章:
本文已影响 人
[分析cpu使用情况的方法]相关的文章
看过本文的人还看了
1739人看了觉得好
1772人看了觉得好
2191人看了觉得好
【CPU知识】图文推荐分析 CPU 使用率(不调试)
分析 CPU 使用率
分析 CPU 使用率(不调试)
Visual Studio 2015
若要了解有关 Visual Studio 2017 RC 的最新文档,请参阅 。如需调查应用中的性能问题,最好从了解其使用 CPU 的方式开始。CPU 使用率工具可为你显示 CPU 耗用时间执行 C + +、C# / VB 和 JavaScript 代码的位置。CPU 使用率工具可与其他 Visual Studio 诊断工具结合使用。 请参阅 。从 Visual Studio 2015 Update 1 开始,不离开调试器即可查看每个函数的 CPU 使用率细目。 可以在调试时打开和关闭 CPU 分析,并在停止执行时(例如在断点处)查看结果。 有关详细信息,请参阅。有关分析 Windows 应用商店应用性能的演练,请参阅。性能和诊断中心提供了大量其他选项来运行和管理诊断会话。 例如,你可以在本地或远程计算机上或在模拟器或仿真程序中运行“CPU 使用率”工具。 可以分析在 Visual Studio(附加在运行的应用上)中打开的项目的性能,或启动从 Windows 应用商店安装的应用。 有关详细信息,请参阅。在 Visual Studio 中,将解决方案配置设置为“零售”,然后选择部署目标。在“发布”模式下运行应用能更清晰地看到实际的应用性能。在本地计算机上运行应用可最佳复制安装的应用的执行过程。如果从远程设备收集数据,则可直接在该设备上运行应用,而不通过使用远程桌面连接运行。对于 Windows Phone 应用,直接从“设备”收集数据这种方式提供的数据最准确。在“调试”菜单中,选择“启动诊断(不调试)”。选择“CPU 使用率”,然后选择“启动”。启动应用时,单击“获取最大数”。 显示输出后等待约 1 秒时间,然后选择“获取最大数,异步”。 在单击按钮之间进行停顿有助于更轻松地隔离诊断报告中的按钮单击例程。在第二个输出行显示之后,在性能和诊断中心中选择“停止收集”。CPU 使用量工具可分析数据并显示报告。若要开始了解调用关系树的信息,重新选择 GetMaxNumberButton_Click 段,查看调用关系树的详细信息。CPU 使用量调用关系树中的顶级节点是一个伪节点在大多数应用中,当禁用“显示外部代码”选项时,二级节点是[外部代码]节点,该节点包含系统和框架代码,它可以启动和停止应用、绘制 UI、控制线程计划以及向应用提供其他低级服务。二级节点的子级为用户代码方法和异步例程,它们由二级系统和框架代码进行调用或创建。方法的子节点仅包含用于父方法调用的数据。 禁用“显示外部代码”后,应用方法只能包含[外部代码]节点。外部代码是你编写的代码执行的系统和框架组件中的函数。 外部代码包含函数,可启动和停止应用、绘制 UI、控制线程以及向应用提供其他低级别服务。 在大多数情况下,你不会对外部代码感兴趣,因此 CPU 使用率调用关系树可将用户方法的外部函数收集到一个[外部代码]节点中。若要查看外部代码的调用路径,请从“筛选器视图”列表中选择“显示外部代码”,然后选择“应用”。请注意,许多外部代码调用链已深度嵌套,因此函数名列的宽度可能超过所有计算机监视器(最大的计算机监视器除外)的显示宽度。 发生这种情况时,函数名将显示为[…]:使用搜索框以找到你正在查找的节点,然后使用水平滚动条以使数据在视图中显示:总 CPU (%) 所选时间范围内应用的 CPU 活动百分比(函数调用和函数调用的函数使用的)。 请注意,这不同于“CPU 利用率”时间线图,后者是将时间范围内的应用总活动量与可用的 CPU 总容量相比较。自 CPU (%) 所选时间范围内应用的 CPU 活动百分比(函数调用使用,不包括函数调用的函数活动)。总 CPU(毫秒)所选时间范围内函数调用以及该函数调用函数所耗用的毫秒数。自 CPU(毫秒)所选时间范围内函数调用以及该函数调用函数所耗用的毫秒数。模块包含函数的模块的名称或包含 [外部代码] 节点中的函数的模块数。当编译器遇到异步方法时,它会创建一个隐藏的类以控制方法的执行。 从概念上讲,此类是一个状态机,包括编译器生成的函数(以异步方式调用原始方法的操作)的列表、回调、计划程序和所需的相应迭代器。 当由父方法调用原始方法时,运行时将从父方法的执行上下文中移除该原始方法,并且将在控制系统和框架代码的上下文中运行隐藏类的方法,以控制应用的执行。 异步方法通常(但不总是)在一个或多个不同线程上执行。 此代码将显示在 CPU 使用率调用关系树中,作为树的顶层节点正下方的 [外部代码] 节点的子级。若要在我们的示例中查看该示例,请在时间线中重新选择 GetMaxNumberAsyncButton_Click 段。[外部代码]下方的前两个节点是状态机类的编译器生成的方法。 第三个节点是对原始方法的调用。 通过展开生成的方法,可显示当前进行的操作。MainPage::GetMaxNumberAsyncButton_Click 执行非常少的操作;它管理任务值列表、计算结果的最大值以及显示输出。MainPage+&GetMaxNumberAsyncButton_Click&d__3::MoveNext 显示用于计划和启动 48 个任务所需的活动,这些任务将包装对 GetNumberAsync 的调用。MainPage::&GetNumberAsync&b__b 显示调用 GetNumber 的任务的活动。
此页面有帮助吗?
更多反馈?
1500 个剩余字符
我们非常感谢您的反馈。后台服务器CPU使用率高 有关问题分析方法 - 互联网当前位置:& &&&后台服务器CPU使用率高 有关问题分析方法后台服务器CPU使用率高 有关问题分析方法&&网友分享于:&&浏览:0次后台服务器CPU使用率高 问题分析方法&
一、找出cpu使用率高的进程和线程:
a、将 cpu 占用率高的线程找出来:
ps H -eo user,pid,ppid,tid,time,%cpu,cmd--sort=%cpu
b、对于多线程的服务,通过top命令得到cpu使用率高的进程后,可以使用如下命令查看该进程下各线程cpu使用率
ps&-eLo pid,lwp,pcpu | grep PID
c、直接使用 ps Hh -eopid,tid,pcpu | sort -nk3 |tail 获取对于的进程号和线程号
二、gdb调试cpu使用率高的进程:
对于单线程的程序,比较好查,这里只说一下多线程的调试方法
GDB多线程调试的基本命令
info threads显示当前可调试的所有线程,每个线程会有一个GDB为其分配的ID,后面操作线程的时候会用到这个ID。前面有*的是当前调试的线程。
thread ID 切换当前调试的线程为指定ID的线程。
break thread_test.c:123 thread all&在所有线程中相应的行上设置断点
thread apply ID1 ID2 command 让一个或者多个线程执行GDB命令command。&
thread apply all command&让所有被调试线程执行GDB命令command。
setscheduler-locking off|on|step :
估计是实际使用过多线程调试的人都可以发现,在使用step或者continue命令调试当前被调试线程的时候,其他线程也是同时执行的,怎么只让被调试程序执行呢?通过这个命令就可以实现这个需求。
off 不锁定任何线程,也就是所有线程都执行,这是默认值。
on 只有当前被调试程序会执行。
step 在单步的时候,除了next过一个函数的情况(熟悉情况的人可能知道,这其实是一个设置断点然后continue的行为)以外,只有当前线程会执行。
gdb查看线程信息及切换线程:
info threads&&&& 查看当前进程所有线程
thread 4&&&&&&&&&&& 切换到线程4
backtrace&&&&&&&&&&&&&&&&&& 查看当前函数调用栈
一般情况下多线程的时候,由于是同时运行的,最好设置&set scheduler-locking on
这样的话,只调试当前线程&。
三、查看线程栈
gstack pid
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有博客访问: 136918
博文数量: 47
博客积分: 1431
博客等级: 上尉
技术积分: 558
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: LINUX
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。
top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48
Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 191272k total, 173656k used, 17616k free, 22052k buffers
Swap: 192772k total, 0k used, 192772k free, 123988k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1379 root 16 0 80 S 0.7 1.3 0:11.03 sshd
14704 root 16 0
R 0.7 0.5 0:02.72 top
1 root 16 0
S 0.0 0.3 0:00.90 init
2 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
统计信息区
前五行是系统整体的统计信息。第一行是任务队列信息,同 uptime 命令的执行结果。其内容如下:
01:06:48 当前时间
up 1:22 系统运行时间,格式为时:分
1 user 当前登录用户数
load average: 0.06, 0.60, 0.48 系统负载,即任务队列的平均长度。
三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。
第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下:
Tasks: 29 total 进程总数
1 running 正在运行的进程数
28 sleeping 睡眠的进程数
0 stopped 停止的进程数
0 zombie 僵尸进程数
Cpu(s): 0.3% us 用户空间占用CPU百分比
1.0% sy 内核空间占用CPU百分比
0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比
98.7% id 空闲CPU百分比
0.0% wa 等待输入输出的CPU时间百分比
最后两行为内存信息。内容如下:
Mem: 191272k total 物理内存总量
173656k used 使用的物理内存总量
17616k free 空闲内存总量
22052k buffers 用作内核缓存的内存量
Swap: 192772k total 交换区总量
0k used 使用的交换区总量
192772k free 空闲交换区总量
123988k cached 缓冲的交换区总量。
内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,
该数值即为这些内容已存在于内存中的交换区的大小。
相应的内存再次被换出时可不必再对交换区写入。
进程信息区
统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。
序号 列名 含义
a PID 进程id
b PPID 父进程id
c RUSER Real user name
d UID 进程所有者的用户id
e USER 进程所有者的用户名
f GROUP 进程所有者的组名
g TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
h PR 优先级
i NI nice值。负值表示高优先级,正值表示低优先级
j P 最后使用的CPU,仅在多CPU环境下有意义
k %CPU 上次更新到现在的CPU时间占用百分比
l TIME 进程使用的CPU时间总计,单位秒
m TIME+ 进程使用的CPU时间总计,单位1/100秒
n %MEM 进程使用的物理内存百分比
o VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
p SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
q RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
r CODE 可执行代码占用的物理内存大小,单位kb
s DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
t SHR 共享内存大小,单位kb
u nFLT 页面错误次数
v nDRT 最后一次写入到现在,被修改过的页面数。
w S 进程状态。
D=不可中断的睡眠状态
T=跟踪/停止
Z=僵尸进程
x COMMAND 命令名/命令行
y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
z Flags 任务标志,参考 sched.h
默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通过下面的快捷键来更改显示内容。
更改显示内容
通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定。
按 o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动。最后按回车键确定。
按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的 R 键可以将当前的排序倒转。
1. 工具(命令)名称
2.工具(命令)作用
显示系统当前的进程和其他状况;
top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.
比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间
对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定.
3.环境设置
在Linux下使用。
4.使用方法
4.1使用格式
top [-] [d] [p] [q] [c] [C] [S] [s] [n]
4.2参数说明
d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
p 通过指定监控进程ID来仅仅监控某个进程的状态。
q该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
S 指定累计模式
s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
i 使top不显示任何闲置或者僵死进程。
c 显示整个命令行而不只是显示命令名
  下面介绍在top命令执行过程中可以使用的一些交互命令。从使用角度来看,熟练的掌握这些命令比掌握选项还重要一些。这些命令都是单字母的,如果在命令行选项中使用了s选项,则可能其中一些命令会被屏蔽掉。
  Ctrl+L 擦除并且重写屏幕。
  h或者? 显示帮助画面,给出一些简短的命令总结说明。
  k 终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。
  i 忽略闲置和僵死进程。这是一个开关式命令。
  q 退出程序。
  r 重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。
  S 切换到累计模式。
  s 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。
  f或者F 从当前显示中添加或者删除项目。
  o或者O 改变显示项目的顺序。
  l 切换显示平均负载和启动时间信息。
  m 切换显示内存信息。
  t 切换显示进程和CPU状态信息。
  c 切换显示命令名称和完整命令行。
  M 根据驻留内存大小进行排序。
  P 根据CPU使用百分比大小进行排序。
  T 根据时间/累计时间进行排序。
W 将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。
关于 load & average:
命令输出的最后内容表示在过去的1、5、15分钟内运行队列中的平均进程数量。 &
一般来说只要每个CPU的当前活动进程数不大于3那么系统的性能就是良好的,如果每个CPU的任务数大于5,那么就表示这台机器的性能有严重问题。对
于上面的例子来说,假设系统有两个CPU,那么其每个CPU的当前任务数为:8.13/2=4.065。这表示该系统的性能是可以接受的
阅读(4305) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。

我要回帖

更多关于 cisco查看cpu利用率 的文章

 

随机推荐