دستورات کاربردی TOP برای مانیتور پروسس های سرور

نوشته شده توسط: محمد

یکی از پرکاربردترین دستورات مانیتورینگ در سرورها می باشد که اغلب مدیران سرورها بی شک ازین دستور استفاده کرده اند.
این دستور تمام proccess های در حال اجرا در سرور را نمایش می دهد و مشخص می کند چه برنامه هایی هم اکنون از ram و cpu سرور استفاده میکنند.
این دستور بعد از اجرا شدن مقادیر زیر را نمایش می دهد:
CPU usage, Memory usage, Swap Memory, Cache Size, Buffer Size, Process PID, User,loadserver,uptime server
شما با استفاده ازین دستور می توانید پروسس هایی که باعث بالا رفتن لود سرور شده اند شناسایی کنید و kill کنید.

$ top [options]

اگر دستور top رو به تنهایی بزنین وارد محیطی می‌شین که شبیه به زیر هست که هر سه ثانیه اطلاعتش بروز می‌شود و برای خروج از اون دکمه q رو بزنین یا کلید ترکیبی ctrl+c.

top - 18:38:39 up  5:37,  1 user,  load average: 0.44, 0.41, 0.39
Tasks: 225 total,   2 running, 222 sleeping,   0 stopped,   1 zombie
Cpu(s):  2.4%us,  2.5%sy,  0.0%ni, 94.8%id,  0.2%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   4030112k total,  3518960k used,   511152k free,   467348k buffers
Swap:  2049044k total,    84864k used,  1964180k free,  1809232k cached
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 ۱۲۵۹ root      20   0  169m  42m  16m S   17  1.1  25:34.08 Xorg
 ۲۳۶۸ aliali    20   0 1368m 200m  45m S   12  5.1  20:06.31 compiz
 ۸۸۶۳ aliali    20   0 1071m 230m  42m S    5  5.9  19:37.45 firefox
 ۲۹۱۷ aliali    20   0  528m  30m  10m S    1  0.8   3:54.58 unity-panel-ser
 ۵۳۵۴ aliali    20   0  672m  37m  15m S    1  1.0   0:17.93 /usr/bin/termin
 ۲۳۳۷ aliali    20   0 30604 5836  620 S    1  0.1   1:17.44 dbus-daemon
 ۲۸۷۷ aliali    20   0  412m  11m 7336 S    1  0.3   0:18.94 bamfdaemon
 ۲۹۱۹ aliali    20   0  554m  13m 3472 S    1  0.4   1:51.43 hud-service
۳۱۸۵۱ aliali    20   0 3353m 229m 195m S    1  5.8   1:06.09 vmware-vmx
  ۶۲۸ root      20   0     0    0    0 S    0  0.0   0:00.02 kworker/2:0
  ۷۷۱ aliali    20   0 17460 1384  956 R    0  0.0   0:01.68 top
 ۱۴۹۳ root      20   0  160m 4716 2180 S    0  0.1   0:21.99 wicd
 ۲۴۰۶ aliali    20   0  809m  23m  11m S    0  0.6   0:24.93 python
 ۲۴۴۱ aliali    20   0  409m  11m 7652 S    0  0.3   1:08.36 indicator-multi
 ۲۷۴۵ aliali    20   0  355m  13m 9440 S    0  0.3   0:01.76 notify-osd
 ۲۹۳۵ aliali    20   0  412m 5300 3912 S    0  0.1   0:31.37 indicator-appli
۲۹۱۹۹ aliali    20   0  764m  37m  19m S    0  1.0   0:02.50 pidgin

در خروجی بالا:

