كيف تراقب وحدة المعالجة المركزية والذاكرة على نظام Linux؟

تعرف على مقدار استهلاك عملية فردية أو على مستوى النظام لوحدة المعالجة المركزية أو الذاكرة.

بصفتك مسؤول نظام ، غالبًا ما يتعين عليك التعامل مع حادثة يكون فيها التطبيق بطيئًا أو لا يستجيب بسبب الاستخدام العالي لوحدة المعالجة المركزية / الذاكرة / الشبكة. إذا كان الخادم يستضيف عملية واحدة فقط ، فمن السهل معرفة متى تستهلك العملية جميع الموارد. ومع ذلك ، تخيل خادمًا مشتركًا حيث يتم تشغيل العديد من الخدمات ، وتحتاج إلى العثور على الخادم الذي يستهلك جميع الموارد.

هناك العديد من برامج المراقبة التي تقوم بذلك خارج الصندوق. ولكن إذا لم يكن لديك حل أو كنت تبحث عن حل قائم على الأوامر ، فها أنت ذا. كلها مجانية!

أعلى

قد ترغب في البدء بالنظر إلى أعلى أو نتيجة htop لمشاهدة نظرة عامة على العمليات.

كما ترى أدناه ، فإنه يعطي فكرة ممتازة حول ما تستخدمه جميع العمليات. إذا نظرت إلى الأولى ، وهي MySQL تستحوذ على 11.9٪ من وحدة المعالجة المركزية و 2.5٪ من وحدة المعالجة المركزية.

top - 11:57:33 up 0 min,  1 user,  load average: 3.69, 0.96, 0.32
Tasks: 165 total,   2 running, 113 sleeping,   0 stopped,   0 zombie
%Cpu(s): 21.0 us,  5.5 sy,  0.0 ni, 70.5 id,  1.7 wa,  0.0 hi,  1.3 si,  0.0 st
KiB Mem :  7637308 total,  5802888 free,   849512 used,   984908 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  6495648 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                                        
 1986 netdata   20   0 1738856 191560  22948 S  11.6  2.5   0:02.30 mysqld                                                                                                         
 3021 www-data  20   0  255288  78420  55484 S   6.6  1.0   0:01.55 php-fpm                                                                                                        
 3138 www-data  20   0  253096  79780  59228 S   6.6  1.0   0:00.92 php-fpm                                                                                                        
 3153 www-data  20   0  255116  79088  56472 S   5.0  1.0   0:00.70 php-fpm                                                                                                        
 3037 www-data  20   0  257200  81088  56216 S   4.3  1.1   0:01.50 php-fpm                                                                                                        
 3048 www-data  20   0  257088  78740  55380 S   4.3  1.0   0:01.46 php-fpm                                                                                                        
 3054 www-data  20   0  254160  72168  52108 S   3.7  0.9   0:01.32 php-fpm                                                                                                        
 3135 www-data  20   0  255084  75912  54836 S   3.7  1.0   0:00.91 php-fpm                                                                                                        
 3051 www-data  20   0  254096  73804  51964 S   3.0  1.0   0:01.38 php-fpm                                                                                                        
 2962 www-data  20   0   45280   7284   3488 R   2.0  0.1   0:00.22 openresty                                                                                                      
 1062 netdata   20   0  338748  76144   6720 S   1.0  1.0   0:01.31 netdata                                                                                                        
 1702 netdata   20   0   21852   4232   2352 S   1.0  0.1   0:00.34 apps.plugin                                                                                                    
 1729 netdata   20   0   18636   3280   2764 S   0.7  0.0   0:00.05 bash                                                                                                           
 1980 netdata   20   0   62008  12896   5796 S   0.7  0.2   0:00.14 redis-server                                                                                                   
   11 root      20   0       0      0      0 I   0.3  0.0   0:00.14 rcu_sched                                                                                                      
 1007 root      20   0 1347424  74524  38872 S   0.3  1.0   0:00.92 dockerd                                                                                                        
 1857 root      20   0   10600   5564   4276 S   0.3  0.1   0:00.03 containerd-shim                                                                                                
 2045 root      20   0    9948   6028   5016 S   0.3  0.1   0:00.14 forego                                                                                                         
 2934 root      20   0   13616   8760   5928 S   0.3  0.1   0:00.07 docker-gen                                                                                                     
 2966 systemd+  20   0   25784   7924   2340 S   0.3  0.1   0:00.06 nginx

