🐧 نحوه یافتن فرایندهایی با بیشترین میزان استفاده از CPU در لینوکس – اطلاعات امنیت اسکاد

بعضی مواقع شرایطی بوجود می آید که شما باید لیستی از فرآیندهای را تعریف کنید که منابع CPU بیشتری را در سیستم مصرف می کنند.

من معتقدم که فقط دو روش برای بررسی این مسئله وجود دارد.

این کار با استفاده از دستور بالا و دستور ps انجام می شود.

من توصیه می کنم از بالا و نه ps استفاده کنید.

اما هر دو روش نتیجه یکسانی می دهند ، بنابراین می توانید یکی را که دوست دارید بهترین انتخاب کنید.

هر دوی این گزینه ها به طور گسترده توسط مدیران لینوکس استفاده می شوند.

1) چگونه می توان فرآیند با بار زیاد روی پردازنده را در لینوکس پیدا کرد با دستورات بالا

فرمان برتر لینوکس بهترین و شناخته شده ترین فرمانی است که همه از آن برای نظارت بر عملکرد سیستم لینوکس استفاده می کنند.

دستور بالا یک نمایش پویا در زمان واقعی از فرآیندهای در حال اجرا بر روی سیستم لینوکس ارائه می دهد.

این اطلاعات خلاصه سیستم را نشان می دهد ، لیستی از فرایندهایی که در حال حاضر توسط هسته لینوکس اداره می شود.

اطلاعات مختلف سیستم مانند استفاده از پردازنده ، استفاده از حافظه ، حافظه مبادله ، تعداد فرآیندهای در حال اجرا ، زمان p را نشان می دهد. خرابی سیستم ، بوت سیستم ، اندازه بافر ، اندازه حافظه پنهان ، PID فرایند و غیره.

به طور پیش فرض ، خروجی برتر را با استفاده از CPU مرتب می کند و داده ها را هر 5 ثانیه به روز می کند.

اگر می خواهید دید روشنی از خروجی داشته باشید. دستورات برتر برای تجزیه و تحلیل بیشتر ، این بهترین روش برای اجرای دستور بالا در حالت دسته ای است.

علاوه بر این ، شما باید خروجی دستور بالا را برای رفع مشکل عملکرد سیستم درک کنید.

 # top -c -b | سر -50

برترین - 12:12:52 تا 57 روز ، 21:58 ، 3 کاربر ، میانگین بار: 1.50 ، 1.76 ، 1.86
وظایف: 306 نفر کل ، 1 دویدن ، 216 خواب ، 0 متوقف ، 0 زامبی
٪ Cpu (s): 12.7 us، 4.2 sy، 0.0 ni، 81.7 id، 0.0 wa، 0.0 سلام، 1.4 si، 0.0 st
KiB Mem: 16400812 در کل ، 262904 رایگان ، 3166168 استفاده شده ، 12971740 buff / cache
تعویض KiB: 0 تعداد ، 0 رایگان ، 0 مورد استفاده 13559292 سود مم