خط اول به ترتیب از سمت چپ به راست: ساعت، مدت زمانی که سیستم روشن بوده، تعداد کاربرانی که در سیستم هستند  و لود سیستم که از چپ به راست برای ۱، ۵ و ۱۵ دقیقه گذشته محاسبه می شود.
خط دوم در مورد وظایف سیستم هست که در خروجی بالا  ۲۲۳ تا وظیفه وجود دارد (یعنی ۲۲۳ تا pid وجود داره) که در بین همه‌ی آن‌ها دوتاشون در حال کار کردن و بقیه در حالت خواب (sleep یا idle) هستن و هیچ پروسسی stop نشده و یک پروسس zombie داریم. توضیح پروسس zombie و stop خارج بحث این‌جاست.
خط سوم در مورد cpu و مصارف مربوط به اون هست.
خط چهارم و پنجم در مورد رم وswap هست.
نکته: مقدار مصرف رم در دستور top با احتساب disk caching نشون داده می‌شود. برای اطلاعات بیشتر به دستور free مراجعه کنین.
آپشن‌ها
دستور top دو گروه آپشن دارد. گروه اول که با خود دستور top استفاده می‌شوند و گروه دوم که در محیط برنامه اجرا می‌شوند.
گروه اول آپشن‌ها
b-: دستور top رو در حالت Batch mode اجرا می‌کند که برای ذخیره خروجی دستور top در داخل یک فایل متنی مناسب است. تفاوتش با حالت عادی رو با تست کردن خودتون متوجه می‌شین.
خروجی زیر کامل نیست چون حجمش زیاد بود قسمتیش رو گذاشتم:

aliabry@lp:~$ top -b
top - 14:33:06 up 2 days,  4:36,  2 users,  load average: 0.10, 0.36, 0.45
Tasks: 238 total,   1 running, 236 sleeping,   0 stopped,   1 zombie
Cpu(s):  3.4%us,  1.7%sy,  0.1%ni, 94.3%id,  0.5%wa,  0.0%hi,  0.1%si,  0.0%st
Mem:   4030112k total,  2651236k used,  1378876k free,   237064k buffers
Swap:  2049044k total,   286676k used,  1762368k free,   917400k cached
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 ۱۲۳۶ root      20   0  224m  77m 7796 S    4  2.0 141:54.94 Xorg
 ۲۱۷۰ aliali    20   0 1525m 197m  29m S    4  5.0 116:15.82 compiz
۲۷۴۹۴ root      20   0     0    0    0 S    2  0.0   0:00.34 kworker/2:0
۲۷۶۷۸ aliabry   20   0 17468 1384  944 R    2  0.0   0:00.02 top
    ۱ root      20   0 24588 2252 1224 S    0  0.1   0:02.24 init
    ۲ root      20   0     0    0    0 S    0  0.0   0:00.05 kthreadd
    ۳ root      20   0     0    0    0 S    0  0.0   0:04.14 ksoftirqd/0

d-: برای تعیین مدت زمان بین هر به‌روزآوری. در زیر هر یک ثانیه به‌روز می‌شود:

aliabry@lp:~$ top -d 1

n-: برای تعیین تعداد دفعات به‌روزآوری که بعد اتمام دفعات دستور top بسته می‌شود. در دستور زیر بعد از پنج بار به‌روزآوری در بازه‌های یک ثانیه دستور top بسته می‌شود.

aliabry@lp:~$ top -d 1 -n 5

s-: برای اجرای دستور top در حالت secure استفاده می‌شود. بعضی امکانات مانند kill کردن یک پروسس در این حالت کار نمی‌کنند.
u- USERNAME: برای تعیین نام کاربری است که دستور top فقط پروسس‌های مربوط به اون کاربر رو نشون میده.
مثلا در زیر کاربر aliabry فقط دو پروسس دارد یکی خود دستور top و یکی پوسته bash:

