Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

How does linux run top commands in batch mode

2025-01-16 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Servers >

Share

Shulou(Shulou.com)06/01 Report--

This article mainly introduces how linux runs the top command in batch mode. It is very detailed and has certain reference value. Friends who are interested must finish reading it.

What is the batch mode of top commands

Batch mode allows you to send the output of top commands to other programs or files.

In this mode, the top command will not receive input and will continue to run until the number of iterations you specify with the-n option.

If you want to solve any performance problems on the Linux server, you need to correctly understand the output of the top command.

1) how to run the top command in batch mode

By default, the top command sorts the output according to CPU usage, so when you run the following command in batch mode, it does the same and prints the first 35 lines:

# top-bc | head-35 top-06:41:14 up 8 days, 20:24, 1 user, load average: 0.87,0.77, 0.81Tasks: 139 total, 1 running, 136 sleeping, 0 stopped, 2 zombie%Cpu (s): 0.0 us, 3.2 sy, 0.0 ni, 96.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 stKiB Mem: 3880940 total, 1595932 free, 886736 used 1398272 buff/cacheKiB Swap: 1048572 total, 514640 free, 533932 used. 2648472 avail Mem PID USER PR NI VIRT RES SHR S% CPU% MEM TIME+ COMMAND 1 root 20 191144 2800 1596 S 0.0 0.15 usr/lib/systemd/systemd / usr/lib/systemd/systemd-- switched-root-- system-- deserialize 22 2 root 20 00 S 0.000.32 [kthreadd] 3 root 200 0 00 S 0.0 0.00: 28.10 [ksoftirqd/0] 5 root 0-20 000 S 0.0 0.00: 00.00 [kworker/0:0H] 7 root rt 00 00 S 0.0 0.00: 33.96 [migration/0] 8 root 20 00 00 S 0.0 0.00: 00.00 [rcu_bh] 9 root 20 00 00 S 0.0 63 rcu_sched 05.12 [rcu_sched] 10 root 0-20 000 S 0.0 0.00: 00.00 [lru-add-drain] 11 root rt 00 0 0 S 0.0 0.0 0:08.79 [watchdog/0] 12 root rt 0 0 0 S 0.0 0.0 0:08.82 [watchdog/1] 13 root rt 0 0 0 S 0.0 0.0 0:44.27 [migration/1] 14 root 20 0 0 0 S 0.0 0.01: 22.45 [ksoftirqd/1] 16 root 0-20 000 S 0.0 0.00: 00.00 [kworker/1:0H] 18 root 20 00 00 S 0.0 0.00: 00.01 [kdevtmpfs] 19 root 0-20 000 S 0.0 0khungtaskd 00.00 [netns] 20 root 20 00 00 S 0.0 0.00: 01.35 [khungtaskd] 21 root 0-20 000 S 0.0 0.00: 00.02 [writeback] 22 root 0-20 000 S 0.0 0.00: 00.00 [kintegrityd] 23 root 0-20 000 S 0.0 0.00: 00.00 [bioset] 24 root 0-20 000 S 0.0 0.00: 00.00 [kblockd] 25 root 0-20 000 S 0.0 0.00: 00.00 [md] 26 root 0-20 00 0 S 0.0 0.00: 00.00 [edac-poller] 33 root 20 00 00 S 0.0 0.0 1:19.07 [kswapd0] 34 root 25 5 00 0 S 0.0 0.00: 00.00 [ksmd] 35 root 39 19 00 0 S 0.0 0.00: 12.80 [khugepaged] 36 root 0-20 000 S 0.0 0.00: 00.00 [crypto] 44 root 0-20 000 S 0.0 0.00: 00.00 [kthrotld] 46 root 0-20 000 S 0.0 0.00: 00.00 [kmpath_rdacd] 2) how to run the top command in batch mode and sort the results by memory usage

Run the following command in batch mode to sort the results by memory usage:

# top-bc-o +% MEM | head-n 20 top-06:42:00 up 8 days, 20:25, 1 user, load average: 0.66,0.74, 0.80Tasks: 146total, 1 running, 145sleeping, 0 stopped, 0 zombie%Cpu (s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 stKiB Mem: 3880940 total, 1422044 free, 1059176 used 1399720 buff/cacheKiB Swap: 1048572 total, 514640 free, 533932 used. 2475984 avail Mem PID USER PR NI VIRT RES SHR S% CPU% MEM TIME+ COMMAND 18105 mysql 200 1453900 156096 8816 S 0.0 4.02 usr/sbin/mysqld 12.98 / usr/sbin/mysqld-daemonize-pid-file=/var/run/mysqld/mysqld.pid 1841 root 20 0228980 107036 5360 S 0.0 2.80 05.56 / usr/local/cpanel/3rdparty/perl/528/bin/perl-T-w / Usr/local/cpanel/3rdparty/bin/spamd-- max-children=3-- max-spare=1-- allowed-ips=127.0.0.+ 4301 root 200 230208 104608 1816 S 0.0 2.7 0 spamd child 8139 nobody 20 0 257000 27108 3408 S 0.0 0.7 V 00.04 / usr/sbin/httpd-k start 7961 nobody 20 0 256988 26912 3160 S 0.0 0.7 0 usr/sbin / httpd-k start 8190 nobody 20 256976 26812 3140 S 0.0 0.7 start 00.05 / usr/sbin/httpd-k start 8353 nobody 20 0 256976 26812 3144 S 0.0 0.7 nobody 00.04 / usr/sbin/httpd-k start 8629 nobody 20 0256856 26736 3108 S 0.00.02 / usr/sbin/httpd-k start 8636 nobody 20 0 256856 26712 3100 S 0.0 .7 0nobody 00.03 / usr/sbin/httpd-k start 8611 nobody 200 256844 25764 2228 S 0.0 0.7 start 8451 nobody 20 0 256844 25760 2220 S 0.0 0.7 V 00.04 / usr/sbin/httpd-k start 8610 nobody 20 0 256844 25748 2224 S 0.0 0.7 nobody 20 / usr/sbin/httpd-k start 0 256844 25744 2216 S 0.0 0.7 0purl 00.03 / usr/sbin/httpd-k start

Details of the above command:

-b: batch mode option

-c: print the absolute path of the running process

-o: specify the field to sort

Head: the first part of the output file

-n: the first n lines of print

3) how to run the top command in batch mode and sort the results by the specified user process

If you want to sort the results according to the specified user process, run the following command:

# top-bc-u mysql | head-n 10 top-06:44:58 up 8 days, 20:27, 1 user, load average: 0.99,0.87, 0.84Tasks: 140 total, 1 running, 137 sleeping, 0 stopped, 2 zombie%Cpu (s): 13.3 us, 3.3 sy, 0.0 ni, 83.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 stKiB Mem: 3880940 total, 1589832 free, 885648 used 1405460 buff/cacheKiB Swap: 1048572 total, 514640 free, 533932 used. 2649412 avail Mem PID USER PR NI VIRT RES SHR S% CPU% MEM TIME+ COMMAND 18105 mysql 200 1453900 156888 8816 S 0.04.02mysql / usr/sbin/mysqld-- daemonize-- pid-file=/var/run/mysqld/mysqld.pid4) how to run top commands in batch mode and sort by processing time

Use the following top command in batch mode to sort the results by processing time. This shows the total CPU time that the task has used since it was started.

But if you want to check how long a process has been running on Linux, see the following article:

Five methods to check the running time of processes in Linux