تم تثبيت الجزء العلوي على جميع توزيعات Linux تقريبًا.

  كيف تلعب The Riftbreaker على Linux

بمجرد تحديد المشتبه به ، قد ترغب في التركيز على هذه العملية بدلاً من كل شيء كما رأيته أعلاه. لا يزال بإمكانك استخدام الأمر العلوي ولكن مع بعض الجدل.

لنفترض أنك تعرف معرف العملية (PID) ؛ يمكنك استخدام الأمر أدناه.

أعلى p $ PID

أدناه مثال على top -p 3102

top - 11:59:56 up 3 min,  1 user,  load average: 0.72, 0.70, 0.31
Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
%Cpu(s):  7.1 us,  2.9 sy,  0.0 ni, 89.1 id,  0.3 wa,  0.0 hi,  0.7 si,  0.0 st
KiB Mem :  7637308 total,  5802024 free,   783672 used,  1051612 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  6555636 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                                        
 3102 www-data  20   0  329500  82376  60640 S   0.0  1.1   0:03.35 php-fpm

يمكنك أيضًا استخدام grep مع الجزء العلوي. أدناه مثال للتحقق من استخدام Docker.

[email protected]:~# top | grep docker
 1007 root      20   0 1347424  74524  38872 S   0.3  1.0   0:01.38 dockerd                                                                                                        
 2934 root      20   0   14676   9652   5928 S   0.3  0.1   0:00.54 docker-gen                                                                                                     
 1007 root      20   0 1347424  74524  38872 S   0.3  1.0   0:01.39 dockerd                                                                                                        
 1007 root      20   0 1347424  74524  38872 S   1.0  1.0   0:01.42 dockerd                                                                                                        
 2934 root      20   0   14740   9652   5928 S   0.3  0.1   0:00.55 docker-gen                                                                                                     
 2934 root      20   0   14740   9652   5928 S   0.3  0.1   0:00.56 docker-gen

htop

على غرار الجزء العلوي ولكن مع مزيد من المعلومات. كما يمكنك ، حصل على عمود الأوامر ، وهو سهل لتحديد مسار العملية. وهي أيضا ملونة.

  كيف تلعب Dead Rising على Linux

قد لا يتم تثبيت htop افتراضيًا ، ولكن يمكنك دائمًا القيام بذلك على النحو التالي.

قم بتثبيت htop على أوبونتو

apt-get install htop

قم بتثبيت htop على CentOS / RHEL 8.x

dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
dnf update
dnf install htop

نظرات

كما يقول الاسم ، تحصل على عرض استخدام النظام على شاشة واحدة. يتم فرز العمليات الجارية حسب استخدام وحدة المعالجة المركزية الخاصة بهم.

يمكنك تثبيت نظرات على CentOS 8 باستخدام DNF على النحو التالي.

dnf install glances

بالنسبة لـ CentOS7 ، يمكنك استخدام YUM

yum install glances

فوق

يشبه ما تم سرده أعلاه ولكن مع ميزة رائعة لتسجيل الإخراج في ملف حتى تتمكن من عرضها لاحقًا. تخيل أن هناك نمطًا لوجود مشكلة في نافذة زمنية محددة. يمكنك الجدولة لكتابة الإخراج في ملف من خلال crontab أو غيره ، وبعد ذلك يمكنك التشغيل.

لتسجيل الإخراج في ملف:

atop -w filename

وللتشغيل:

atop -r filename

إنه يدعم العديد من الحجج مثل الفاصل الزمني والعينات وما إلى ذلك ، وأود أن أوصي بشدة بإلقاء نظرة على صفحة الدليل.

