Перевірте ЦП і пам’ять на вашому сервері Linux
Такі ресурси, як ЦП і пам’ять (ОЗП), є невід’ємною частиною функціональності вашого сайту. Якщо ваш код використовує занадто багато матеріалів, сайт може стати повільним або взагалі перестати працювати. Усі інші процеси (наприклад, електронна пошта) мають спільні ресурси з сайтами на вашому сервері. Сервер може бути повністю вимкнено в будь-якому процесі, який забирає більше, ніж передбачається.Навіщо потрібно перевіряти використання ресурсів?
- Ваш сайт на базі даних (наприклад, WordPress) працює повільно.
- Електронна пошта надходить довго.
- На вашому сайті відображається помилка або просто обертання
- Робота на сервері триває довше, ніж зазвичай (наприклад, резервне копіювання).
Як перевірити використання ресурсів?
Linux пропонує кілька інструментів для дослідження використання ЦП і пам'яті, таких як top , sar і годинник .
Команда top дає змогу переглядати системні завдання, які виконуються в реальному часі. Ви можете бачити загальну інформацію, таку як тривалість роботи, середнє навантаження, використання ЦП і пам'яті. Параметр -c дає змогу побачити назву програми в розділі COMMAND. Щоб отримати повний список ярликів, використовуйте man top у SSH.
[root @ server ~] $ top -c top - 15:08:23 до 115 днів, 6:37, 2 користувачів, середнє завантаження: 1.76, 1.35, 1.13 Завдання: загалом 330, 1 запуск, 326 сплячих, 0 зупинених, Процесор 3 зомбі: 0,7% США, 2,9%s y, 0,0% ni, 81,5% id, 14,9% wa, 0,0% hi, 0,1%s i, 0,0%s t Mem: загалом 32754672k, використано 28808088k, безкоштовно 3946584k, 321260k буферівЗмінити: 8388604k всього, 25992k використано, 8362612k безкоштовно, 8140560k кешовано PID USER PR NI VIRT RES SHR S% CPU% MEM TIME + COMMAND 6926 mysql 20 0 130g 16g 22g S 52.2 27065: 56 / usr / sbin / mysqld --basedir = / usr --datadir = / var / lib / mysql --plugin-dir = / usr / lib64 / mysql / plugin 2454 td-agent 20 0 1210m 160m 2440 S 0,7 0,5 347: 19,48 / opt / td-agent / embedded / bin / ruby -Eascii-8bit: ascii-8bit /
System Activity Reporter (sar) - це інструмент, який допомагає відстежувати статистику використання вашого сервера. Sar входить до пакета sysstat . Якщо використовувати лише команду sar , ви отримаєте статистичні дані за останні 24 години.
sar -f дає змогу переглядати історичні файли журналу, починаючи з 00:00 за день.
[root @ server ~] $ sar -f / var / log / sa / sa10 Linux 2.6.32-042stab141.3 (server-hostname.net) 10.10.2022 _x86_64_ (24 ЦП) 00:00:01 ЦП % user% nice%s ystem% iowait%s teal% простою 00:10:01 усі 1,92 0,00 0,39 0,00 0,00 97,69 00:20:01 усі 1,63 0,00 0,34 0,00 0,00 98,02 00:30:01 усі 1,64 0,00 0,41 0,01 0,00 97,94 00:40:01 усі 2,85 0,00 0,61 0,00 0,00 96,54 00:50:01 усього 2,71 0,00 0,57 0,01 0,00 96,72 01:00:01 усього 2,02 0,00 0,38 0,00 0,00 97,60 01:10:01 усього 1,43 0,00 0,30 0,00 0,00 98,27
sar -r відображатиме вільну та використану статистику пам'яті
[root @ server ~] $ sar -r Linux 2.6.32-042stab141.3 (server-hostname.net) 02.02.2022 _x86_64_ (24 ЦП) 00:00:01 kbmemfree kbmemused% memused kbbuffers kbcached kbcommit% коміт 00:10:01 99454800 32354304 24.55 1429856 22624260 8285744 5.91 12:20:01 AM 99760972 32048132 24.31 1429884 22631184 7960428 5.68 12:30:01 AM 99751920 32057184 24.32 1429920 22638392 7974804 5.69 12:40:01 AM 99638056 8035000 5.73 00:50:01 99752696 32056408 24.32 1430012 22644804 7891100 5.63
Годинник Linux дозволяє переглядати команди або завдання під час їх виконання або виконання. watch "mysql -e'show full processlist; '" покаже всі запущені запити mysql, які оновлюються кожні 2 секунди.
Кожні 2,0 с: mysql -e'show full processlist; ' Суб, 12 лютого 11:09:56 2022 Id Хост користувача db Команда Час Інформація про стан 26574057 mysql_db1 localhost mysql_db1 Запит 2 Надсилання даних SELECT * з db_data_main де DOT_NUMBER = 1381207 26574063 mysql_db1 localhost mysql_db1 Запит 1 Відправлення даних SELECT * D7 mysql_wp3 localhost mysql_wp3 Сон 0 NULL 26574068 root localhost NULL Запит 0 init показати повний список процесів
Наступні кроки
Високе використання ресурсів може бути одноразовим, спричиненим зловмисним трафіком, або зависанням процесу (наприклад, великою резервною копією). Часте використання великих ресурсів, не спричинене трафіком або зависанням процесу, можна вирішити лише шляхом оптимізації або оновлення. Пам’ятайте, що якщо ви не оптимізуєте свій сервер і сайти, оновлення - це лише тимчасове виправлення.
Ознаки того, що може бути час оптимізації (сервер і сайти)
- Не спричинене зловмисним трафіком
- Код сайту застарілий / створює застарілі помилки
- Використання центрального процесора велике, але пам’яті мало.
- Запити MySQL затримуються, коли збільшується трафік
Ознаки того, що може настати час оновлення
- Трафік на ваших сайтах постійно збільшується
- Сервер оптимізовано для потреб вашого сайту
- Ви оптимізували свої сайти, усунувши довгі запити mysql і оновивши код для підтримки нових версій PHP.
- Ви використовуєте кешування (наприклад, Memcache), але навантаження залишається великим