یکی از مهم‌ترین ویژگی‌های یک سرور Performance یا کارایی آن است. ممکن است بارها برایتان پیش آمده باشد که هنگام کار با یک سرور لینوکسی دستورها به‌کندی اجرا شوند یا کاربران‌تان از سرعت وب‌سایت/اپلیکیشنی که روی سرور راه‌اندازی کرده‌اید ناراضی باشند.

در این راهنما به بررسی ابزارهایی برای عیب‌یابی کارایی سرور لینوکس می‌پردازیم.

دستور top

دستور top برای نمایش دادن Processهای سرور و جزییات آن‌ها به‌شکل آنی استفاده می‌شود. خروجی این دستور به دو بخش تقسیم می‌شود: بخش بالایی اطلاعاتی کلی درباره‌ی سرور و منابع‌ آن در اختیارتان می‌گذارد و بخش پایینی لیست پروسه‌های در حال اجرا را نماش می‌دهد.

top

در خط اول خروجی می‌توانید زمان، Uptime، تعداد یوزرهایی که وارد سرور شده‌اند و میانگین Load سرور را مشاهده کنید. خط دوم تعداد تسک‌ها و وضعیت هر کدام را نمایش می‌دهد. خط سوم و چهارم اطلاعاتی کلی درباره‌ی مصرف CPU و RAM در اختیارتان می‌گذارد.

در بخش دوم جدولی شامل همه‌ی پروسه‌های در حال اجرا با جزییات آن‌ها مشاهده خواهید کرد که هر ستون بیان‌گر مقدار خاصی است:

  • PID: شناسه‌ی پروسه

  • USER: یوزری که پروسه با آن در حال اجراست

  • PR: اولویت پروسه

  • NI: مقدار nice پروسه

  • VIRT: مقدار حافظه‌ی مجازی که مصرف می‌کند

  • RES: مقدار حافظه‌ی فیزیکی که مصرف می‌کند

  • SHR: مقدار حافظه‌ی مشترک که مصرف می‌کند

  • S: وضعیت پروسه که شامل مقادیر زیر است:

    • D: توقف (Sleep) بی‌وقفه

    • R: در حال اجرا

    • S: متوقف (Sleep)

    • Z: زامبی

  • CPU%: درصد استفاده از CPU

  • MEM%: درصد استفاده از مموری

  • +TIME: مدت زمانی که پروسه از CPU استفاه کرده است

  • COMMAND: دستوری که این پروسه با آن در حال اجراست

دستور kill

با بررسی خروجی top ممکن است نیاز باشد یک پروسه که باعث مصرف بیش از حد منابع و کندی سرور شده است را متوقف کنید. برای این کار از دستور kill استفاده کنید:

kill 4592

گاهی ممکن است این دستور به تنهایی باعث پایان دادن به پروسه نشود و لازم باشد پروسه را وادار به خروج کنیم. برای این کار باید از سوییچ 9- استفاده کنیم:

kill -9 4592

دستور free

این دستور برای بررسی RAM سرور استفاده می‌شود. برای این کار کافی است دستور زیر را اجرا کنید:

free

خروجی این دستور اطلاعاتی درباره‌ی RAM و Swap با مقادیر زیر به شما نمایش داده می‌شود:

  • total: کل مقدار رم سرور

  • used: میزان رمی که پروسه‌های در حال اجرا در حال مصرف هستند

  • free: مقدار رمی که آزاد است و می‌تواند به پروسه‌های جدید تعلق بگیرد

  • shared: مقدار رمی که توسط فایل سیستم موقت tmpfs استفاده می‌شود

  • buff/cache: مقدار حافظه‌ای که کرنل برای کش کردن داده‌هایی که به‌تازگی استفاده شده‌اند مصرف می‌کند

  • available: مقدار حافظه‌ای که امکان استفاده از آن‌ها توسط پروسه‌های جدید و کش وجود دارد

می‌توانید از سوییچ‌های زیر برای نمایش خروجی به‌شکل دل‌خواهتان استفاده کنید:

  • h-: برای نمایش خروجی به‌شکل قابل فهم و همراه با واحد

  • m-: برای نمایش خروجی با واحد مگابایت

  • -g: برای نمایش خروجی با واحد گیگابایت

توجه داشته باشید که کرنل لینوکس حافظه Available را برای اختصاص به بافر و کش دیسک استفاده می‌کند و زمانی که سیستم به آن‌ها نیاز داشته باشد آن را آزاد می‌کند. بنابراین اگر خروجی دستور free نشان می‌دهد که حافظه‌ای در دسترس ندارید، ابتدا ستون buff/cache را بررسی کنید.

دستورهای df و du

دستور df برای بررسی فضای ذخیره‌سازی و دیسک سرور به‌ کمک شما می‌آید.

df -h

سوییچ h- برای نمایش خروجی به‌شکل ساده‌تر و با واحد اندازه‌گیری استفاده می‌شود.

در خروجی، می‌توانید جدولی با مقادیر زیر مشاهده کنید:

  • Filesystem: نام هر درایو

  • Size: اندازه‌ی هر درایو

  • Used: میزان دیسک استفاده‌شده توسط آن درایو

  • Avail: میزان دیسک آزاد در آن درایو

  • %Use: درصد استفاده‌شده از دیسک در آن درایو

  • Mounted on: دایرکتوری‌ای که درایو به آن مانت شده است

هم‌چنین دستور du برای بررسی میزان دیسک استفاده‌شده در هر دایرکتوری است:

du -hs

با مشخص کردن دایرکتوری برای du می‌توانید میزان دیسک مصرف‌شده توسط یک فایل یا یا دایرکتوری خاص را نیز بررسی کنید:

du -hs /etc