إذا كنت مهتمًا فقط باستكشاف الأخطاء وإصلاحها في الوقت الفعلي ، فما عليك سوى التنفيذ على القمة وسترى ما يلي.

يمكنك التثبيت على النحو التالي.

dnf install atop

ملاحظة

دعنا نتحقق من الأمر ps الآن.

يمكنك استخدام الأمر ps مع PID لطباعة استخدام وحدة المعالجة المركزية والذاكرة.

ps -p $PID -o %cpu,%mem

يجب أن يبدو الإخراج مثل هذا.

[email protected]:~# ps -p 1048 -o %cpu,%mem
%CPU %MEM
 0.2  3.0
[email protected]:~#

nmon

أداة مراقبة سطر الأوامر التفاعلية لوحدة المعالجة المركزية والذاكرة والأقراص والشبكة و NFS واستخدام الذاكرة الافتراضية. لعرض العملية العلوية (عن طريق الاستخدام) ، يمكنك تنفيذ nmon والضغط على زر t.

يمكنك تثبيت nmon على النحو التالي.

dnf install nmon

مراقبة

مراقبة هو حل مفتوح المصدر يعتمد على الويب وسطر الأوامر لمراقبة موارد الخادم والشياطين والملفات والدليل وأنظمة الملفات وما إلى ذلك.

حصلت Monit أيضًا على عنصر واجهة مستخدم رائع.

برنامج المراقبة خفيف الوزن. ولكن هناك المزيد لاستكشافه هنا.

  كيفية استخدام علبة الكود الثابت لتغيير رموز علبة النظام في Linux

مونيتوريكس

أداة خفيفة الوزن مفتوحة المصدر لمراقبة خادم Linux. مونيتوريكس حصلت على HTTP مدمج حتى تتمكن من التحقق من الاستخدام والأشياء الأخرى على الويب. تتضمن بعض تقارير الاستخدام الأخرى ما يلي:

  • النواة / درجة الحرارة
  • نظام الملفات و I / O
  • ازدحام انترنت
  • Apache / Mail / FTP / Nginx
  • MySQL / الورنيش / Memcached

تقدم Monitorix أيضًا تكوينًا للتنبيه حتى يتم إخطارك عندما لا تكون الأمور على ما يرام. سيكون اختيارًا جيدًا عندما تدير خوادم قائمة على السحابة وتبحث عن حل مراقبة استباقي.

نيتداتا

نيتداتا هي مراقبة الأداء في الوقت الفعلي لموارد النظام والتطبيقات وخوادم الويب وقواعد البيانات و DNS والبريد وأجهزة استشعار الأجهزة وغير ذلك الكثير. إنه مفتوح المصدر والبدء في العمل سهل. يتم جمع جميع البيانات وتخزينها وتدفقها لتتخيلها بشكل تفاعلي. يتم جمع البيانات كل ثانية ، لذلك لن يفوتك أي شيء.

محبوب من قبل العديد من قادة الصناعة.

إذن ما الذي تنتظره ، حاول التحكم في خوادم Linux الخاصة بك.

btop

btop هو مراقب موارد مفيد يتفاعل بشكل كامل مع واجهة مستخدم جميلة تساعدك على إدارة خوادم Linux.

يمكنك بسهولة تصور العمليات في عرض الشجرة ، والتصفية من قائمة العمليات ، وإدارة خنازير الموارد. يأتي btop أيضًا مدعومًا برسم بياني قياس تلقائي يوضح استخدام الشبكة.

إلى جانب ذلك ، يمكنك أيضًا التحقق من سرعة القرص وإكمال نشاط الإدخال / الإخراج.

هناك المزيد مما يمكنك تجربته على Linux و FreeBSD و macOS.

استنتاج

آمل أن تساعدك الأدوات المذكورة أعلاه في تصور استخدام الخادم في الوقت الفعلي حتى تتمكن من اتخاذ الإجراء اللازم. إذا كنت قد بدأت للتو كمسؤول نظام وتتطلع إلى الحصول على تدريب عملي ، فتحقق من ذلك دورة Udemy.