Performance Tuning

Performance Tuning سرور؛ چطور سرعت و پایداری سیستم را چندبرابر کنیم؟

اشتراک گذاری در شبکه های اجتماعی

هیچ چیز برای کاربران آزاردهنده‌تر از یک سرور کند نیست. سروری که پاسخ‌دهی آن چند ثانیه طول بکشد، حتی اگر سخت‌افزار قدرتمندی داشته باشد، در عمل کارایی لازم را نخواهد داشت. در دنیای امروز که هر میلی‌ثانیه اهمیت دارد، Performance Tuning یا بهینه‌سازی عملکرد سرور یکی از کلیدی‌ترین مهارت‌های یک مدیر سیستم محسوب می‌شود.

هدف Performance Tuning این است که از منابع موجود — اعم از CPU، RAM، Disk و Network — بیشترین کارایی ممکن گرفته شود بدون اینکه هزینه اضافی بابت ارتقا سخت‌افزار پرداخت شود.
در این مقاله از نوین هاست یاد می‌گیرید چگونه با مجموعه‌ای از تنظیمات دقیق، سرور خود را تا چند برابر سریع‌تر و پایدارتر کنید.

Performance Tuning چیست؟

Performance Tuning مجموعه‌ای از تنظیمات و تغییرات نرم‌افزاری است که با هدف افزایش سرعت، پایداری و کارایی سرور انجام می‌شود.
این فرآیند می‌تواند شامل اصلاح کرنل، بهینه‌سازی سرویس‌ها، مدیریت حافظه و یا تنظیم شبکه باشد.

تفاوت Tuning با Optimization:

  • Optimization معمولاً در سطح نرم‌افزار (مثلاً تنظیم MySQL) انجام می‌شود.
  • Tuning شامل تنظیمات سیستمی و زیرساختی است که روی کل سرور تأثیر می‌گذارد.

به بیان ساده، Performance Tuning یعنی فشار کمتر، سرعت بیشتر.

چرا Performance Tuning مهم است؟

حتی قدرتمندترین سرورها بدون تنظیم مناسب می‌توانند کند و ناپایدار شوند.
دلایل اصلی اهمیت Tuning:

  • افزایش سرعت پاسخ‌دهی تا چند برابر
  • کاهش بار CPU و مصرف RAM
  • جلوگیری از Bottleneck در Disk یا Network
  • کاهش هزینه‌های زیرساخت با استفاده بهینه از منابع
  • افزایش رضایت کاربران نهایی و SEO سایت‌ها

ابزارهای پایه برای بررسی عملکرد

قبل از اعمال تغییرات، باید بدانیم گلوگاه سیستم کجاست. ابزارهای زیر برای تحلیل عملکرد حیاتی‌اند:

ابزارکاربرد
htopنمایش زنده مصرف CPU و RAM
iostatتحلیل ورودی/خروجی دیسک
vmstatمشاهده وضعیت حافظه و پردازش‌ها
sarثبت داده‌های عملکرد در زمان طولانی
glancesمانیتورینگ جامع CPU، RAM، I/O، Network

بخش اول: بهینه‌سازی سیستم‌عامل (OS Level Tuning)

۱. به‌روزرسانی کرنل و پکیج‌های حیاتی

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

# برای AlmaLinux / CentOS
sudo dnf update -y

# برای Ubuntu / Debian
sudo apt update && sudo apt upgrade -y

۲. انتخاب Scheduler مناسب برای CPU و Disk

Scheduler مسئول مدیریت صف پردازش‌ها است. انتخاب نوع درست آن می‌تواند عملکرد I/O را متحول کند.

برای مشاهده‌ی Scheduler فعلی:

cat /sys/block/sda/queue/scheduler

پیشنهاد:

  • Deadline برای SSDها
  • BFQ یا MQ-Deadline برای سرورهای با بار IO بالا

۳. تنظیم فایل sysctl.conf برای Memory و Network

این فایل قلب تنظیمات سیستم است. برخی پارامترهای کلیدی:

vm.swappiness = 10
vm.vfs_cache_pressure = 50
fs.file-max = 2097152
net.core.somaxconn = 1024
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_window_scaling = 1

اعمال تنظیمات:

sudo sysctl -p

🔸 این تغییرات باعث افزایش سرعت شبکه، کاهش مصرف حافظه و بهبود مدیریت فایل‌ها می‌شود.

۴. حذف سرویس‌های غیرضروری

هر سرویس غیرضروری در حال اجرا، بخشی از CPU و RAM را مصرف می‌کند.
برای شناسایی آن‌ها:

systemd-analyze blame

سپس غیرفعال‌سازی:

sudo systemctl disable bluetooth cups avahi-daemon

بخش دوم: بهینه‌سازی CPU

۱. مدیریت اولویت فرآیندها با Nice و Renice

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

nice -n 10 ./backup.sh

برای تغییر اولویت فرآیند در حال اجرا:

sudo renice +5 -p 1234

۲. فعال‌سازی حالت Performance Governor

حالت Performance باعث می‌شود CPU همیشه در حداکثر فرکانس کار کند.

sudo cpupower frequency-set -g performance

برای بررسی:

cpupower frequency-info

۳. استفاده از Cgroups برای کنترل منابع

Cgroups به شما اجازه می‌دهد برای هر سرویس، میزان CPU و RAM مشخصی تعیین کنید:

