Если кому интересно, проблема была решена следующим образом: установлен opcache, кэш nginx c ssi, местами вынес логику в js клиентский с запросами на wp-ajax которые nginx не кэширует. теперь сервер на пике потребляет 10% cpu , и LA 2-3.
Александр Гетманский, opcache модуля нет, как выяснилось. в простое не знаю, но до 1000 онлайн юзеров, все вроде хорошо, сервер держит , cpu usage 40-70%. все начинается после определенного предела, когда ежесуточный наплыв приходит трафика.
я пробовал использовать wp super cache, но мне не понравился механизм этот, когда в шаблоне пишешь тег и через хуки на его место ставишь динамику. при чем это не избавило от проблемы php-fpm cpu usage 100% при >1000 юзеров онлайн, которые активно взаимодействуют с сайтом. p.s. ядер на сервере 24, памяти 64гб, ssd диски. slowlog смотрел, все sql запросы вроде быстро проходят, но на пике растет mysqld в 300% и каждый php-fpm в 100%.
Или как вариант, всю динамику перенести на js и показывать аякс запросами, которые запретить кэшировать? я правильно понял? объем этих запросов все таки будет дешевле, чем дергать всю динамику.
Александр Гетманский, я вот к ответу выше написал комментарий, подключитесь, если вам не сложно. я про ssi хотел бы услышать ваше мнение в контексте nginx
Борис Сёмов, я просто хочу понять, если у меня есть простая страница, где есть "посты" , и есть блок с (авторизацией/показ ссылки в лс/показ имени пользователя aka динамика). смогу ли я этот блок отдельно через ssi подключить? или это вообще не возможно? в том блоке я допустим подключу wp-load, и сделаю только пару запросов к бд, не нагружая формированием всей страницы бэкенд. такой вариант имеет право на существование?
Максим Притчин, делайте запрос через curl, смотрите заголовки которые пришлет интеркасса, там будет ссылка куда нужно средиректится, берете ссылку и редиректитесь туда самостоятельно.
можно параллельно emmit-ить в вебсокет "для всех" и в бэкенд твоего скрипта на php.
например, кто-то нажал кнопку id=2323, отправляем эту информацию в бэкенд на php(возможно с дополнительными данными), далее отправляем в вебсокет сервер сообщение "для всех" с id, вебсокет уведомляет всех подключенных клиентов о событии, клиенты получили уведомление, теперь могут взять по id дополнительные данные с бэкенда, если нужно.