PID USER PR NI VIRT RES SHR S٪ CPU٪ MEM TEM + Command
28494 root 20 0 1515256 1.3g 52140 S 43.8 8.1 7618: 26 kube-apiserver --advertise-address = 10.2.67.201 - allow-privilege = true --annam-aut +
13148 root 20 0 162192 4520 3848 R 12.5 0.0 0: 00.03 top -c -b
17334 root 20 0 1544992 132556 58240 S 6.2 0.8 4272: 14 / usr / local / bin / kubelet --logtostderr = true --v = 2 --node-ip = 10.2.67.201 - hostname-overr +
28432 root 20 0 10.2g 162668 84168 S 6.2 1.0 2099: 34 / usr / local / bin / etc.d
1 root 20 0 129568 9180 5252 S 0.0 0.1 152: 29.90 / usr / lib / systemd / systemd --switched-root --system --deserialize 22
2 ریشه 20 0 0 0 0 S 0.0 0.0 0: 01.77 [kthreadd]
3 ریشه 0 -20 0 0 0 من 0.0 0.0 0: 00.00 [rcu_gp]
4 ریشه 0 -20 0 0 0 من 0.0 0.0 0: 00.00 [rcu_par_gp]
6 ریشه 0 -20 0 0 0 من 0.0 0.0 0: 00.00 [kworker/0:0H-kb]
8 root 0 -20 0 0 0 I 0.0 0.0 0: 00.00 [mm_percpu_wq]
9 ریشه 20 0 0 0 0 S 0.0 0.0 6: 30.07 [ksoftirqd/0]
10 ریشه 20 0 0 0 0 من 0.0 0.0 131: 34.14 [rcu_sched]
11 root rt 0 0 0 0 S 0.0 0.0 0: 37.83 [migration/0]
13 ریشه 20 0 0 0 0 S 0.0 0.0 0: 00.00 [cpuhp/0]
14 ریشه 20 0 0 0 0 S 0.0 0.0 0: 00.00 [cpuhp/1]
15 root rt 0 0 0 0 S 0.0 0.0 0: 36.70 [migration/1]
16 ریشه 20 0 0 0 0 S 0.0 0.0 4: 50.86 [ksoftirqd/1]
18 ریشه 0 -20 0 0 0 I 0.0 0.0 0: 00.00 [kworker/1:0H-kb]
19 ریشه 20 0 0 0 0 S 0.0 0.0 0: 00.00 [cpuhp/2]
20 root rt 0 0 0 0 S 0.0 0.0 0: 36.68 [migration/2]
21 ریشه 20 0 0 0 0 S 0.0 0.0 5: 33.95 [ksoftirqd/2]
23 root 0 -20 0 0 0 I 0.0 0.0 0: 00.00 [kworker/2:0H-kb]
24 ریشه 20 0 0 0 0 S 0.0 0.0 0: 00.00 [cpuhp/3]
25 root rt 0 0 0 0 S 0.0 0.0 0: 35.79 [migration/3]
26 ریشه 20 0 0 0 0 S 0.0 0.0 6: 43.56 [ksoftirqd/3]
28 root 0 -20 0 0 0 I 0.0 0.0 0: 00.00 [kworker/3:0H-kb]
29 ریشه 20 0 0 0 0 S 0.0 0.0 0: 00.00 [kdevtmpfs]
30 root 0 -20 0 0 0 I 0.0 0.0 0: 00.00 [netns]
31 root 20 0 0 0 0 S 0.0 0.0 0: 13.96 [kauditd]
32 root 20 0 0 0 0 S 0.0 0.0 0: 12.74 [khungtaskd]
33 root 20 0 0 0 0 S 0.0 0.0 0: 00.00 [oom_reaper]
34 root 0 -20 0 0 0 I 0.0 0.0 0: 00.00 [writeback]
35 root 20 0 0 0 0 S 0.0 0.0 0: 00.47 [kcompactd0]
36 ریشه 25 5 0 0 0 S 0.0 0.0 0: 00.00 [ksmd]
37 root 39 19 0 0 0 S 0.0 0.0 0: 20.81 [khugepaged]
130 ریشه 0 -20 0 0 0 من 0.0 0.0 0: 00.00 [kintegrityd]
131 root 0 -20 0 0 0 I 0.0 0.0 0: 00.00 [kblockd]
132 root 0 -20 0 0 0 I 0.0 0.0 0: 00.00 [blkcg_punt_bio]
133 root 0 -20 0 0 0 I 0.0 0.0 0: 00.00 [tpm_dev_wq]
134 root 0 -20 0 0 0 I 0.0 0.0 0: 00.00 [md]
135 ریشه 0 -20 0 0 0 I 0.0 0.0 0: 00.00 [edac-poller]
136 root 0 -20 0 0 0 I 0.0 0.0 0: 00.00 [devfreq_wq]
137 root rt 0 0 0 0 S 0.0 0.0 0: 00.00 [watchdogd]