aliabry@lp:~$ top -n2 -b -u aliabry
top - 11:25:09 up 2 days,  1:28,  2 users,  load average: 0.27, 0.45, 0.56
Tasks: 241 total,   1 running, 238 sleeping,   0 stopped,   2 zombie
Cpu(s):  3.2%us,  1.7%sy,  0.1%ni, 94.5%id,  0.5%wa,  0.0%hi,  0.1%si,  0.0%st
Mem:   4030112k total,  2257196k used,  1772916k free,   208016k buffers
Swap:  2049044k total,   294300k used,  1754744k free,   720236k cached
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
۲۲۴۱۱ aliabry   20   0 17468 1376  932 R    6  0.0   0:00.03 top
۲۲۰۷۷ aliabry   20   0 27112 8392 1716 S    0  0.2   0:00.84 bash
top - 11:25:12 up 2 days,  1:28,  2 users,  load average: 0.25, 0.45, 0.55
Tasks: 241 total,   2 running, 237 sleeping,   0 stopped,   2 zombie
Cpu(s):  3.0%us,  1.3%sy,  0.0%ni, 95.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   4030112k total,  2257064k used,  1773048k free,   208016k buffers
Swap:  2049044k total,   294300k used,  1754744k free,   720236k cached
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
۲۲۴۱۱ aliabry   20   0 17476 1392  948 R    0  0.0   0:00.04 top
۲۲۰۷۷ aliabry   20   0 27112 8392 1716 S    0  0.2   0:00.84 bash

p-: برای تعیین pid هستش.

aliabry@lp:~$ top  -b -p 20566 -p 20034
top - 11:32:15 up 2 days,  1:35,  2 users,  load average: 0.19, 0.28, 0.44
Tasks:   2 total,   0 running,   2 sleeping,   0 stopped,   0 zombie
Cpu(s):  3.2%us,  1.7%sy,  0.1%ni, 94.5%id,  0.5%wa,  0.0%hi,  0.1%si,  0.0%st
Mem:   4030112k total,  2267732k used,  1762380k free,   208648k buffers
Swap:  2049044k total,   293968k used,  1755076k free,   721200k cached
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
۲۰۰۳۴ aliali    20   0 1076m 230m  42m S   18  5.9  13:21.73 firefox
۲۰۵۶۶ aliali    20   0  763m  38m  20m S    0  1.0   0:01.92 pidgin

i-: پروسس‌های idle و zombie رو نشون نمی‌ده.
گروه دوم آپشن‌ها
گروه دوم آپشن‌هایی هستن که در خود محیط برنامه اجرا میشن و برای اجراشون فقط کافیست دکمه مربوط به اون آپشن رو در ترمینال بفشارین.
k: برای kill کردن یک پروسس مورد استفاده قرار می‌گیره که به صورت پیش‌فرض SIGTERM رو به اون پروسس می‌فرسته.
اول دکمه k  رو بزنین تا خطی مثل PID to kill: 23255ظاهر بشه بعد جلوش pid مورد نظرتون رو بنویسین بعد از شما شماره سیگنالی می خواین بهش بفرستین رو می‌پرسه:

Kill PID 1 with signal [15]:

که پیش فرض ۱۵ یا SIGTERM هست (برای اطلاعات بیشتر در مورد سیگنال‌ها به دستور kill مراجعه کنین).
نکته: برای انجام این‌کار باید دسترسی کافی داشته باشین.
s: برای تغییر مدت زمان بین هر آپدیت.
نکته: با فشردن کلید space نیز محتویات به‌روز می‌شوند.

Change delay from 3.0 to: 1

n: برای تعیین تعداد پروسسی که در جدول نشون بده . در زیر ۵ پروسس نشون میده:

Maximum tasks = 0, change to (0 is unlimited): 5

r: برایه renice کردن هست. انجام این‌کار نیاز به دسترسی کافی دارد.
اول شماره pid رو ازتون می‌گیره:

PID to renice: 23355

و سپس شماره اولویتی که می‌خاین بهش تعلق بگیره:

Renice PID 23355 to value:1

نکته: عدد اولویت یک pid در ستون NI ظاهر می‌شود.
u: مثل آپشن u-در آپشن‌های گروه اول برای تعیین نام کاربری هست. به غیر از نام کاربری UID هم می‌تونین بدین.

