
به اشتراک بگذارید
آنچه در این مقاله میخوانید:
رفع مشکل لگ سرور مجازی به چه معناست؟
- اگر پینگ شما 300ms است اما بعد از اتصال سرعت خوب است، مشکل لگ شبکه است
- اگر پینگ 20ms است اما صفحات 5 ثانیه بارگذاری میشوند، مشکل کندی سرور است
- اگر هم پینگ بالاست هم بارگذاری کند، هر دو مشکل وجود دارد

لگ سرور مجازی: با شناسایی گلوگاه CPU، RAM و دیسک
بررسی و تحلیل مصرف CPU
- دستور top
top - %Cpu(s): نشاندهنده درصد استفاده از CPU
- us (user): پردازش برنامههای کاربری
- sy (system): پردازش سیستم
- id (idle): CPU بیکار (هرچه بیشتر، بهتر!)
- wa (wait): در انتظار I/O دیسک
- st (steal): بسیار مهم در VPS!
CPU Steal نشان میدهد چقدر از CPU تخصیصیافته به شما توسط سرور فیزیکی “دزدیده” شده و به VPS های دیگر داده شده است. اگر این عدد بالای 10٪ باشد، یعنی ارائهدهنده VPS شما Over-selling کرده (بیش از ظرفیت فروخته) و باید پلن و با ارائه دهنده خود را تغییر دهید.
- دستور htop
# نصب
sudo apt install htop # Ubuntu/Debian
sudo yum install htop # CentOS
# اجرا
htop - نمایش تمام هستههای CPU بهصورت جداگانه
- رنگبندی واضح
- امکان Kill کردن پردازهها با کلید F9
- یافتن پردازههای پرمصرف
ps aux --sort=-%cpu | head -n 11 | مشکل | علت | راهحل |
|---|---|---|
| Apache پرمصرف | تعداد زیاد درخواست همزمان | جایگزینی با Nginx یا LiteSpeed |
| PHP-FPM بالا | تنظیمات نامناسب | کاهش pm.max_children |
| MySQL کند | کوئریهای بهینه نشده | اضافه کردن Index به جداول |
| Backup در حال اجرا | فشردهسازی سنگین | زمانبندی در ساعات کمبار |
تحلیل مصرف RAM و مشکل Swap
free -h total used free shared buff/cache available
Mem: 2.0Gi 1.5Gi 100Mi 50Mi 400Mi 300Mi
Swap: 2.0Gi 1.8Gi 200Mi - total: کل RAM
- used: مصرف شده
- available: واقعاً قابل استفاده (مهمتر از free)
- Swap used: اگر بالای 500MB باشد، مشکل دارید!
ps aux --sort=-%mem | head -n 11 # ویرایش تنظیمات
sudo nano /etc/mysql/my.cnf
# اضافه کردن
[mysqld]
innodb_buffer_pool_size = 256M # به جای 1GB پیشفرض
max_connections = 50 # به جای 151 sudo nano /etc/apache2/mods-available/mpm_prefork.conf
<IfModule mpm_prefork_module>
StartServers 2
MinSpareServers 2
MaxSpareServers 5
MaxRequestWorkers 50 # به جای 150
MaxConnectionsPerChild 3000
</IfModule> sudo nano /etc/php/8.1/fpm/conf.d/10-opcache.ini
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000 # لیست سرویسهای فعال
systemctl list-units --type=service --state=running
# غیرفعال کردن سرویس
sudo systemctl disable postfix.service بررسی سرعت دیسک و Disk I/O
# تست سرعت نوشتن
dd if=/dev/zero of=/tmp/test bs=1G count=1 oflag=direct
# نتیجه نمونه:
# 1073741824 bytes (1.1 GB) copied, 5.2 s, 206 MB/s | نوع دیسک | سرعت نوشتن | سرعت خواندن | مناسب برای |
|---|---|---|---|
| HDD معمولی | 50-100 MB/s | 80-120 MB/s | فایلهای ساده |
| SSD SATA | 300-500 MB/s | 400-550 MB/s | وبسایتهای متوسط |
| NVMe SSD | 1500-3500 MB/s | 2000-5000 MB/s | دیتابیس سنگین |
# نصب iotop
sudo apt install iotop
# اجرا
sudo iotop -o
# یافتن فایلهای بزرگ
sudo du -h /var/log | sort -rh | head -n 10
# پاک کردن لاگهای قدیمی
sudo journalctl --vacuum-size=100M -- یافتن جداول بدون Index
SELECT DISTINCT
TABLE_NAME
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'your_database'
AND TABLE_NAME NOT IN (
SELECT TABLE_NAME
FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = 'your_database'
); # پاک کردن
sudo rm -rf /tmp/*
sudo rm -rf /var/tmp/* 
تحلیل شبکه و اندازهگیری پینگ سرور
تشخیص منشأ تأخیر با ابزارهای شبکه
ping -c 10 your-vps-ip - 0-50ms: عالی
- 50-100ms: قابل قبول
- 100-200ms: متوسط
- بالای 200ms: ضعیف
# در لینوکس
traceroute your-vps-ip
# در ویندوز
tracert your-vps-ip 1 router.local (192.168.1.1) 1.5 ms
2 isp-gateway (10.20.30.1) 15 ms
3 core-router (5.10.15.20) 45 ms
4 international-link (80.75.60.1) 250 ms <- مشکل اینجاست!
5 datacenter (185.123.45.1) 255 ms # نصب
sudo apt install mtr
# اجرا
mtr -r -c 100 your-vps-ip رفع مشکلات DNS و فایروال
# نصب dig
sudo apt install dnsutils
# تست
dig google.com
# به خط "Query time" نگاه کنید
# Query time: 45 msec <- اگر بالای 100 باشد، مشکل دارید # تغییر DNS به Cloudflare یا Google
sudo nano /etc/resolv.conf
nameserver 1.1.1.1
nameserver 8.8.8.8 sudo iptables -L -n | wc -l # نصب UFW
sudo apt install ufw
# قوانین پایه
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable بررسی کیفیت شبکه ارائهدهنده سرور مجازی
ping -c 100 your-vps-ip | grep loss
# 100 packets transmitted, 95 received, 5% packet loss سرور مجازی ایران وبداده
روی دکمه زیر کلیک کنید
بهینهسازی نرمافزاری برای افزایش سرعت سرور
بهینهسازی دیتابیس MySQL/MariaDB
# دانلود
wget http://mysqltuner.pl/ -O mysqltuner.pl
# اجرا
perl mysqltuner.pl -- یافتن کوئریهای کند
SELECT * FROM information_schema.PROCESSLIST
WHERE TIME > 5 AND COMMAND != 'Sleep';
-- افزودن Index
ALTER TABLE your_table ADD INDEX idx_column_name (column_name); sudo nano /etc/mysql/my.cnf
[mysqld]
# بهینهسازی برای 2GB RAM
innodb_buffer_pool_size = 512M
query_cache_size = 32M
query_cache_limit = 2M
max_connections = 100
thread_cache_size = 8
table_open_cache = 2000
innodb_flush_log_at_trx_commit = 2 -- بهینهسازی تمام جداول
mysqlcheck -o --all-databases -u root -p
-- پاک کردن بایلاگهای قدیمی
PURGE BINARY LOGS BEFORE DATE(NOW() - INTERVAL 7 DAY); استفاده از سیستمهای کشینگ
# بررسی فعال بودن
php -i | grep opcache
# اگر غیرفعال است
sudo nano /etc/php/8.1/fpm/conf.d/10-opcache.ini
opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60 # نصب
sudo apt install redis-server
# فعالسازی
sudo systemctl enable redis-server
sudo systemctl start redis-server
# تست
redis-cli ping
# PONG
# نصب پلاگین Redis
wp plugin install redis-cache --activate
wp redis enable # نصب
sudo apt install varnish
# پیکربندی
sudo nano /etc/varnish/default.vcl بهروزرسانی سیستمعامل و نرمافزارها
sudo apt update
sudo apt upgrade -y
sudo apt dist-upgrade -y
sudo apt autoremove -y # اضافه کردن مخزن
sudo add-apt-repository ppa:ondrej/php
# نصب PHP 8.2
sudo apt install php8.2-fpm php8.2-mysql php8.2-curl # نصب Nginx
sudo apt install nginx
# حذف Apache (بعد از Backup)
sudo systemctl stop apache2
sudo systemctl disable apache2 
ابزارهای پیشرفته پایش و عیبیابی سرعت سرور مجازی
نصب و استفاده از Netdata
# نصب
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
# دسترسی
http://your-vps-ip:19999 - نمایش زنده CPU، RAM، Network، Disk
- هشدارها برای مصرف بالا
- نمودارهای دقیق و زیبا
- مصرف منابع بسیار کم
بررسی لاگها برای یافتن خطاها
# خطاهای سیستمی
sudo tail -f /var/log/syslog
# خطاهای Apache
sudo tail -f /var/log/apache2/error.log
# خطاهای Nginx
sudo tail -f /var/log/nginx/error.log
# خطاهای PHP
sudo tail -f /var/log/php8.1-fpm.log
# خطاهای MySQL
sudo tail -f /var/log/mysql/error.log # پیدا کردن خطاهای اخیر
sudo grep -i error /var/log/syslog | tail -n 50
# پیدا کردن حملات
sudo grep -i "failed" /var/log/auth.log | tail -n 20 استفاده از Benchmark Tools
- ApacheBench:
# تست بارگذاری
ab -n 1000 -c 50 http://your-website.com/
# -n: تعداد کل درخواست
# -c: تعداد همزمان - Siege:
sudo apt install siege
# تست
siege -c 50 -t 30s http://your-website.com/ - Load Testing:
نتیجهگیری: بررسی دلایل سرعت پایین و لگ در سرور مجازی
سوالات متداول از دلایل سرعت پایین و لگ VPS
1- چگونه بفهمم سرور من کند است یا اینترنت من؟
راحتترین روش این است که سایت خود را از یک سرویس آنلاین مثل GTmetrix یا PageSpeed Insights تست کنید. اگر از آنجا هم کند است، مشکل از سرور است. همچنین میتوانید از شبکه موبایل یا یک VPN تست کنید. اگر با تغییر اینترنت سرعت تغییر نکرد، قطعاً سرور مشکل دارد.
2- CPU Steal چیست و چرا مهم است؟
CPU Steal نشان میدهد ارائهدهنده VPS شما چقدر از منابع تخصیصیافته به شما را به سرورهای دیگر داده است. اگر این مقدار بالای 5-10٪ باشد، یعنی Over-selling رخ داده و شما در واقع منابعی که پول دادهاید را دریافت نمیکنید. در چنین شرایطی باید با پشتیبانی صحبت کنید یا ارائهدهنده را تغییر دهید.
3- آیا افزایش RAM همیشه سرعت را بالا میبرد؟
خیر! اگر در حال حاضر RAM شما بهطور کامل پر نیست و از Swap استفاده نمیکنید، افزایش RAM تأثیری نخواهد داشت. ابتدا با free -h بررسی کنید آیا واقعاً کمبود RAM دارید. در بسیاری موارد، مشکل از تنظیمات نادرست MySQL یا Apache است نه کمبود RAM. بهینهسازی نرمافزار میتواند مصرف RAM را 50٪ کاهش دهد.
4- HDD به SSD تفاوت واقعی چقدر است؟
در دنیای واقعی، تفاوت بسیار چشمگیر است. در تستهای انجامشده در سال 2024 , 2025، یک وبسایت WordPress روی HDD 3.5 ثانیه بارگذاری میشد، اما روی SSD فقط 0.8 ثانیه! برای دیتابیسهای بزرگ، این تفاوت حتی بیشتر میشود. اگر بودجه محدودی دارید، بهتر است یک VPS کوچکتر با SSD بگیرید تا یک VPS بزرگ با HDD.
5- بهترین ابزار برای پایش سرور چیست؟
بستگی به نیاز شما دارد:
- برای مبتدیان: Netdata – نصب آسان، رابط زیبا، رایگان
- برای حرفهایها: Prometheus + Grafana – قدرتمند اما پیچیده
- برای وبسایت: Google Analytics + GTmetrix – تمرکز روی تجربه کاربر توصیه میکنم با Netdata شروع کنید چون در عرض 5 دقیقه نصب میشود و همه چیز را به شما نشان میدهد.
6- چرا سایتم در بعضی ساعات کند میشود؟
این معمولاً به دلیل افزایش ترافیک یا Cron Jobs است. بررسی کنید:
- آیا Backup در همان ساعت اجرا میشود؟
- آیا ترافیک در آن زمان بیشتر است؟
- آیا Cron Job های سنگینی دارید؟ با
crontab -lلیست کارهای زمانبندی شده را ببینید و آنها را به ساعات کمبار منتقل کنید. همچنین میتوانید با Netdata نمودار استفاده از منابع در 24 ساعت گذشته را ببینید و دقیقاً متوجه شوید چه زمانی مشکل رخ میدهد.