جزئیات دستور فوق:

  • top: این دستور
  • -b: حالت دسته ای.
  • ] head -50: 50 خط اول را در خروجی نشان دهید.
  • PID: شناسه فرآیند بی نظیر.
  • USER: صاحب فرآیند .
  • PR: اولویت فرآیند.
  • NI: NICE مقدار پردازش.
  • V چقدر از حافظه مجازی توسط این فرآیند استفاده می شود.
  • RES: چقدر از حافظه فیزیکی توسط این فرآیند استفاده می شود. [19659018] SHR: چقدر حافظه اشتراکی توسط این فرآیند استفاده می شود.
  • S: Y وضعیت روند را نشان می دهد: S = خواب R = در حال اجرا Z = زامبی. [19659018]٪ CPU: درصد پردازنده استفاده شده توسط این فرآیند.
  • ٪ MEM: درصد رم استفاده شده توسط این فرآیند.
  • TIME +: [19659025روندکارچقدرطولمیکشد؟
  • فرمان: نام فرآیند.

اگر می خواهید مسیر کامل فرمان را به جای نام آن ببینید ، فرمت فرمان زیر را اجرا کنید:

 # top -b | سر -50
برترین - 12:16:41 تا 57 روز ، 22:02 ، 3 کاربر ، میانگین بار: 1.98 ، 1.77 ، 1.83
وظایف: 309 نفر کل ، 1 دویدن ، 216 خواب ، 0 متوقف ، 0 زامبی
٪ Cpu (s): 3.0 us، 4.5 sy، 0.0 ni، 92.4 id، 0.0 wa، 0.0 سلام، 0.0 si، 0.0 st
KiB Mem: 16400812 در کل ، 257304 رایگان ، 3169012 استفاده شده ، 12974496 buff / cache
تعویض KiB: 0 تعداد ، 0 رایگان ، 0 مورد استفاده 13556452 سود مم

PID USER PR NI VIRT RES SHR S٪ CPU٪ MEM TEM + Command
18002 root 20 0 0 0 0 I 6.2 0.0 0: 00.03 kworker / 2: 3-mm_
18955 root 20 0 162 180 4496 3820 R 6.2 0.0 0: 00.01 top
26826 root 20 0 639508 524456 57648 S 6.2 3.2 1346: 12 kube-kontroller
28494 root 20 0 1515256 1.3g 52140 S 6.2 8.1 7619: 00 kube-apiserver
1 root 20 0 129568 9180 5252 S 0.0 0.1 152: 30.38 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0: 01.77 برگشتread
3 ریشه 0 -20 0 0 0 I 0.0 0.0 0: 00.00 rcu_gp
4 ریشه 0 -20 0 0 0 I 0.0 0.0 0: 00.00 rcu_par_gp
6 ریشه 0 -20 0 0 0 I 0.0 0.0 0: 00.00 kworker / 0: 0H-kb
8 root 0 -20 0 0 0 I 0.0 0.0 0: 00.00 mm_percpu_wq
9 ریشه 20 0 0 0 0 S 0.0 0.0 6: 30.09 ksoftirqd / 0
10 root 20 0 0 0 0 I 0.0 0.0 131: 34.56 rcu_sched
11 root rt 0 0 0 0 S 0.0 0.0 0: 37.83 مهاجرت / 0
13 root 20 0 0 0 0 S 0.0 0.0 0: 00.00 cpuhp / 0
14 root 20 0 0 0 0 S 0.0 0.0 0: 00.00 cpuhp / 1
15 root rt 0 0 0 0 S 0.0 0.0 0: 36.70 مهاجرت / 1
16 ریشه 20 0 0 0 0 S 0.0 0.0 4: 50.88 ksoftirqd / 1
18 root 0 -20 0 0 0 I 0.0 0.0 0: 00.00 kworker / 1: 0H-kb
19 ریشه 20 0 0 0 0 S 0.0 0.0 0: 00.00 cpuhp / 2
20 root rt 0 0 0 0 S 0.0 0.0 0: 36.68 مهاجرت / 2
21 ریشه 20 0 0 0 0 S 0.0 0.0 5: 33.97 ksoftirqd / 2
23 root 0 -20 0 0 0 I 0.0 0.0 0: 00.00 kworker / 2: 0H-kb
24 root 20 0 0 0 0 S 0.0 0.0 0: 00.00 cpuhp / 3
25 root rt 0 0 0 0 S 0.0 0.0 0: 35.79 مهاجرت / 3
26 ریشه 20 0 0 0 0 S 0.0 0.0 6: 43.59 ksoftirqd / 3
28 ریشه 0 -20 0 0 0 I 0.0 0.0 0: 00.00 kworker / 3: 0H-kb
29 ریشه 20 0 0 0 0 S 0.0 0.0 0: 00.00 kdevtmpfs
30 ریشه 0 -20 0 0 0 I 0.0 0.0 0: 00.00 شبکه
31 root 20 0 0 0 0 S 0.0 0.0 0: 13.96 kauditd
32 root 20 0 0 0 0 S 0.0 0.0 0: 12.74 khungtaskd
33 root 20 0 0 0 0 S 0.0 0.0 0: 00.00 oom_reaper
34 root 0 -20 0 0 0 I 0.0 0.0 0: 00.00 بازپرداخت
35 root 20 0 0 0 0 S 0.0 0.0 0: 00.47 kcompactd0
36 root 25 5 0 0 0 S 0.0 0.0 0: 00.00 ksmd
37 root 39 19 0 0 0 S 0.0 0.0 0: 20.81 khugepaged
130 ریشه 0 -20 0 0 0 I 0.0 0.0 0: 00.00 kintegrityd
131 root 0 -20 0 0 0 I 0.0 0.0 0: 00.00 kblockd
132 root 0 -20 0 0 0 I 0.0 0.0 0: 00.00 blkcg_punt_bio
133 root 0 -20 0 0 0 I 0.0 0.0 0: 00.00 tpm_dev_wq
134 root 0 -20 0 0 0 I 0.0 0.0 0: 00.00 md
135 root 0 -20 0 0 0 I 0.0 0.0 0: 00.00 edac-poller
136 root 0 -20 0 0 0 I 0.0 0.0 0: 00.00 devfreq_wq
137 root rt 0 0 0 0 S 0.0 0.0 0: 00.00 watchdogd 

2) نحوه یافتن فرایندی با استفاده از CPU زیاد در لینوکس با استفاده از دستور ps

