امروز یکی دیگر از بسته های پرکاربرد جهت مانیتورینگ سرور را به شما معرفی میکنیم. شما با استفاده از نصب بسته sysstat میتوانید از سه دستور vmstat و iostat و sar استفاده کنید که ابزارهایی جهت مانیتورینگ و بررسی کارایی و پرفورمنس سیستم شما می باشد. اگر آن را روی سیستم خود نصب ندارید میتوانید با نصب بسته sysstat آن را نصب کنید. این دستور برای سیستم های شبه یونیکس مانند linux، unix، FreeBSD و Solaris کاربرد دارد. شما با استفاده از نصب این بسته قادر خواهید بود گزارش هایی از cpu سرور خود داشته باشید.
نصب بسته sysstat
1 2 3 |
root@arshatech:~# apt-get install sysstat # Used for debian based distros like debian and ubuntu root@arshatech:~# yum install sysstat # User for redhat base distros like rehl and centos |
دستور vmstat
vmstat دستوری جهت مانیتورینگ پردازش ها، حافظه memory و چیزهایی شبیه این می باشد.
نمایش حافظه فعال و غیر فعال
در مثال زیر شش ستون اصلی وجود دارد. اطلاعات اصلی که شما میتوانید در این دستور از آن ها استفاده کنید مربوط به سه پارامتر زیر میباشد:
1 2 3 4 |
root@arshatech:~# vmstat procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 996 652684 198516 954436 0 0 55 34 287 1098 11 2 85 2 0 |
- free: نمایش میزان حافظه آزاد یا بلا استفاده
- si: نمایش میزان ترافیک ورودی به حافظه swap بر حسب کیلو بایت
- so: نمایش میزان ترافیک خروجی از حافظه swap بر حسب کیلو بایت
اگر شما از این دستور بدن کمک گرفتن از هیچ سوئیچی استفاده کنید و آن را به صورت پیش فرض به اجرا در بیاورید خروجی دریافتی شما گزارشی از وضعیت حافظه از زمان بوت شدن سیستم خواهد بود.
گرفتن گزارش به ازای هر x ثانیه و به تعداد n بار
شما میتوانید از وضعیت حافظه سیستم خود به ازای هر x ثانیه و به تعداد n بار گزارش دریافت کنید. در مثال زیر گزارشی از وضعیت حافظه را به ازای هر ۲ ثانیه و به تعداد ۶ مرتبه به نمایش در آمده است:
1 2 3 4 5 6 7 8 |
root@arshatech:~# vmstat 2 5 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 2 0 996 508784 198892 949048 0 0 53 33 286 1099 11 2 85 2 0 0 0 996 509776 198900 949048 0 0 0 18 600 2029 4 1 93 1 0 0 0 996 507792 198900 949048 0 0 0 0 934 3285 7 2 91 1 0 1 0 996 508784 198900 949048 0 0 0 0 547 1878 4 1 95 1 0 1 0 996 508040 198900 949048 0 0 0 0 602 2039 4 1 94 0 0 |
نمایش آمار رخدادهای حافظه
اگر شما از سوئیچ ‘s-‘ جهت اجرای دستور استفاده کنید در خروجی شاهد نمایش اطلاعات آماری از رخدادهای متنوعی از سیستم خود خواهید بود که شامل اطلاعات مفیدی پیرامون memory و cpu ماشین شما خواهد بود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
root@arshatech:~# vmstat -s 4024420 K total memory 3554684 K used memory 2376296 K active memory 828448 K inactive memory 469736 K free memory 199036 K buffer memory 944992 K swap cache 7811068 K total swap 996 K used swap 7810072 K free swap 259264 non-nice user cpu ticks 2181 nice user cpu ticks 57126 system cpu ticks 2073766 idle cpu ticks 52180 IO-wait cpu ticks 2 IRQ cpu ticks 614 softirq cpu ticks 0 stolen cpu ticks 1272678 pages paged in 778752 pages paged out 8 pages swapped in 249 pages swapped out 6951631 interrupts 26869237 CPU context switches 1529067300 boot time 5905 forks |
نمایش اطلاعات مربوط به دیسک
با استفاده از سوئیچ ‘d-‘ میتوانید اطلاعاتی از تمامی دیسک های سیستم خود دریافت نمائید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
root@arshatech:~# vmstat -d disk- ------------reads------------ ------------writes----------- -----IO------ total merged sectors ms total merged sectors ms cur sec ram0 0 0 0 0 0 0 0 0 0 0 ram1 0 0 0 0 0 0 0 0 0 0 ram2 0 0 0 0 0 0 0 0 0 0 ram3 0 0 0 0 0 0 0 0 0 0 ram4 0 0 0 0 0 0 0 0 0 0 ram5 0 0 0 0 0 0 0 0 0 0 ram6 0 0 0 0 0 0 0 0 0 0 ram7 0 0 0 0 0 0 0 0 0 0 ram8 0 0 0 0 0 0 0 0 0 0 ram9 0 0 0 0 0 0 0 0 0 0 ram10 0 0 0 0 0 0 0 0 0 0 ram11 0 0 0 0 0 0 0 0 0 0 ram12 0 0 0 0 0 0 0 0 0 0 ram13 0 0 0 0 0 0 0 0 0 0 ram14 0 0 0 0 0 0 0 0 0 0 ram15 0 0 0 0 0 0 0 0 0 0 loop0 0 0 0 0 0 0 0 0 0 0 loop1 0 0 0 0 0 0 0 0 0 0 loop2 0 0 0 0 0 0 0 0 0 0 loop3 0 0 0 0 0 0 0 0 0 0 loop4 0 0 0 0 0 0 0 0 0 0 loop5 0 0 0 0 0 0 0 0 0 0 loop6 0 0 0 0 0 0 0 0 0 0 loop7 0 0 0 0 0 0 0 0 0 0 sda 64695 16757 2522276 2222772 33400 40854 1646784 891672 0 386 sr0 0 0 0 0 0 0 0 0 0 0 sdb 0 0 0 0 0 0 0 0 0 0 |
نمایش آمارها با فرمت مگابایت
خروجی این دستور به صورت پیش فرض به صورت کیلوبایت بوده و در صورتی که بخواهید خروجی را در قالب مگابایت دریافت نمائید میتوانید از سوئیچ ‘S-‘ (حرف بزرگ) و حرف M (حرف بزرگ) استفاده نمائید. در مثال زیر خروجی هر ۳ ثانیه یک بار و به تعداد ۶ مرتبه در فرمت مگابایت نمایش داده میشود:
1 2 3 4 5 6 7 8 9 |
root@arshatech:~# vmstat -S M 3 6 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 2 0 0 495 195 922 0 0 47 31 278 1085 10 2 85 2 0 0 0 0 490 195 922 0 0 0 63 573 1408 4 1 94 2 0 0 0 0 487 195 922 0 0 0 0 453 1228 3 1 96 0 0 0 0 0 486 195 922 0 0 0 17 478 1305 3 1 95 1 0 0 0 0 484 195 922 0 0 0 0 446 1182 3 1 96 0 0 0 1 0 567 195 922 0 0 0 25 1040 1565 7 1 92 0 0 |
دستور iostat
این دستور اطلاعات مربوط به CPU و ورودی خروجی ها دیوایس ها و پارتیشن ها را نمایش میدهد.
نمایش آمار CPU و ورودی خروجی های مربوطه
این دستور در صورتی که بدون هیچ گونه سوئیچی مورد استفاده قرار بگیرد به طور مشخص اطلاعات مروبط به cpu و ورودی خروجی های مربوط به همه پارتیشن های سیستم را نمایش میدهد:
1 2 3 4 5 6 7 8 |
root@arshatech:~# iostat Linux 3.13.0-141-generic (Arshatech) 06/15/2018 _x86_64_ (4 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 6.15 0.05 1.75 7.13 0.00 84.93 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 38.58 914.67 83.76 801419 73388 |
نمایش اطلاعات مروبط به CPU به تنهایی
برای نمایش اطلاعات مربوط به cpu به تنهایی میتوانید از سوئیچ ‘c-‘ به صورت زیر استفاده کنید:
1 2 3 4 5 |
root@arshatech:~# iostat -c Linux 3.13.0-141-generic (Arshatech) 06/15/2018 _x86_64_ (4 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 6.49 0.04 1.82 6.46 0.00 85.19 |
نمایش ورودی خروجی های مروبط به پارتیشن ها به تنهایی
برای نمایش اطلاعات ورودی خروجی پارتیشن ها به تنهایی میتوانید از سوئیچ ‘d-‘ استفاده کنید:
1 2 3 4 5 |
root@arshatech:~# iostat -d Linux 3.13.0-141-generic (Arshatech) 06/15/2018 _x86_64_ (4 CPU) Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 32.31 751.98 72.88 802747 77800 |
نمایش ورودی خروجی های مربوط به دیوایس یا پارتیشنی خاص
برای نمایش اطلاعات ورودی خروجی پارتیشنی خاص با استفاده از سوئیچ ‘p-‘ به صورت زیر استفاده کنید:
1 2 3 4 5 6 7 8 9 10 11 12 |
root@arshatech:~# iostat -p /dev/sda Linux 3.13.0-141-generic (Arshatech) 06/15/2018 _x86_64_ (4 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 6.07 0.03 1.72 4.49 0.00 87.70 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 23.92 549.04 55.90 803491 81812 sda1 0.11 0.54 0.00 788 0 sda2 14.05 455.29 11.32 666293 16572 sda3 9.37 91.53 44.57 133949 65228 sda4 0.27 1.22 0.01 1785 12 |
همچنین در صورتی که هیچ پارتیشنی انتخاب نشود مقدار دقیق ترین از اطلاعات پارتیشن ها را خواهید دید:
1 2 3 4 5 6 7 8 9 10 11 12 |
root@arshatech:~# iostat -p Linux 3.13.0-141-generic (Arshatech) 06/15/2018 _x86_64_ (4 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 6.12 0.02 1.64 3.56 0.00 88.65 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 18.78 427.58 45.04 803567 84640 sda1 0.09 0.42 0.00 788 0 sda2 11.00 354.53 9.25 666293 17392 sda3 7.39 71.31 35.78 134025 67236 sda4 0.21 0.95 0.01 1785 12 |
نمایش اطلاعات ورودی خروجی پارتیشن های LVM
برای نمایش اطلاعات ورودی خروجی پارتیشن های lvm میتوانید از سوئیچ ‘N-‘ (حرف بزرگ) به صورت زیر استفاده کنید.
1 2 3 4 5 6 7 8 |
root@arshatech:~# iostat -N Linux 3.13.0-141-generic (arshatech) 06/15/2018 _x86_64_ (4 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 89.82 0.00 2.69 1.60 0.02 5.88 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 3.20 142.84 12.16 1086002 92466 vg_tecmint-lv_root 5.13 141.68 12.16 1077154 92448 vg_tecmint-lv_swap 0.04 0.34 0.00 2576 0 |
دستور mpstat
یکی دیگر از دستورات قابل استفاده ارائه شده توسط بسته sysstat دستور mpstat می باشد.
نمایش فعالیت های cpu
برای اینکه به صورت کلی وضعیت فعالیت cpu سرور خود را مشاهده کنید از این دستور بدون هیچ سوئیچی میتوانید استفاده کنید:
1 2 3 4 5 |
root@arshatech:~# mpstat Linux 3.13.0-141-generic (arshatech) 06/16/2018 _x86_64_ (4 CPU) 04:26:56 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 04:26:56 AM all 9.68 0.07 2.40 1.81 0.00 0.02 0.00 0.00 0.00 86.02 |
اگر میخواهید اطلاعات مربوط به همه ی cpu های سیستم خود را یکجا ببینید میتوانید از سوئیچ ‘P-‘ (حرف بزرگ) به صورت زیر استفاده کنید:
1 2 3 4 5 6 7 8 9 |
root@arshatech:~# mpstat -P ALL Linux 3.13.0-141-generic (arshatech) 06/16/2018 _x86_64_ (4 CPU) 04:28:56 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 04:28:56 AM all 9.69 0.07 2.40 1.79 0.00 0.02 0.00 0.00 0.00 86.03 04:28:56 AM 0 9.81 0.10 3.53 2.91 0.00 0.04 0.00 0.00 0.00 83.61 04:28:56 AM 1 10.09 0.10 2.40 2.62 0.00 0.03 0.00 0.00 0.00 84.77 04:28:56 AM 2 9.52 0.07 1.87 0.87 0.00 0.00 0.00 0.00 0.00 87.68 04:28:56 AM 3 9.34 0.02 1.82 0.80 0.00 0.00 0.00 0.00 0.00 88.02 |
همچنین اگر میخواهید اطلاعات هر cpu را به صورت تفکیک شده ببینید به صورت زیر عمل کنید. در این مثال ما میخواهیم اطلاعات مربوط به cpu شماره صفر را مشاهده کنیم:
1 2 3 4 5 |
root@arshatech:~# mpstat -P 0 Linux 3.13.0-141-generic (arshatech) 06/16/2018 _x86_64_ (4 CPU) 04:30:22 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 04:30:22 AM 0 9.83 0.10 3.52 2.89 0.00 0.04 0.00 0.00 0.00 83.62 |
همچنین شما میتوانید از الگوی نمایش اطلاعات به ازای هر x ثانیه و به تعداد n بار نیز به صورت زیر برای همه cpu ها یا هر cpu به صورت تفکیکی استفاده کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
root@arshatech:~# mpstat -P ALL 1 3 Linux 3.13.0-141-generic (arshatech) 06/16/2018 _x86_64_ (4 CPU) 04:35:35 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 04:35:36 AM all 2.78 0.00 0.25 0.00 0.00 0.00 0.00 0.00 0.00 96.97 04:35:36 AM 0 2.02 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 97.98 04:35:36 AM 1 5.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 94.00 04:35:36 AM 2 2.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 97.00 04:35:36 AM 3 2.04 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 97.96 04:35:36 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 04:35:37 AM all 1.52 0.00 0.51 1.27 0.00 0.00 0.00 0.00 0.00 96.71 04:35:37 AM 0 0.00 0.00 2.00 0.00 0.00 0.00 0.00 0.00 0.00 98.00 04:35:37 AM 1 5.00 0.00 0.00 6.00 0.00 0.00 0.00 0.00 0.00 89.00 04:35:37 AM 2 1.02 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 98.98 04:35:37 AM 3 1.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.00 04:35:37 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 04:35:38 AM all 5.39 0.00 2.21 3.43 0.00 0.00 0.00 0.00 0.00 88.97 04:35:38 AM 0 3.03 0.00 1.01 0.00 0.00 0.00 0.00 0.00 0.00 95.96 04:35:38 AM 1 7.77 0.00 3.88 13.59 0.00 0.00 0.00 0.00 0.00 74.76 04:35:38 AM 2 3.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 97.00 04:35:38 AM 3 7.62 0.00 3.81 0.00 0.00 0.00 0.00 0.00 0.00 88.57 Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle Average: all 3.25 0.00 1.00 1.58 0.00 0.00 0.00 0.00 0.00 94.16 Average: 0 1.68 0.00 1.01 0.00 0.00 0.00 0.00 0.00 0.00 97.32 Average: 1 5.94 0.00 1.65 6.60 0.00 0.00 0.00 0.00 0.00 85.81 Average: 2 2.01 0.00 0.34 0.00 0.00 0.00 0.00 0.00 0.00 97.65 Average: 3 3.63 0.00 1.32 0.00 0.00 0.00 0.00 0.00 0.00 95.05 |
در این مثال به ازای هر ۱ ثانیه و به تعداد ۳ بار درخواست گزارش از سیستم شده است.
دستور pidstat
این دستور برای نمایش پروسه های اجرای روی سرور استفاده میشود.
نمایش همه پردازش های فعال
اگر از این دستور بدون کمک گرفتن از سوئیچ ها استفاده کنید به طور پیش فرض به شما لیستی از همه پردازش های فعال در سیستم را نمایش میدهد:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
root@arshatech:~# pidstat Linux 3.13.0-141-generic (arshatech) 06/16/2018 _x86_64_ (4 CPU) 05:04:00 AM UID PID %usr %system %guest %CPU CPU Command 05:04:00 AM 0 1 0.01 0.01 0.00 0.02 2 init 05:04:00 AM 0 3 0.00 0.00 0.00 0.00 0 ksoftirqd/0 05:04:00 AM 0 7 0.00 0.07 0.00 0.07 2 rcu_sched 05:04:00 AM 0 8 0.00 0.04 0.00 0.04 1 rcuos/0 05:04:00 AM 0 9 0.00 0.02 0.00 0.02 0 rcuos/1 05:04:00 AM 0 10 0.00 0.02 0.00 0.02 0 rcuos/2 05:04:00 AM 0 11 0.00 0.02 0.00 0.02 0 rcuos/3 05:04:00 AM 0 41 0.00 0.02 0.00 0.02 0 migration/0 05:04:00 AM 0 42 0.00 0.00 0.00 0.00 0 watchdog/0 05:04:00 AM 0 43 0.00 0.00 0.00 0.00 1 watchdog/1 05:04:00 AM 0 44 0.00 0.00 0.00 0.00 1 migration/1 |
اگر میخواهید همه پردازش های فعال و غیر فعال در کنار هم برای شما به نمایش در بیایند از سوئیچ ‘p-‘ (حرف کوچک) به صورت زیر استفاده کنید:
1 2 3 4 5 6 7 8 9 10 11 12 |
root@arshatech:~# pidstat -p ALL Linux 3.13.0-141-generic (arshatech) 06/16/2018 _x86_64_ (4 CPU) 05:05:39 AM UID PID %usr %system %guest %CPU CPU Command 05:05:39 AM 0 1 0.01 0.01 0.00 0.02 2 init 05:05:39 AM 0 2 0.00 0.00 0.00 0.00 1 kthreadd 05:05:39 AM 0 3 0.00 0.00 0.00 0.00 0 ksoftirqd/0 05:05:39 AM 0 5 0.00 0.00 0.00 0.00 0 kworker/0:0H 05:05:39 AM 0 7 0.00 0.07 0.00 0.07 3 rcu_sched 05:05:39 AM 0 8 0.00 0.04 0.00 0.04 3 rcuos/0 05:05:39 AM 0 9 0.00 0.02 0.00 0.02 0 rcuos/1 05:05:39 AM 0 10 0.00 0.02 0.00 0.02 1 rcuos/2 |
شما میتوانید با استفاده از سوئیچ ‘d-‘ (حرف کوچک) خروجی های مربوطه را به ازای زمان های مورد نیاز و دفعاتی که مد نظر دارید به روز رسانی کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
root@arshatech:~# pidstat -d 2 5 Linux 3.13.0-141-generic (arshatech) 06/16/2018 _x86_64_ (4 CPU) 05:11:09 AM UID PID kB_rd/s kB_wr/s kB_ccwr/s Command 05:11:11 AM 101 831 0.00 3.94 0.00 rsyslogd 05:11:11 AM 1000 5462 0.00 1.97 0.00 bash 05:11:11 AM UID PID kB_rd/s kB_wr/s kB_ccwr/s Command 05:11:13 AM 0 195 0.00 12.00 0.00 jbd2/sda2-8 05:11:13 AM 1000 4767 0.00 2.00 0.00 gnome-terminal 05:11:13 AM UID PID kB_rd/s kB_wr/s kB_ccwr/s Command 05:11:15 AM UID PID kB_rd/s kB_wr/s kB_ccwr/s Command 05:11:17 AM UID PID kB_rd/s kB_wr/s kB_ccwr/s Command Average: UID PID kB_rd/s kB_wr/s kB_ccwr/s Command Average: 0 195 0.00 2.39 0.00 jbd2/sda2-8 Average: 101 831 0.00 0.80 0.00 rsyslogd Average: 1000 4767 0.00 0.40 0.00 gnome-terminal Average: 1000 5462 0.00 0.40 0.00 bash |
در انتها نیز آمار متوسط منابع استفاده شده را به شما نمایش میدهد.
شما میتوانید با استفاده از سوئیچ هایی که همراه با دستور pidstat قابل استفاده هستند آمار مربوط به cpu را که توسط یک پروسه خاص ایجاد شده است را با جزئیات نیز دریافت کنید. برای این کار به صورت زیر عمل کنید:
1 2 3 4 5 6 7 8 9 10 11 12 |
root@arshatech:~# pidstat -t -p 3103 2 4 Linux 3.13.0-141-generic (arshatech) 06/16/2018 _x86_64_ (4 CPU) 08:42:25 AM UID TGID TID %usr %system %guest %CPU CPU Command 08:42:27 AM 1000 3103 - 0.00 0.00 0.00 0.00 0 firefox 08:42:27 AM 1000 - 3103 0.00 0.00 0.00 0.00 0 |__firefox 08:42:27 AM 1000 - 3111 0.00 0.00 0.00 0.00 0 |__dconf 08:42:27 AM 1000 - 3112 0.00 0.00 0.00 0.00 1 |__gdbus 08:42:27 AM 1000 - 3113 0.00 0.00 0.00 0.00 1 |__Gecko_IOThread 08:42:27 AM 1000 - 3114 0.00 0.00 0.00 0.00 2 |__Timer 08:42:27 AM 1000 - 3115 0.00 0.00 0.00 0.00 0 |__Link 08:42:27 AM 1000 - 3116 0.00 0.00 0.00 0.00 0 |__Socket |
شما با استفاده از سوئیچ های ‘rh-‘ (حروف کوچک) نیز میتوانید میزان مصرف حافظه که هر پروسه به خود اختصاص میدهد را به طور دقیق مشاهده کنید:
1 2 3 4 5 6 7 |
root@arshatech:~# pidstat -rh 2 3 Linux 3.13.0-141-generic (arshatech) 06/16/2018 _x86_64_ (4 CPU) # Time UID PID minflt/s majflt/s VSZ RSS %MEM Command 1529153266 0 1147 2.96 0.00 265888 33852 0.84 Xorg 1529153266 1000 3103 0.99 0.00 2487032 422760 10.50 firefox 1529153266 0 23136 251.23 0.00 11820 1212 0.03 pidstat |
دستور sar
این دستور برای جمع آوری فعالیت های سیستم و ارائه گزارش یا ذخیره سازی آن استفاده میشود و ابزار بسیار مناسبی جهت مانیتورینگ سرورهای شما می باشد. این دستور برای گزارش گیری کلی از بازدهی سرور شما نمایش میدهد. sar با کنترل و بررسی دقیق بلاک های ورودی و خروجی به خوبی میتواند نقاط حساسی را که موجب بروز مشکلاتی برای سرور شما میشود را تشخیص و آن ها را به شما گزارش کند.
شما میتوانید دستورات زمانی مورد نظر خود را به sar جهت بررسی در وقت های مشخصی بدهید.
دستور زیر یکی از روش های ساده برای دریافت گزارش از وضعیت سرور شماست که با سوئیچ ‘u-‘ (حرف کوچک) اطلاعات مربوط به cpu به شما داده میشود. همچنین شما میتوانید خروجی بررسی خود را در یک فایل به نام sar-output در مسیر دلخواه خود ذخیره کنید.
1 2 3 4 5 6 7 8 9 10 |
root@arshatech:~# sar -u -o /var/log/sar-output 2 5 Linux 3.13.0-141-generic (arshatech) 06/16/2018 _x86_64_ (4 CPU) 09:03:41 AM CPU %user %nice %system %iowait %steal %idle 09:03:43 AM all 4.28 0.00 0.76 1.76 0.00 93.20 09:03:45 AM all 5.86 0.00 2.04 0.89 0.00 91.21 09:03:47 AM all 5.27 0.00 1.13 1.51 0.00 92.10 09:03:49 AM all 6.91 0.00 1.01 0.75 0.00 91.33 09:03:51 AM all 4.39 0.00 1.51 0.75 0.00 93.35 Average: all 5.34 0.00 1.28 1.13 0.00 92.24 |
یکی از کارهایی که میتواند خیلی به شما کمک بکند لاگ گرفتن از این رخداد ها به صورت خودکار است. همراه با نصب بسته sysstat دو اسکریپت به زبان bash تحت عنوان sa1 و sa2 در سیستم شما بوجود می آید که میتوانید از آن ها برای بررسی وضعیت سرور خود به صورت خودکار و با کمک گرفتن از کرون جاب ها(cronjobs) استفاده کنید.
این اسکریپت ها میتوانند در یکی از دو مسیر زیر یافت شوند. اگر در مسیرهای ذکر شده پیدا نشد با استفاده از دستور find آن ها را بیابید:
- usr/local/lib/sa1/
- usr/local/lib/sa2/
- usr/lib/sysstat/sa1/
- usr/lib/sysstat/sa2/
همانطور که گفتیم شما میتوانید از cron جهت انجام عملیات به صورت خودکار بهره ببرید.
خط زیر جهت جمع آوری گزارش ها به ازای هر ده دقیقه استفاده میشود:
1 |
*/2 * * * * /usr/lib/sysstat/sa1 2 10 |
همچنین در ادامه میتوانید از خط زیر برای ایجاد گزارش در فایل با فرمت به اصطلاح human readable راس ساعت ۱۲ شب و روزانه استفاده کنید:
1 |
59 23 * * * /usr/lib/sysstat/sa2 -A |
اسکریپت ها چه وظایفی بر عهده دارند؟
- sa1: این اسکریپت وظیفه فراخوانی اسکریپت sadc یا همان System Activity Data Collector را جهت جمع آوری منظم گزارش ها بر عهده دارد
- sa2: این اسکریپت نیز وظیفه تبدیل گزارش ها از فرمت باینری را به فرمت human readable بر عهده دارد
تمامی لاگ های ایجاد شده در مسیر زیر قابل دسترسی خواهند بود:
1 |
/var/log/sysstat/ |
اگر تعداد لاگ های سیستم شما زیاد شده است و میخواهید لاگهای مربوط به همان روز را مشاهده کنید میتوانید به صورت زیر اقدام نمائید:
1 |
root@arshatech:~# sar -f /var/log/sysstat/sa$(date +%d) |
همچنین اگر میخواهید لاگ های مربوط به روز گذشته سیستم را ببینید از دستور زیر استفاده کنید:
1 |
root@arshatech:~# sar -f /var/log/sysstat/sa$(date +%d -d yesterday) |
حال برای اینکه شما بتوانید محتویات فایل را در هر زمان که بخواهید مطالعه کنید با استفاده از سوئیچ ‘f-‘ (حرف کوچک) میتوانید این کار را انجام دهید:
1 2 3 4 5 6 7 8 9 10 |
root@arshatech:~# sar -f /var/log/sar-output Linux 3.13.0-141-generic (arshatech) 06/16/2018 _x86_64_ (4 CPU) 09:03:41 AM CPU %user %nice %system %iowait %steal %idle 09:03:43 AM all 4.28 0.00 0.76 1.76 0.00 93.20 09:03:45 AM all 5.86 0.00 2.04 0.89 0.00 91.21 09:03:47 AM all 5.27 0.00 1.13 1.51 0.00 92.10 09:03:49 AM all 6.91 0.00 1.01 0.75 0.00 91.33 09:03:51 AM all 4.39 0.00 1.51 0.75 0.00 93.35 Average: all 5.34 0.00 1.28 1.13 0.00 92.24 |
جهت مشاهده گزارش load average در سیستم خود میتوانید از سوئیچ ‘q-‘ نیز استفاده کنید:
1 2 3 4 5 6 7 8 |
root@arshatech:~# sar -q 2 3 Linux 3.13.0-141-generic (arshatech) 06/16/2018 _x86_64_ (4 CPU) 09:09:09 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked 09:09:11 AM 2 600 1.49 0.88 0.60 1 09:09:13 AM 0 599 1.49 0.88 0.60 1 09:09:15 AM 0 599 1.49 0.88 0.60 1 Average: 1 599 1.49 0.88 0.60 1 |
شما همچنین میتوانید با استفاده از سوئیچ ‘F-‘ (حرف بزرگ) اطلاعات مربوط به دیوایس های مونت شده روی سرور خود را مانیتور کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
root@arshatech:~# sar -F 2 3 Linux 3.13.0-141-generic (arshatech) 06/16/2018 _x86_64_ (4 CPU) 09:12:08 AM MBfsfree MBfsused %fsused %ufsused Ifree Iused %Iused FILESYSTEM 09:12:10 AM 86283 7458 7.96 13.06 5772551 338681 5.54 /dev/sda2 09:12:10 AM 77842 15899 16.96 22.06 5981143 130089 2.13 /dev/sda3 09:12:10 AM 83858 321664 79.32 84.41 26269172 109068 0.41 /dev/sda4 09:12:10 AM MBfsfree MBfsused %fsused %ufsused Ifree Iused %Iused FILESYSTEM 09:12:12 AM 86283 7458 7.96 13.06 5772551 338681 5.54 /dev/sda2 09:12:12 AM 77842 15899 16.96 22.06 5981143 130089 2.13 /dev/sda3 09:12:12 AM 83858 321664 79.32 84.41 26269172 109068 0.41 /dev/sda4 09:12:12 AM MBfsfree MBfsused %fsused %ufsused Ifree Iused %Iused FILESYSTEM 09:12:14 AM 86283 7458 7.96 13.06 5772551 338681 5.54 /dev/sda2 09:12:14 AM 77842 15899 16.96 22.06 5981143 130089 2.13 /dev/sda3 09:12:14 AM 83858 321664 79.32 84.41 26269172 109068 0.41 /dev/sda4 Summary MBfsfree MBfsused %fsused %ufsused Ifree Iused %Iused FILESYSTEM Summary 86283 7458 7.96 13.06 5772551 338681 5.54 /dev/sda2 Summary 77842 15899 16.96 22.06 5981143 130089 2.13 /dev/sda3 Summary 83858 321664 79.32 84.41 26269172 109068 0.41 /dev/sda4 |
یکی دیگر از سوئیچ های قابل استفاده با این دستور ‘n-‘ (حرف کوچک) می باشد. این سوئیچ جهت نمایش اطلاعات مربوط به شبکه است. اگر شما از عبارت ALL برای آن استفاده کنید خروجی مربوط به همه کلیدواژه هایی خواهد بود که برای این سوئیچ تعریف شده است. در مثال زیر ما از کلید واژه ی DEV جهت نمایش اطلاعات شبکه از اینترفیس های سیستم استفاده میکنیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
root@arshatech:~# sar -n DEV 2 1 Linux 3.13.0-141-generic (arshatech) 06/16/2018 _x86_64_ (4 CPU) 09:19:04 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil 09:19:06 AM vmnet8 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 09:19:06 AM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 09:19:06 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 09:19:06 AM wlan0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 09:19:06 AM vmnet1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil Average: vmnet8 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: wlan0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: vmnet1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 |
شما میتوانید از سوئیچ ‘d-‘ (حرف کوچک) نیز مانند دستور iostat جهت مشاهده گزارش ورودی خروجی های بلاک دیوایس های سیستم خود به صورت زیر استفاده کنید:
1 2 3 4 5 6 7 8 |
root@arshatech:~# sar -d 2 1 Linux 3.13.0-141-generic (arshatech) 06/16/2018 _x86_64_ (4 CPU) 09:21:23 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 09:21:25 AM dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util Average: dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 |
اگر شما بخواهید اطلاعات مربوط به memory را مشاده کنید باید از سوئیچ ‘r-‘ (حرف کوچک) بهره ببرید. نحوه استفاده از آن به صورت زیر می باشد:
1 2 3 4 5 6 7 8 |
root@arshatech:~# sar -r 2 3 Linux 3.13.0-141-generic (arshatech) 06/16/2018 _x86_64_ (4 CPU) 09:25:11 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty 09:25:13 AM 632552 3391868 84.28 417484 826216 5975000 50.48 2156672 849684 56 09:25:15 AM 636048 3388372 84.20 417484 826216 5975000 50.48 2153264 849684 56 09:25:17 AM 633628 3390792 84.26 417484 826216 5975000 50.48 2155032 849684 56 Average: 634076 3390344 84.24 417484 826216 5975000 50.48 2154989 849684 56 |