Which user (blank for all): ali.abry

z: برای تغییر رنگ هستش. خودتون یک بار بزنین تفاوت رو می‌بینین.
l: خط اول هیدر که مربوط به uptime و load average هست محو میشه.
t: خط دوم و سوم که مربوط به task و cpu هست رو محو می‌کنه.
m: خط چهارم و پنجم که مربوط به mem و swap هست رو محو می‌کنه.
۱: جزئیات مصرف cpu رو به ازای هر هسته cpu نشون میده.

top - 12:30:10 up 2 days,  2:33,  2 users,  load average: 0.26, 0.49, 0.49
Tasks: 245 total,   1 running, 241 sleeping,   0 stopped,   3 zombie
Cpu0  :  6.1%us,  1.4%sy,  0.0%ni, 92.5%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu1  : 15.6%us,  2.0%sy,  0.0%ni, 82.4%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu2  :  4.7%us,  2.0%sy,  0.0%ni, 93.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu3  :  3.3%us,  2.0%sy,  0.0%ni, 94.6%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu4  :  1.0%us,  2.0%sy,  0.0%ni, 97.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu5  :  0.7%us,  0.7%sy,  0.0%ni, 98.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu6  :  1.0%us,  0.3%sy,  0.0%ni, 98.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu7  :  0.3%us,  0.3%sy,  0.0%ni, 99.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   4030112k total,  2468268k used,  1561844k free,   215080k buffers
Swap:  2049044k total,   287572k used,  1761472k free,   769032k cached

c: با زدن cدستور کاملی که برای اجرای هر pid مورد استفاده قرار گرفته رو نشون میده.
قبل از زدن c
 

top - 17:34:14 up  7:09,  3 users,  load average: 0.72, 0.60, 0.60
Tasks: 251 total,   1 running, 215 sleeping,   1 stopped,  34 zombie
%Cpu(s): 18.4 us,  5.4 sy,  0.0 ni, 76.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   4049004 total,  3925128 used,   123876 free,    80060 buffers
KiB Swap:  4881404 total,      560 used,  4880844 free,  2120828 cached
  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND
 ۸۸۴۹ matrix    20   0 1356m 371m  62m S  17.5  9.4  31:58.70 firefox
 ۱۲۹۷ root      20   0  260m 112m  34m S   6.7  2.9  30:32.09 Xorg
 ۲۸۷۷ matrix    20   0 1669m 242m  65m S   5.4  6.1  14:50.00 compiz
۱۲۳۱۲ matrix    20   0  792m  29m  16m S   5.4  0.8   0:04.83 gnome-terminal
 ۲۸۸۴ matrix    20   0  521m  16m 9900 S   2.7  0.4   5:06.09 indicator-multi
 ۹۱۱۰ matrix    20   0 2497m 116m  45m S   2.7  2.9   3:53.94 rhythmbox
