top命令是每个人都在使用的用于监控Linux系统性能的最好的命令。你可能已经知道top命令的绝大部分操作,除了很少的几个操作,如果我没错的话,批处理模式就是其中之一。
大部分的脚本编写者和开发人员都知道这个,因为这个操作主要就是用来编写脚本。
如果你不了解这个,不用担心,我们将在这里介绍它。
什么是top命令的批处理模式
批处理模式允许你将top命令的输出发送至其他程序或者文件中。
在这个模式中,top命令将不会接收输入并且持续运行,直到迭代次数达到你用-n选项指定的次数为止。
如果你想解决Linux服务器上的任何性能问题,你需要正确的理解top命令的输出。
1)如何在批处理模式下运行top命令
默认地,top命令按照CPU的使用率来排序输出结果,所以当你在批处理模式中运行以下命令时,它会执行同样的操作并打印前35行:
#top-bc
head-35top-06:41:14up8days,20:24,1user,loadaverage:0.87,0.77,0.81Tasks:total,1running,sleeping,0stopped,2zombie%Cpu(s):0.0us,3.2sy,0.0ni,96.8id,0.0wa,0.0hi,0.0si,0.0stKiBMem:total,free,used,8buff/cacheKiBSwap:total,free,used.availMemPIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND1rootS0.00.15:43.63/usr/lib/systemd/systemd--switched-root--system--deserializerootS0.00.00:00.32[kthreadd]3rootS0.00.00:28.10[ksoftirqd/0]5root0-S0.00.00:00.00[kworker/0:0H]7rootrtS0.00.00:33.96[migration/0]8rootS0.00.00:00.00[rcu_bh]9rootS0.00.:05.12[rcu_sched]10root0-S0.00.00:00.00[lru-add-drain]11rootrtS0.00.00:08.79[watchdog/0]12rootrtS0.00.00:08.82[watchdog/1]13rootrtS0.00.00:44.27[migration/1]14rootS0.00.01:22.45[ksoftirqd/1]16root0-S0.00.00:00.00[kworker/1:0H]18rootS0.00.00:00.01[kdevtmpfs]19root0-S0.00.00:00.00[netns]20rootS0.00.00:01.35[khungtaskd]21root0-S0.00.00:00.02[writeback]22root0-S0.00.00:00.00[kintegrityd]23root0-S0.00.00:00.00[bioset]24root0-S0.00.00:00.00[kblockd]25root0-S0.00.00:00.00[md]26root0-S0.00.00:00.00[edac-poller]33rootS0.00.01:19.07[kswapd0]34rootS0.00.00:00.00[ksmd]35rootS0.00.00:12.80[khugepaged]36root0-S0.00.00:00.00[crypto]44root0-S0.00.00:00.00[kthrotld]46root0-S0.00.00:00.00[kmpath_rdacd]
2)如何在批处理模式下运行top命令并按内存使用率排序结果
在批处理模式中运行以下命令按内存使用率对结果进行排序:
#top-bc-o+%MEM
head-n20top-06:42:00up8days,20:25,1user,loadaverage:0.66,0.74,0.80Tasks:total,1running,sleeping,0stopped,0zombie%Cpu(s):0.0us,0.0sy,0.0ni,.0id,0.0wa,0.0hi,0.0si,0.0stKiBMem:total,free,used,9720buff/cacheKiBSwap:total,free,used.availMemPIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMANDmysql200390015S0.04.02:12.98/usr/sbin/mysqld--daemonize--pid-file=/var/run/mysqld/mysqld.pidrootS0.02.80:05.56/usr/local/cpanel/3rdparty/perl//bin/perl-T-w/usr/local/cpanel/3rdparty/bin/spamd--max-children=3--max-spare=1--allowed-ips=.0.0.+rootS0.02.70:03.77spamdchild8nobodyS0.00.70:00.04/usr/sbin/