ps مخفف وضعیت پردازش ها است ، اطلاعات مربوط به فرآیندهای فعال / در حال اجرا در سیستم را نشان می دهد.

این عکس مختصری از فرآیندهای فعلی را به همراه اطلاعات دقیق مانند نام کاربری ، شناسه کاربر ، استفاده از پردازنده ، استفاده از حافظه ، تاریخ شروع فرایند و نام فرمان زمان و غیره ارائه می دهد.

 # ps -eo pid، ppid ،٪ mem،٪ cpu، cmd --sort = -٪ cpu | سر

  PID PPID٪ MEM٪ CPU CMD
18527 1714 4.2 40.3 / usr / lib / firefox / firefox -contentproc -childID 18 -isForBrowser -prefsLen 10002 -prefMapSize 213431 -parentBuildID 20191031132559 -greomni /usr/lib/firefox/omni.ja -appomni /omni.ja -appdir / usr / lib / firefox / مرورگر 1714 برگه واقعی
 1714 1152 5.6 8.0 / usr / lib / firefox / firefox - new-windows
18324 1714 4.9 6.3 / usr / lib / firefox / firefox -contentproc -childID 16 -isForBrowser -prefsLen 10002 -prefMapSize 213431 -parentBuildID 20191031132559 -greomni /usr/lib/firefox/omni.ja -appom/ /omni.ja -appdir / usr / lib / firefox / مرورگر 1714 برگه واقعی
 3286 1714 2.0 5.1 / usr / lib / firefox / firefox -contentproc -childID 14 -isForBrowser -prefsLen 8078 -prefMapSize 213431 -parentBuildID 20191031132559 -greomni /usr/lib/firefox/omni.ja -appom / /omni.ja -appdir / usr / lib / firefox / مرورگر 1714 برگه واقعی
 1783 1714 3.0 4.5 / usr / lib / firefox / firefox -contentproc -childID 1 -isForBrowser -prefsLen 1 -prefMapSize 213431 -parentBuildID 20191031132559 -greomni /usr/lib/firefox/omni.ja -appomni / us / /omni.ja -appdir / usr / lib / firefox / مرورگر 1714 برگه واقعی
 1227 1152 2.3 2.5 / usr / bin / gnome-shell
 1170 1168 3.5 2.2 / usr / lib / Xorg vt2 -displayfd 3 -auth / run / user / 1000 / gdm / Xauthority -nolisten tcp-background no -noreset -keptty -verbose 3
16865 1714 2.5 2.1 / usr / lib / firefox / firefox -contentproc -childID 15 -isForBrowser -prefsLen 10002 -prefMapSize 213431 -parentBuildID 20191031132559 -greomni /usr/lib/firefox/omni.ja -appomni /omni.ja -appdir / usr / lib / firefox / مرورگر 1714 برگه واقعی
 2179 1714 2.7 1.8 / usr / lib / firefox / firefox -contentproc -childID 6 -isForBrowser -prefsLen 7821 -prefMapSize 213431 -parentBuildID 20191031132559 -greomni /usr/lib/firefox/omni.ja -appom/ /omni.ja -appdir / usr / lib / firefox / browser 1714 tab true 

اگر می خواهید به جای مسیر مطلق دستور ، فقط نام فرمان را ببینید ، از فرمت دستور ps در زیر استفاده کنید.

 # ps -eo pid، ppid، ٪ mem،٪ cpu، comm --sort = -٪ cpu | سر

  دستورالعمل پردازنده PID PPID٪ MEM٪
18527 1714 4.1 40.4 محتوای وب
 1714 1152 5.7 8.0 فایرفاکس
18324 1714 4.9 6.3 محتوای وب
 3286 1714 2.0 5.1 محتوای وب
 1783 1714 3.0 4.5 محتوای وب
 1227 1152 2.3 2.5 gnome-shell
 1170 1168 3.5 2.2 Xorg
16865 1714 2.4 2.1 محتوای وب
 2179 1714 2.7 1.8 محتوای وب