۱۲۸۱۶ matrix    20   0 20816 1584 1052 R   2.7  0.0   0:00.31 top
 ۲۹۸۲ matrix    20   0  610m  10m 3468 S   1.3  0.3   3:00.10 hud-service
 ۲۹۸۳ matrix    20   0  807m  40m  20m S   1.3  1.0   5:52.56 unity-panel-ser
    ۱ root      20   0 27056 2852 1356 S   0.0  0.1   0:00.85 init
    ۲ root      20   0     0    0    0 S   0.0  0.0   0:00.00 kthreadd
    ۳ root      20   0     0    0    0 S   0.0  0.0   0:05.47 ksoftirqd/0
    ۵ root       0 -20     0    0    0 S   0.0  0.0   0:00.00 kworker/0:0H
    ۶ root      20   0     0    0    0 S   0.0  0.0   0:00.00 kworker/u:0
    ۷ root       0 -20     0    0    0 S   0.0  0.0   0:00.00 kworker/u:0H
    ۸ root      rt   0     0    0    0 S   0.0  0.0   0:00.44 migration/0
    ۹ root      20   0     0    0    0 S   0.0  0.0   0:00.00 rcu_bh
   ۱۰ root      20   0     0    0    0 S   0.0  0.0   0:10.78 rcu_sched
   ۱۱ root      rt   0     0    0    0 S   0.0  0.0   0:00.18 watchdog/0
   ۱۲ root      rt   0     0    0    0 S   0.0  0.0   0:00.14 watchdog/1
   ۱۳ root      20   0     0    0    0 S   0.0  0.0   0:05.51 ksoftirqd/1
   ۱۴ root      rt   0     0    0    0 S   0.0  0.0   0:00.48 migration/1
   ۱۶ root       0 -20     0    0    0 S   0.0  0.0   0:00.00 kworker/1:0H
   ۱۷ root       0 -20     0    0    0 S   0.0  0.0   0:00.00 cpuset
   ۱۸ root       0 -20     0    0    0 S   0.0  0.0   0:00.00 khelper
   ۱۹ root      20   0     0    0    0 S   0.0  0.0   0:00.00 kdevtmpfs
   ۲۰ root       0 -20     0    0    0 S   0.0  0.0   0:00.00 netns
   ۲۱ root      20   0     0    0    0 S   0.0  0.0   0:00.00 bdi-default
   ۲۲ root       0 -20     0    0    0 S   0.0  0.0   0:00.00 kintegrityd
   ۲۳ root       0 -20     0    0    0 S   0.0  0.0   0:00.00 kblockd
   ۲۴ root       0 -20     0    0    0 S   0.0  0.0   0:00.00 ata_sff
   ۲۵ root      20   0     0    0    0 S   0.0  0.0   0:00.00 khubd
   ۲۶ root       0 -20     0    0    0 S   0.0  0.0   0:00.00 md
   ۲۷ root       0 -20     0    0    0 S   0.0  0.0   0:00.00 devfreq_wq
   ۳۰ root      20   0     0    0    0 S   0.0  0.0   0:00.02 khungtaskd
   ۳۱ root      20   0     0    0    0 S   0.0  0.0   0:01.26 kswapd0
   ۳۲ root      25   5     0    0    0 S   0.0  0.0   0:00.00 ksmd
   ۳۳ root      39  19     0    0    0 S   0.0  0.0   0:00.00 khugepaged
   ۳۴ root      20   0     0    0    0 S   0.0  0.0   0:00.00 fsnotify_mark
   ۳۵ root      20   0     0    0    0 S   0.0  0.0   0:00.00 ecryptfs-kthrea
   ۳۶ root       0 -20     0    0    0 S   0.0  0.0   0:00.00 crypto
   ۴۷ root       0 -20     0    0    0 S   0.0  0.0   0:00.00 kthrotld
   ۵۰ root       0 -20     0    0    0 S   0.0  0.0   0:00.00 binder
   ۶۹ root       0 -20     0    0    0 S   0.0  0.0   0:00.00 deferwq
   ۷۰ root       0 -20     0    0    0 S   0.0  0.0   0:00.00 charger_manager
  ۱۸۴ root      20   0     0    0    0 S   0.0  0.0   0:00.00 scsi_eh_0
  ۱۸۸ root      20   0     0    0    0 S   0.0  0.0   0:00.00 scsi_eh_1
  ۱۹۰ root      20   0     0    0    0 S   0.0  0.0   0:00.00 kworker/u:3

بعد از زدن c

