Традиционно, среднее значение нагрузки нашего сервера Alma Linux, управляемого нашего веб-сайта Apache/PHP-FPM/MariaDB, составило 1-3. Недавно мы испытали хорошую прессу, и кажется, что наш сервер получает больший трафик, и нагрузка поддерживается на 4-6 с взрывом выше 10. Мы используем CloudFlare, когда я включаю «под режимом атаки», что по существу выкладывает страницу, чтобы проверить посетители, он сразу же поддерживается на традиционные уровни. Я смотрел статус сервера Apache и вижу, как обрабатываемые запросы прыгают с 5-20 до 50 и достигают 100, вызывая высокие нагрузки, и когда мне нужно включить настройку в CloudFlare, пока он не упадет до приемлемых нагрузок. Я вижу статус в CloudFlare, показывающем количество запросов на подъеме, когда это происходит, и страница состояния PHP-FPM показывает максимальные активные процессы. Если я увеличиваю max_children, нагрузка просто значительно увеличивается, поскольку активные процессы достигают их max_children. Мы являемся местным отделом новостей, высокий трафик обычно отслеживает новостную историю, которую разделяют или поднимаются национальной компанией. Мы получили недавнюю национальную прессу, мне пришлось оставить защиту CloudFlare в течение большей части дня и недели, и с тех пор она появилась в волнах. Или оба. Мы используем Apache 2.4.62, PHP-FPM 8.3.24 и Mariadb 10.11.14. Там в течение 2-3 секунд, но ничего более, и я никогда не вижу более 20-25 процессов сна во время высокой нагрузки.
Традиционно, среднее значение нагрузки нашего сервера Alma Linux, управляемого нашего веб-сайта Apache/PHP-FPM/MariaDB, составило 1-3. Недавно мы испытали хорошую прессу, и кажется, что наш сервер получает больший трафик, и нагрузка поддерживается на 4-6 с взрывом выше 10. Мы используем CloudFlare, когда я включаю «под режимом атаки», что по существу выкладывает страницу, чтобы проверить посетители, он сразу же поддерживается на традиционные уровни. Я смотрел статус сервера Apache и вижу, как обрабатываемые запросы прыгают с 5-20 до 50 и достигают 100, вызывая высокие нагрузки, и когда мне нужно включить настройку в CloudFlare, пока он не упадет до приемлемых нагрузок. Я вижу статус в CloudFlare, показывающем количество запросов на подъеме, когда это происходит, и страница состояния PHP-FPM показывает максимальные активные процессы. Если я увеличиваю max_children, нагрузка просто значительно увеличивается, поскольку активные процессы достигают их max_children. Мы являемся местным отделом новостей, высокий трафик обычно отслеживает новостную историю, которую разделяют или поднимаются национальной компанией. Мы получили недавнюю национальную прессу, мне пришлось оставить защиту CloudFlare в течение большей части дня и недели, и с тех пор она появилась в волнах. Или оба. Мы используем Apache 2.4.62, PHP-FPM 8.3.24 и Mariadb 10.11.14. Там в течение 2-3 секунд, но ничего более, и я никогда не вижу более 20-25 процессов сна во время высокой нагрузки.[code]pm = ondemand pm.max_children = 15 pm.process_idle_timeout = 10s; pm.max_requests = 500
ATOP - alma1 2025/08/26 18:37:13 ----------------- 10s elapsed PRC | sys 4.37s | user 49.41s | #proc 189 | #zombie 0 | #exit 10 | CPU | sys 41% | user 494% | irq 4% | idle 61% | wait 1% | cpu | sys 7% | user 86% | irq 1% | idle 6% | cpu003 w 0% | cpu | sys 6% | user 84% | irq 1% | idle 9% | cpu004 w 0% | cpu | sys 7% | user 83% | irq 1% | idle 9% | cpu001 w 0% | cpu | sys 7% | user 80% | irq 1% | idle 12% | cpu005 w 0% | cpu | sys 7% | user 80% | irq 1% | idle 12% | cpu002 w 0% | cpu | sys 7% | user 79% | irq 1% | idle 13% | cpu000 w 0% | CPL | avg1 9.03 | avg5 9.64 | avg15 8.23 | csw 81558 | intr 104638 | MEM | tot 15.4G | free 250.5M | buff 91.9M | slab 624.6M | numnode 1 | SWP | tot 512.0M | free 8.3M | swcac 5.9M | vmcom 16.1G | vmlim 8.2G | PAG | numamig 0 | migrate 14e3 | swin 0 | swout 0 | oomkill 0 | DSK | sda | busy 1% | read 151 | write 517 | avio 0.19 ms | NET | transport | tcpi 13312 | tcpo 26862 | udpi 891 | udpo 891 | NET | network | ipi 14203 | ipo 19189 | ipfrw 0 | deliv 14203 | NET | eth0 ---- | pcki 14197 | pcko 19173 | si 3192 Kbps | so 28 Mbps | NET | lo ---- | pcki 16 | pcko 16 | si 4 Kbps | so 4 Kbps |
Server load: 9.38 9.71 8.25 Total accesses: 16713 - Total Traffic: 1.4 GB - Total Duration: 22404839 CPU Usage: u7.5 s2.7 cu15.16 cs5.47 - 1.77% CPU load 9.62 requests/sec - 0.8 MB/second - 90.0 kB/request - 1340.56 ms/request 29 requests currently being processed, 0 workers gracefully restarting, 67 idle workers < /code> Просмотр того, что принимает мою память, у меня есть этот скрипт ... < /p> [root@alma1 ~]# cat apache_mem_usage.sh #!/usr/bin/sh ps -ylC httpd | awk '{x += $8;y += 1} END {print "Apache memory usage (MB): "x/1024; print "Average Apache Process Size (MB): "x/((y-1)*1024)}' ps -ylC php-fpm | awk '{x += $8;y += 1} END {print "PHP-FPM memory usage (MB): "x/1024; print "Average PHP-FPM Process Size (MB): "x/((y-1)*1024)}' ps -ylC mariadbd | awk '{x += $8;y += 1} END {print "MariaDB memory usage (MB): "x/1024}' free [root@alma1 ~]# ./apache_mem_usage.sh Apache memory usage (MB): 279.188 Average Apache Process Size (MB): 27.9187 PHP-FPM memory usage (MB): 5103.15 Average PHP-FPM Process Size (MB): 318.947 MariaDB memory usage (MB): 6707.73 total used free shared buff/cache available Mem: 16113200 9426012 307164 441444 7163324 6687188 Swap: 524284 516656 7628 < /code> Возможно, использование памяти процесса PHP-FPM выше, чем должно быть? Параметр innodb_buffer_pool_size для MariaDB установлен на 6G, и я нашел запрос, который показывает, что он, возможно, должен быть в 3 раза больше, чем размер или некоторая оптимизация БД может потребоваться ... < /p> MariaDB [(none)]> SELECT CEILING(Total_InnoDB_Bytes*1.6/POWER(1024,3)) RIBPS FROM (SELECT SUM(data_length+index_length) Total_InnoDB_Bytes FROM information_schema.tables WHERE engine='InnoDB') A; +-------+ | RIBPS | +-------+ | 18 | +-------+ < /code> Так что я не верю, что могу отказаться от этой памяти для PHP, если я не уменьшу это число. Самая большая таблица Innodb, которую я имею, составляет 19 миллионов строк, которые отслеживают рекламу и работают много лет с 3 индексами ... < /p> MariaDB [wmnf_www]> SHOW TABLE STATUS LIKE 'wp_ad_tracker' \G; *************************** 1. row *************************** Name: wp_ad_tracker Engine: InnoDB Version: 10 Row_format: Dynamic Rows: 19829074 Avg_row_length: 52 Data_length: 1047511040 Max_data_length: 0 Index_length: 1000275968 Data_free: 4194304 Auto_increment: 146764111 Create_time: 2025-04-20 09:53:51 Update_time: 2025-08-26 17:39:10 Check_time: NULL Collation: utf8mb4_unicode_ci Checksum: NULL Create_options: Comment: Max_index_length: 0 Temporary: N [/code] Я оставлю его на данный момент, ищу указатели или рекомендации по лучшему способу продолжить, чтобы уменьшить нагрузки.