Для проверки работы Ваших проектов на наших VDS предлагаем Вам льготный период, оформите заказ на 3 дня.
Первым делом нужно понять, какие ресурсы использует ваш сервер и какие из них могут быть узким местом.
top
Посмотрите на столбцы %CPU и %MEM. Если один или несколько процессов постоянно загружают CPU на 100% или больше 70–80% памяти, это может быть причиной низкой производительности.
%CPU
%MEM
sudo apt-get install sysstat iostat -x 1 10
Посмотрите на колонку %util для диска. Если она близка к 100%, значит диск перегружен, и это может быть узким местом.
%util
sudo apt-get install iftop sudo iftop -i eth0
Если сеть перегружена или есть медленные соединения, это также может быть причиной.
Если ваши процессы стабильно занимают все доступные ресурсы, может быть два варианта: вам действительно не хватает ресурсов, или сервер требует оптимизации.
На некоторых VPS-платформах существуют лимиты на CPU и оперативную память.
cat /proc/cpuinfo free -m
free -h
Если Swap используется активно, подумайте о добавлении оперативной памяти.
Пример: Оптимизация MySQL (или MariaDB)
/etc/mysql/my.cnf
/etc/mysql/mariadb.conf.d/50-server.cnf
innodb_buffer_pool_size
innodb_buffer_pool_size = 512M
query_cache_size
query_cache_size = 64M
sudo systemctl restart mysql
worker_processes auto; events { worker_connections 1024; }
sudo systemctl restart nginx
StartServers 2 MinSpareServers 2 MaxRequestWorkers 150
Чтобы точно определить, где именно начинается падение производительности, проведите нагрузочное тестирование.
sudo apt-get install apache2-utils
ab -n 1000 -c 10 http://yourdomain.com/
Обратите внимание на время отклика и количество завершённых запросов. Если сервер начинает отдавать 500-е ошибки, значит, он не справляется с нагрузкой.
Просмотр логов может показать, какие процессы или запросы занимают больше всего ресурсов.
sudo tail -f /var/log/apache2/access.log
sudo tail -f /var/log/nginx/access.log
Если ваш сервер обрабатывает много однотипных запросов, включение кэширования может существенно разгрузить его.
sudo apt-get install redis-server
location / { proxy_cache my_cache; proxy_cache_valid 200 1h; }
Решение проблемы зависит от наблюдаемого узкого места, и оптимизация настроек серверных приложений поможет использовать доступные ресурсы наиболее эффективно.