sudo cgcreate -g cpu,memory:/limited
sudo cgset -r cpu.shares=512 limited
sudo cgset -r memory.limit_in_bytes=512M limited

بخش سوم: بهینه‌سازی حافظه (RAM & Swap)

۱. تنظیم Swappiness

Swappiness تعیین می‌کند سیستم چقدر از Swap استفاده کند.
مقدار پیشنهادی برای سرورهای با RAM زیاد:

sudo sysctl vm.swappiness=10

۲. فعال‌سازی ZRAM یا ZSWAP

ZRAM بخشی از RAM را برای فشرده‌سازی داده‌ها استفاده می‌کند:

sudo dnf install zram-generator -y
sudo systemctl enable zram-generator

نتیجه: عملکرد سریع‌تر در زمان کمبود حافظه فیزیکی.

۳. پاک‌سازی حافظه Cache

برای آزادسازی حافظه کش:

sync; echo 3 > /proc/sys/vm/drop_caches

بخش چهارم: بهینه‌سازی Disk I/O

۱. بررسی عملکرد دیسک

iostat -xm 5
ioping /

اگر دیسک درگیر است، زمان پاسخ‌گویی سیستم افزایش می‌یابد.

۲. انتخاب File System مناسب

  • EXT4 برای پایداری
  • XFS برای کارایی بالا در فایل‌های بزرگ
  • Btrfs برای Snapshot و Volume Management

۳. استفاده از Mount Options

افزودن پارامترهای زیر در /etc/fstab:

noatime,nodiratime,discard

باعث کاهش I/O و افزایش سرعت SSD می‌شود.

۴. Write Back Cache

برای SSD فعال کنید:

sudo hdparm -W1 /dev/sda

بخش پنجم: بهینه‌سازی شبکه (Network Tuning)

۱. افزایش Connection Limit

در فایل /etc/security/limits.conf:

* soft nofile 100000
* hard nofile 100000

۲. تنظیم TCP Stack

پارامترهای زیر برای کاهش Latency:

net.ipv4.tcp_rmem = 4096 87380 6291456
net.ipv4.tcp_wmem = 4096 16384 4194304
net.ipv4.tcp_fin_timeout = 10

۳. فعال‌سازی TCP Fast Open

برای کاهش زمان Handshake:

net.ipv4.tcp_fastopen = 3

۴. استفاده از ابزار تست شبکه

iperf3 -s    # روی سرور
iperf3 -c IP # روی کلاینت

بخش ششم: بهینه‌سازی سرویس‌ها

۱. Apache / Nginx

در Nginx:

worker_processes auto;
worker_connections 4096;
keepalive_timeout 15;

در Apache:

KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5

۲. MySQL / MariaDB

در فایل /etc/my.cnf:

innodb_buffer_pool_size = 2G
query_cache_size = 128M
max_connections = 200

۳. PHP-FPM

در /etc/php-fpm.d/www.conf:

pm = dynamic
pm.max_children = 20
pm.start_servers = 5
pm.max_requests = 500

بخش هفتم: ابزارهای Benchmark و مانیتورینگ

برای سنجش اثر تغییرات:

ابزارکاربرد
ab (Apache Benchmark)تست تعداد درخواست‌ها
wrkتست همزمانی بالا
sysbenchتست CPU, I/O, DB
glancesمانیتورینگ بلادرنگ

نمونه تست:

ab -n 10000 -c 100 http://example.com/

بخش هشتم: اتوماسیون Tuning با Tuned و Ansible

۱. استفاده از Tuned Profiles

sudo dnf install tuned -y
sudo systemctl enable --now tuned
sudo tuned-adm profile throughput-performance

پروفایل‌های آماده برای موارد مختلف وجود دارد:

  • balanced
  • latency-performance
  • throughput-performance

۲. تنظیم خودکار با Ansible

می‌توانید فایل playbook بنویسید که روی تمام سرورها تغییرات را اعمال کند.

بخش نهم: اشتباهات رایج در Performance Tuning

  1. تغییر تنظیمات بدون Backup
  2. استفاده از مقادیر بیش از حد بالا برای Cache یا Threads
  3. غیرفعال کردن Swap یا SELinux بدون دلیل
  4. اعمال تنظیمات عمومی بدون شناخت Workload
  5. نداشتن ابزار مانیتورینگ لحظه‌ای

جمع‌بندی

Performance Tuning یعنی شناخت دقیق رفتار سیستم و اعمال تغییرات هدفمند.
درست مانند تیون‌کردن موتور خودرو، هر پیچ کوچک در تنظیمات می‌تواند تفاوت بزرگی در سرعت و پایداری ایجاد کند.

یک سرور بهینه، فقط سریع‌تر نیست — پایدارتر، مقاوم‌تر و اقتصادی‌تر است.
با اجرای تنظیمات این مقاله می‌توانید تا چند برابر سرعت و بهره‌وری سرور خود را افزایش دهید.

نوین هاست یار نوین شماست

در نوین هاست، ما بهینه‌سازی را بخشی از پیکربندی استاندارد می‌دانیم، نه گزینه اضافی. تمام سرورهای ابری و اختصاصی نوین هاست با پروفایل‌های Performance Tuned ارائه می‌شوند ، از بهینه‌سازی کرنل تا تنظیمات Nginx و MySQL برای حداکثر سرعت.

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

مطالب مرتبط