# top-bc-o TIME+ | head-n 20 top-06:45:56 up 8 days, 20:28, 1 user, load average: 0.56,0.77, 0.81Tasks: 148total, 1 running, 146sleeping, 0 stopped, 1 zombie%Cpu (s): 0 us, 3 1 sy, 0 ni, 96 9 id, 0 wa, 0 hi, 0 si, 0 stKiB Mem: 3880940 total, 1378664 free, 1094876 used 1407400 buff/cacheKiB Swap: 1048572 total, 514640 free, 533932 used. 2440332 avail Mem PID USER PR NI VIRT RES SHR S% CPU% MEM TIME+ COMMAND 9 root 2000 0 229832 S 0.0 63 rcu_sched 05.70 [rcu_sched] 272 root 2000 0 0 0 S 0.0 16 rcu_sched 12.13 [xfsaild/vda1] 3882 root 20 0 229832 6212 1220 S 0.0 0.2 9RV 00.84 / usr/sbin/httpd-k start 1 root 200 191144 1596 S 0.0 0.15 root 43.75 / usr/lib/systemd/systemd-- switched-root-- system-- deserialize 22 3761 root 20 0 68784 9820 2048 S 0.0 0.3 5 Vol 09.67 tailwatchd 3529 root 20 0 404380 3472 2604 S 0.0 0.1 3 Vol 24.98 / usr/sbin / rsyslogd-n 3520 root 20 0 574208 572 164 S 0.0 3 systemd-activation 07.74 / usr/bin/python2-Es / usr/sbin/tuned-l-P 444 dbus 200 58444 1144 612 S 0.02 usr/bin/python2 23.90 / usr/bin/dbus-daemon-- system-- address=systemd:-- nofork-- nopidfile-- systemd-activation 18105 mysql 200 1453900 157152 8816 S 0.04 .02kworker/0:1H 17.29 / usr/sbin/mysqld-- daemonize-- pid-file=/var/run/mysqld/mysqld.pid 249 root 0-2000 S 0.01V 28.83 [kworker/0:1H] 14 root 2000 S 0.01VR 22.46 [ksoftirqd/1] 33 root 20 0 00 S 0.0 0.01 usr/lib/systemd/systemd-journald5 19.07 [kswapd0] 342 root 200 39472 2940 2752 S 0.0 0.1 VR 18.17 / 000) how to run the top command in batch mode and save the result to a file

If you want to share the output of the top command with others for problem-solving purposes, redirect the output to a file using the following command:

# top- bc | head-35 > top-report.txt # cat top-report.txt top- 06:47:11 up 8 days, 20:30, 1 user, load average: 0.67,0.77, 0.81Tasks: 133 total, 4 running, 129 sleeping, 0 stopped, 0 zombie%Cpu (s): 59.4 us, 12.5 sy, 0.0 ni, 28.1 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 stKiB Mem: 3880940 total 1596268 free, 843284 used, 1441388 buff/cacheKiB Swap: 1048572 total, 514640 free, 533932 used. 2659084 avail Mem PID USER PR NI VIRT RES SHR S% CPU% MEM TIME+ COMMAND 9686 daygeekc 200 406132 62184 43448 R 94.1 1.6 0 nobody 00.34 / opt/cpanel/ea-php56/root/usr/bin/php-cgi 9689 nobody 20 0 256588 24428 1184 S 5.9 0.6 V 00.01 / usr/sbin/httpd-k start 1 root 20 191144 2800 1596 S 0.0 0.1 5usr/lib/systemd/systemd 43.79 / usr/lib/systemd/systemd-- switched-root-- system-- deserialize 22 2 root 20 00 S 0.0 0V 00.32 [kthreadd] 3 root 20 00 S 0.000 V 28.11 [ksoftirqd/0] 5 root 0-20 000 S 0.0 0.00: 00.00 [kworker/0:0H] 7 root rt 00 00 S 0.0 0.00: 33.96 [migration/0] 8 root 20 00 00 S 0.0 0.00: 00.00 [rcu_bh] 9 root 20 00 00 R 0.0 0.0 63 lru-add-drain 05.82 [rcu_sched] 10 root 0-20 000 S 0.0 0.00: 00.00 [lru-add-drain] 11 root rt 00 00 S 0.0 0.00: 08.79 [watchdog/0] 12 root rt 00 00 S 0.0 0RU 08.82 [watchdog/1] 13 root rt 00 00 S 0.0 0.00: 44.28 [migration/1] 14 root 20 00 00 S 0.0 1V 22.46 [ksoftirqd/1] 16 root 0-20 000 S 0.0 0.00: 00.00 [kworker/1:0H] 18 root 20 00 00 S 0.0 0.00: 00.01 [kdevtmpfs] 19 root 0-20 000 S 0.0 0.00: 00.00 [netns] 20 root 20 00 S 0.0 0.00: 01.35 [khungtaskd] 21 root 0-20 000 S 0.0 0.00: 00.02 [writeback] 22 root 0-20 000 S 0.0 0.00: 00.00 [kintegrityd] 23 root 0-20 000 S 0.0 0.00: 00.00 [bioset] 24 root 0-20 00 S 0.0 0.00: 00.00 [kblockd] 25 root 0-20 000 S 0.0 0.00: 00.00 [md] 26 root 0-20 000 S 0.0 0.00: 00.00 [edac-poller] 33 root 20 00 S 0.0 0.0 1khugepaged 19.07 [kswapd0] 34 root 25 5000 S 0.0 0.00: 00.00 [ksmd] 35 root 39 19 00 S 0.0 0.00: 12.80 [khugepaged] 36 root 0-20 000 S 0.0 0.00: 00. 00 [crypto] how to sort the results by a specified field

