您好,登錄后才能下訂單哦!
這篇文章主要介紹linux怎么在批處理模式下運行top命令,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
批處理模式允許你將 top
命令的輸出發送至其他程序或者文件中。
在這個模式中,top
命令將不會接收輸入并且持續運行,直到迭代次數達到你用 -n
選項指定的次數為止。
如果你想解決 Linux 服務器上的任何性能問題,你需要正確的 理解 top 命令的輸出。
默認地,top
命令按照 CPU 的使用率來排序輸出結果,所以當你在批處理模式中運行以下命令時,它會執行同樣的操作并打印前 35 行:
# 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 0 191144 2800 1596 S 0.0 0.1 5:43.63 /usr/lib/systemd/systemd --switched-root --system --deserialize 22 2 root 20 0 0 0 0 S 0.0 0.0 0:00.32 [kthreadd] 3 root 20 0 0 0 0 S 0.0 0.0 0:28.10 [ksoftirqd/0] 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kworker/0:0H] 7 root rt 0 0 0 0 S 0.0 0.0 0:33.96 [migration/0] 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [rcu_bh] 9 root 20 0 0 0 0 S 0.0 0.0 63:05.12 [rcu_sched] 10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [lru-add-drain] 11 root rt 0 0 0 0 S 0.0 0.0 0:08.79 [watchdog/0] 12 root rt 0 0 0 0 S 0.0 0.0 0:08.82 [watchdog/1] 13 root rt 0 0 0 0 S 0.0 0.0 0:44.27 [migration/1] 14 root 20 0 0 0 0 S 0.0 0.0 1:22.45 [ksoftirqd/1] 16 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kworker/1:0H] 18 root 20 0 0 0 0 S 0.0 0.0 0:00.01 [kdevtmpfs] 19 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [netns] 20 root 20 0 0 0 0 S 0.0 0.0 0:01.35 [khungtaskd] 21 root 0 -20 0 0 0 S 0.0 0.0 0:00.02 [writeback] 22 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kintegrityd] 23 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [bioset] 24 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kblockd] 25 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [md] 26 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [edac-poller] 33 root 20 0 0 0 0 S 0.0 0.0 1:19.07 [kswapd0] 34 root 25 5 0 0 0 S 0.0 0.0 0:00.00 [ksmd] 35 root 39 19 0 0 0 S 0.0 0.0 0:12.80 [khugepaged] 36 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [crypto] 44 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kthrotld] 46 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kmpath_rdacd]
在批處理模式中運行以下命令按內存使用率對結果進行排序:
# 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: 146 total, 1 running, 145 sleeping, 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 20 0 1453900 156096 8816 S 0.0 4.0 2:12.98 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid 1841 root 20 0 228980 107036 5360 S 0.0 2.8 0: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 20 0 230208 104608 1816 S 0.0 2.7 0:03.77 spamd child 8139 nobody 20 0 257000 27108 3408 S 0.0 0.7 0:00.04 /usr/sbin/httpd -k start 7961 nobody 20 0 256988 26912 3160 S 0.0 0.7 0:00.05 /usr/sbin/httpd -k start 8190 nobody 20 0 256976 26812 3140 S 0.0 0.7 0:00.05 /usr/sbin/httpd -k start 8353 nobody 20 0 256976 26812 3144 S 0.0 0.7 0:00.04 /usr/sbin/httpd -k start 8629 nobody 20 0 256856 26736 3108 S 0.0 0.7 0:00.02 /usr/sbin/httpd -k start 8636 nobody 20 0 256856 26712 3100 S 0.0 0.7 0:00.03 /usr/sbin/httpd -k start 8611 nobody 20 0 256844 25764 2228 S 0.0 0.7 0:00.01 /usr/sbin/httpd -k start 8451 nobody 20 0 256844 25760 2220 S 0.0 0.7 0:00.04 /usr/sbin/httpd -k start 8610 nobody 20 0 256844 25748 2224 S 0.0 0.7 0:00.01 /usr/sbin/httpd -k start 8632 nobody 20 0 256844 25744 2216 S 0.0 0.7 0:00.03 /usr/sbin/httpd -k start
上面命令的詳細信息:
-b
:批處理模式選項
-c
:打印運行中的進程的絕對路徑
-o
:指定進行排序的字段
head
:輸出文件的第一部分
-n
:打印前 n 行
如果你想要按照指定用戶進程對結果進行排序請運行以下命令:
# 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 20 0 1453900 156888 8816 S 0.0 4.0 2:16.42 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
在批處理模式中使用以下 top
命令按照處理時間對結果進行排序。這展示了任務從啟動以來已使用的總 CPU 時間。
但是如果你想要檢查一個進程在 Linux 上運行了多長時間請看接下來的文章:
檢查 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: 148 total, 1 running, 146 sleeping, 0 stopped, 1 zombie%Cpu(s): 0.0 us, 3.1 sy, 0.0 ni, 96.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.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 20 0 0 0 0 S 0.0 0.0 63:05.70 [rcu_sched] 272 root 20 0 0 0 0 S 0.0 0.0 16:12.13 [xfsaild/vda1] 3882 root 20 0 229832 6212 1220 S 0.0 0.2 9:00.84 /usr/sbin/httpd -k start 1 root 20 0 191144 2800 1596 S 0.0 0.1 5:43.75 /usr/lib/systemd/systemd --switched-root --system --deserialize 22 3761 root 20 0 68784 9820 2048 S 0.0 0.3 5:09.67 tailwatchd 3529 root 20 0 404380 3472 2604 S 0.0 0.1 3:24.98 /usr/sbin/rsyslogd -n 3520 root 20 0 574208 572 164 S 0.0 0.0 3:07.74 /usr/bin/python2 -Es /usr/sbin/tuned -l -P 444 dbus 20 0 58444 1144 612 S 0.0 0.0 2:23.90 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 18105 mysql 20 0 1453900 157152 8816 S 0.0 4.0 2:17.29 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid 249 root 0 -20 0 0 0 S 0.0 0.0 1:28.83 [kworker/0:1H] 14 root 20 0 0 0 0 S 0.0 0.0 1:22.46 [ksoftirqd/1] 33 root 20 0 0 0 0 S 0.0 0.0 1:19.07 [kswapd0] 342 root 20 0 39472 2940 2752 S 0.0 0.1 1:18.17 /usr/lib/systemd/systemd-journald
如果出于解決問題的目的,你想要和別人分享 top
命令的輸出,請使用以下命令重定向輸出到文件中:
# 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 20 0 406132 62184 43448 R 94.1 1.6 0:00.34 /opt/cpanel/ea-php56/root/usr/bin/php-cgi 9689 nobody 20 0 256588 24428 1184 S 5.9 0.6 0:00.01 /usr/sbin/httpd -k start 1 root 20 0 191144 2800 1596 S 0.0 0.1 5:43.79 /usr/lib/systemd/systemd --switched-root --system --deserialize 22 2 root 20 0 0 0 0 S 0.0 0.0 0:00.32 [kthreadd] 3 root 20 0 0 0 0 S 0.0 0.0 0:28.11 [ksoftirqd/0] 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kworker/0:0H] 7 root rt 0 0 0 0 S 0.0 0.0 0:33.96 [migration/0] 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [rcu_bh] 9 root 20 0 0 0 0 R 0.0 0.0 63:05.82 [rcu_sched] 10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [lru-add-drain] 11 root rt 0 0 0 0 S 0.0 0.0 0:08.79 [watchdog/0] 12 root rt 0 0 0 0 S 0.0 0.0 0:08.82 [watchdog/1] 13 root rt 0 0 0 0 S 0.0 0.0 0:44.28 [migration/1] 14 root 20 0 0 0 0 S 0.0 0.0 1:22.46 [ksoftirqd/1] 16 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kworker/1:0H] 18 root 20 0 0 0 0 S 0.0 0.0 0:00.01 [kdevtmpfs] 19 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [netns] 20 root 20 0 0 0 0 S 0.0 0.0 0:01.35 [khungtaskd] 21 root 0 -20 0 0 0 S 0.0 0.0 0:00.02 [writeback] 22 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kintegrityd] 23 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [bioset] 24 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kblockd] 25 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [md] 26 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [edac-poller] 33 root 20 0 0 0 0 S 0.0 0.0 1:19.07 [kswapd0] 34 root 25 5 0 0 0 S 0.0 0.0 0:00.00 [ksmd] 35 root 39 19 0 0 0 S 0.0 0.0 0:12.80 [khugepaged] 36 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [crypto]
在 top
命令的最新版本中, 按下 f
鍵進入字段管理界面。
要使用新字段進行排序, 請使用 up
/down
箭頭選擇正確的選項,然后再按下 s
鍵進行排序。最后按 q
鍵退出此窗口。
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
對 top
命令的舊版本,請按 shift+f
或 shift+o
鍵進入字段管理界面進行排序。
要使用新字段進行排序,請選擇相應的排序字段字母, 然后按下回車鍵排序。
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 = 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 '<' and '>' 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)
以上是“linux怎么在批處理模式下運行top命令”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。