top - 17:32:45 up  7:08,  3 users,  load average: 0.33, 0.54, 0.59
Tasks: 251 total,   1 running, 215 sleeping,   1 stopped,  34 zombie
%Cpu(s): 18.9 us,  6.1 sy,  0.0 ni, 75.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   4049004 total,  3878968 used,   170036 free,    80004 buffers
KiB Swap:  4881404 total,      560 used,  4880844 free,  2119548 cached
  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND
 ۸۸۴۹ matrix    20   0 1345m 327m  62m S  17.2  8.3  31:31.52 /usr/lib/firefox/firefox
 ۱۲۹۷ root      20   0  260m 112m  34m S   8.6  2.9  30:23.14 /usr/bin/X :0 -core -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -n
 ۲۸۷۷ matrix    20   0 1669m 242m  65m S   7.9  6.1  14:44.02 compiz
۱۲۳۱۲ matrix    20   0  792m  29m  16m S   5.4  0.8   0:04.18 gnome-terminal
 ۹۱۱۰ matrix    20   0 2497m 116m  45m S   2.9  2.9   3:51.71 rhythmbox
 ۲۸۸۴ matrix    20   0  521m  16m 9900 S   1.8  0.4   5:04.91 indicator-multiload
 ۲۸۴۱ matrix     9 -11  419m 7612 4924 S   1.4  0.2   4:14.47 /usr/bin/pulseaudio --start --log-target=syslog
 ۲۹۸۳ matrix    20   0  807m  40m  20m S   1.4  1.0   5:51.30 /usr/lib/unity/unity-panel-service
 ۲۹۸۲ matrix    20   0  610m  10m 3468 S   0.7  0.3   2:59.46 /usr/lib/x86_64-linux-gnu/hud/hud-service
 ۲۸۰۰ matrix    20   0 27340 3576  724 S   0.4  0.1   0:52.47 //bin/dbus-daemon --fork --print-pid 5 --print-address 7 --session
 ۲۸۳۳ matrix    20   0  838m  25m  15m S   0.4  0.6   0:14.72 /usr/lib/gnome-settings-daemon/gnome-settings-daemon
 ۳۰۳۶ matrix    20   0  519m 6116 4676 S   0.4  0.2   1:13.56 /usr/lib/x86_64-linux-gnu/indicator-application-service