In the latest version of the top command, press f to enter the field management interface.

To sort using the new field, use the up/down arrow to select the correct option, and then press the s key to sort. Finally, press Q to exit the window.

Fields Management for window 1:Def, whose current sort field is% CPU Navigate with Up/Dn, Right selects for move then or Left commits, 'd'or toggles display, 's'sets sort. Use 'q' or to end! PID = Process Id nsUTS = UTS namespace Inode USER = Effective User Name LXC = LXC container name PR = Priority RSan = RES Anonymous (KiB) NI = Nice Value RSfd = RES File-based (KiB) VIRT = Virtual Image (KiB) RSlk = RES Locked (KiB) RES = Resident Size (KiB) RSsh = RES Shared (KiB) SHR = Shared Memory (KiB) CGNAME = Control Group name S = Process Status NU = Last Used NUMA node% CPU = CPU Usage% MEM = Memory Usage (RES) TIME+ = CPU Time Hundredths COMMAND = Command Name/Line PPID = Parent Process pid UID = Effective User Id RUID = Real User Id RUSER = Real User Name SUID = Saved User Id SUSER = Saved User Name GID = Group Id GROUP = Group Name PGRP = Process Group Id TTY = Controlling Tty TPGID = Tty Process Grp Id SID = Session Id nTH = Number of Threads P = Last Used Cpu (SMP) TIME = CPU Time SWAP = Swapped Size (KiB) CODE = Code Size (KiB) DATA = Data+Stack (KiB) nMaj = Major Page Faults nMin = Minor Page Faults nDRT = Dirty Pages Count WCHAN = Sleeping in Function Flags = Task Flags CGROUPS = Control Groups SUPGIDS = Supp Groups IDs SUPGRPS = Supp Groups Names TGID = Thread Group Id OOMa = OOMEM Adjustment OOMs = OOMEM Score current ENVIRON = Environment vars vMj = Major Faults delta vMn = Minor Faults delta USED = Res+Swap Size (KiB) nsIPC = IPC namespace Inode nsMNT = MNT namespace Inode nsNET = NET namespace Inode nsPID = PID namespace Inode nsUSER = USER namespace Inode

For older versions of the top command, press shift+f or shift+o to enter the field management interface to sort.

To sort using the new field, select the appropriate sort field letter and press enter to sort.

Current Sort Field: N for window 1:Def Select sort field via field letter Type any other key to return a: PID = Process Id b: PPID = Parent Process Pid c: RUSER = Real user name d: UID = User Id e = User Name f: GROUP = Group Name g: TTY = Controlling Tty h: PR = Priority I: NI = Nice value j: P = Last used cpu (SMP) k:% CPU = CPU usage l: TIME = CPU Time m: TIME+ = CPU Time Hundredths* N:% MEM = Memory usage (RES) o: VIRT = Virtual Image (kb) p: SWAP = Swapped size (kb) Q: RES = Resident size (kb) r: CODE = Code size (kb) s: DATA = Data+Stack size (kb) t: SHR = Shared Mem size (kb) u: nFLT = Page Fault count v: nDRT = Dirty Pages count w: s = Process Status x: COMMAND = Command name/line y: WCHAN = Sleeping in Function z: Flags = Task Flags Note1: If a selected sort field can't be shown due to screen width or your field order The''keys will be unavailable until a field within viewable range is chosen. Note2: Field sorting uses internal values, not those in column display. Thus, the TTY & WCHAN fields will violate strict ASCII collating sequence. (shame on you if WCHAN is chosen) the above is all the contents of the article "how linux runs top commands in batch mode". Thank you for reading! Hope to share the content to help you, more related knowledge, welcome to follow the industry information channel!

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Servers

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report