۱۱۸۶۳ root      20   0     0    0    0 S   0.4  0.0   0:03.92 [kworker/1:0]
۱۲۸۱۶ matrix    20   0 20816 1584 1052 R   0.4  0.0   0:00.16 top
    ۱ root      20   0 27056 2852 1356 S   0.0  0.1   0:00.85 /sbin/init
    ۲ root      20   0     0    0    0 S   0.0  0.0   0:00.00 [kthreadd]
    ۳ root      20   0     0    0    0 S   0.0  0.0   0:05.45 [ksoftirqd/0]
    ۵ root       0 -20     0    0    0 S   0.0  0.0   0:00.00 [kworker/0:0H]
    ۶ root      20   0     0    0    0 S   0.0  0.0   0:00.00 [kworker/u:0]
    ۷ root       0 -20     0    0    0 S   0.0  0.0   0:00.00 [kworker/u:0H]
    ۸ root      rt   0     0    0    0 S   0.0  0.0   0:00.44 [migration/0]
    ۹ root      20   0     0    0    0 S   0.0  0.0   0:00.00 [rcu_bh]
   ۱۰ root      20   0     0    0    0 S   0.0  0.0   0:10.74 [rcu_sched]
   ۱۱ root      rt   0     0    0    0 S   0.0  0.0   0:00.18 [watchdog/0]
   ۱۲ root      rt   0     0    0    0 S   0.0  0.0   0:00.14 [watchdog/1]
   ۱۳ root      20   0     0    0    0 S   0.0  0.0   0:05.50 [ksoftirqd/1]
   ۱۴ root      rt   0     0    0    0 S   0.0  0.0   0:00.48 [migration/1]
   ۱۶ root       0 -20     0    0    0 S   0.0  0.0   0:00.00 [kworker/1:0H]
   ۱۷ root       0 -20     0    0    0 S   0.0  0.0   0:00.00 [cpuset]
   ۱۸ root       0 -20     0    0    0 S   0.0  0.0   0:00.00 [khelper]
   ۱۹ root      20   0     0    0    0 S   0.0  0.0   0:00.00 [kdevtmpfs]
   ۲۰ root       0 -20     0    0    0 S   0.0  0.0   0:00.00 [netns]
   ۲۱ root      20   0     0    0    0 S   0.0  0.0   0:00.00 [bdi-default]
   ۲۲ root       0 -20     0    0    0 S   0.0  0.0   0:00.00 [kintegrityd]
   ۲۳ root       0 -20     0    0    0 S   0.0  0.0   0:00.00 [kblockd]
   ۲۴ root       0 -20     0    0    0 S   0.0  0.0   0:00.00 [ata_sff]
   ۲۵ root      20   0     0    0    0 S   0.0  0.0   0:00.00 [khubd]
   ۲۶ root       0 -20     0    0    0 S   0.0  0.0   0:00.00 [md]
   ۲۷ root       0 -20     0    0    0 S   0.0  0.0   0:00.00 [devfreq_wq]
   ۳۰ root      20   0     0    0    0 S   0.0  0.0   0:00.02 [khungtaskd]
   ۳۱ root      20   0     0    0    0 S   0.0  0.0   0:01.26 [kswapd0]
   ۳۲ root      25   5     0    0    0 S   0.0  0.0   0:00.00 [ksmd]
   ۳۳ root      39  19     0    0    0 S   0.0  0.0   0:00.00 [khugepaged]
   ۳۴ root      20   0     0    0    0 S   0.0  0.0   0:00.00 [fsnotify_mark]
   ۳۵ root      20   0     0    0    0 S   0.0  0.0   0:00.00 [ecryptfs-kthrea]
   ۳۶ root       0 -20     0    0    0 S   0.0  0.0   0:00.00 [crypto]
   ۴۷ root       0 -20     0    0    0 S   0.0  0.0   0:00.00 [kthrotld]
   ۵۰ root       0 -20     0    0    0 S   0.0  0.0   0:00.00 [binder]

ترتیب کردن ستون‌ها
برای ترتیب کردن ستون‌ها از دکمه‌های زیر استفاده کنین

 command   sorted field
    M         %MEM
    N         PID
    P         %CPU
    T         TIME+

مثلا اگر می‌خواین بر اساس مقدار مصرف cpu ببینین از P استفاده کنین.
اگر می‌خواین بر اساس ستونی مرتب (sort) کنین که در بالا نیست با دکمه های >و <می‌تونین ستونی که sort می‌شه رو به چپ و راست حرکت بدین. یا از کلید F استفاده کنین و ستون مورد نظرتون رو انتخاب کنین.
تعیین محتویات داخل ستون به وسیله f
برای این‌کار از fاستفاده کنین. سپس به یک صفحه وارد می‌شین که در اون‌جا به هر ستون یک حرف انگلیسی اختصاص داده شده مثلا به pid حرف a اختصاص داده شده. شما با فشردن دکمه حرف مربوط به هر ستون می‌تونین اون ستون رو انتخاب کنین که کنارش یک ستاره میاد.
مثلا در زیر از PID تا  TIME+ انتخاب شده:

Current Fields:  AEHIOQTWKNMbcdfgjplrsuvyzX  for window 1:Def
Toggle fields via field letter, type any other key to return
* A: PID        = Process Id                                                    0x00000004  PF_EXITING
* E: USER       = User Name                                                     0x00000040  PF_FORKNOEXEC
* H: PR         = Priority                                                      0x00000100  PF_SUPERPRIV
* I: NI         = Nice value                                                    0x00000200  PF_DUMPCORE
* O: VIRT       = Virtual Image (kb)                                            0x00000400  PF_SIGNALED
* Q: RES        = Resident size (kb)                                            0x00000800  PF_MEMALLOC
* T: SHR        = Shared Mem size (kb)                                          0x00002000  PF_FREE_PAGES (2.5)
* W: S          = Process Status                                                0x00008000  debug flag (2.5)
* K: %CPU       = CPU usage                                                     0x00024000  special threads (2.5)
* N: %MEM       = Memory usage (RES)                                            0x001D0000  special states (2.5)
* M: TIME+      = CPU Time, hundredths                                          0x00100000  PF_USEDFPU (thru 2.4)
  b: PPID       = Parent Process Pid
  c: RUSER      = Real user name
  d: UID        = User Id
  f: GROUP      = Group Name
  g: TTY        = Controlling Tty
  j: P          = Last used cpu (SMP)
  p: SWAP       = Swapped size (kb)
  l: TIME       = CPU Time
  r: CODE       = Code size (kb)
  s: DATA       = Data+Stack size (kb)
  u: nFLT       = Page Fault count
  v: nDRT       = Dirty Pages count
  y: WCHAN      = Sleeping in Function
  z: Flags      = Task Flags <sched.h>
* X: COMMAND    = Command name/line

ترتیب قرار گرفتن ستون‌ها به‌وسیله o
اول oرو بزنین بعد به یک صفحه شبیه به صفحه زیر می‌رین که مثل بالا که گفته شد به هر ستون یک حرف اختصاص داده شده واگر می‌خواین ستون مورد نظرتون به سمت چپ برود حرف مربوط به اون ستون رو به صورت بزرگ (Upper case) بزنین و اگر می‌خواین به سمت راست حرکتش بدین به صورت حرف کوچک (Lower case) بزنین.

Upper case letter moves field left, lower case right
* A: PID        = Process Id                                                    0x00000004  PF_EXITING
* E: USER       = User Named                                                    0x00000040  PF_FORKNOEXEC
* H: PR         = Priority                                                      0x00000100  PF_SUPERPRIV
* I: NI         = Nice value                                                    0x00000200  PF_DUMPCORE
* O: VIRT       = Virtual Image (kb)                                            0x00000400  PF_SIGNALED
* Q: RES        = Resident size (kb)                                            0x00000800  PF_MEMALLOC
* T: SHR        = Shared Mem size (kb)                                          0x00002000  PF_FREE_PAGES (2.5)
* W: S          = Process Status                                                0x00008000  debug flag (2.5)
* K: %CPU       = CPU usage                                                     0x00024000  special threads (2.5)
* N: %MEM       = Memory usage (RES)                                            0x001D0000  special states (2.5)
* M: TIME+      = CPU Time, hundredths                                          0x00100000  PF_USEDFPU (thru 2.4)
  b: PPID       = Parent Process Pid
  c: RUSER      = Real user name
  d: UID        = User Id
  f: GROUP      = Group Name
  g: TTY        = Controlling Tty
  j: P          = Last used cpu (SMP)
  p: SWAP       = Swapped size (kb)
  l: TIME       = CPU Time
  r: CODE       = Code size (kb)
  s: DATA       = Data+Stack size (kb)
  u: nFLT       = Page Fault count
  v: nDRT       = Dirty Pages count
  y: WCHAN      = Sleeping in Function
  z: Flags      = Task Flags <sched.h>
* X: COMMAND    = Command name/line

ذخیره تغییرات انجام شده به وسیله W
اگر تغییراتی مثل تغییر در هیدر یا تغییرات در ستون مثل ترتیب ستون‌ها، اولویت‌ها و… انجام دادین  با زدن Wتغییرات‌ ذخیره می‌شود ودفعه بعد که top رو اجرا کنین به همون شکل قبل اجرا می‌شود.
دستور دیگری به اسم htop هست که بسیار شبیه به top هست و کار با اون آسون‌تر هم هست و از ماوس هم بهره می‌بره و شخصی‌سازی اون به راحتی قابل انجام است.

مطالب مرتبط

نظر شما