Ubuntu Server 18.04 медленная производительность

Я использую сервер с этим оборудованием:

Cpu: AMD Ryzen 9 5950X 16 ядер
Ram: 128GB DDR4 ECC
NVMe SSD HD

Там я установил Ubuntu 18.04 LTS с последним ядром. Никаких панелей, только следующие службы, необходимые для моего php приложения:

Nginx 1.19.10 
Php7.4-fpm
Elasticsearch 7.11.2
RabbitMQ broker
Varnish 6.4.0
Redis cache
Percona mysql 8.0.22-13

Я не буду вдаваться в дальнейшие подробности того, как я разделил ресурсы сервера для этих служб. Я скажу, что все разделенное с RAM необходимо со следующим приоритетом:

Mysql
PHP FPM
NGINX
Varnish
Elasticsearch
and some little amount I need for Rabbit and Redis

После дальнейшего мониторинга этого сервера около 2 месяцев с тем же трафиком (без существенных изменений) кажется, что мое php приложение работает более гладко и быстрее примерно через 1 час после перезагрузки сервера, чем когда сервер работает в течение недели без перезагрузки.

Примерно через 4-5 дней работы сервера оперативная память увеличивается до 40-45GB в верхней части 128GB. И с этого момента она никогда не увеличивается. Я никогда не видел более чем 45GB заполнения. Также загрузка процессора никогда не превышает 4.00.

В команде top у меня обычно:

Tasks: 595 total,   1 running, 429 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.7 us,  0.1 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 13196481+total, 44963736 free, 27595196 used, 59405888 buff/cache
KiB Swap: 71303160 total, 71303160 free,        0 used. 10288868+avail Mem

В vmstat 10 4 сейчас у меня:

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 44972896 6995364 52411440    0    0     9    37   12   12  2  0 98  0  0
 1  0      0 44972676 6995400 52411536    0    0     0   296 1667 2226  3  1 96  0  0
 1  0      0 44970704 6995400 52411544    0    0     0   558 1186 1610  2  0 98  0  0
 1  0      0 44965440 6995400 52411540    0    0     0    52  986 1555  0  0 100  0  0

А в free -m у меня:

              total        used        free      shared  buff/cache   available
Mem:         128871       26809       44046         262       58015      100615
Swap:         69631           0       69631

Как я вижу, большая часть RAM используется для кэша, который я установил для mysql, php-fpm и nginx. А SWAP практически не используется. В top peaks я вижу около 3.00M в top only.... Я видел там до 6.00M

Вопрос в том, почему этот сервер вместо того, чтобы вести себя лучше с заполненными кэшами, делает все наоборот? Когда RAM не заполнена, кажется, что он работает быстрее.

Есть ли что-то в настройках ubuntu, что требует дальнейшего изучения?

Заранее спасибо!

0
задан 5 May 2021 в 23:06
1 ответ

Полагаться на "ручные" тесты должно быть первым шагом, но это чревато ошибками. Теперь вам нужно копнуть глубже и провести исследование, используя соответствующие инструменты для получения синтетических эталонных данных.

Из своего опыта я бы посоветовал:

  • выбрать несколько показателей, которые важны для вас, и вы знаете, как их измерить (например, время загрузки страницы, временная шкала загрузки страницы, коэффициент попадания в кэш...)
  • выбрать подходящие инструменты. )
  • выберите подходящие инструменты (список инструментов для бенчмаркинга смотрите здесь)
  • измерьте их
  • внесите изменения в конфигурацию
  • измерьте их снова
  • восстановите конфигурацию
  • повторите эту процедуру как минимум три раза (для лучших результатов)

Это даст вам достаточно данных для анализа и покажет нам больше деталей, чтобы помочь вам. При текущих настройках и после интенсивного бенчмарка вы должны заметить более медленный отклик.

Посмотрите на статистику Varnish в интерпретации, на mysql slowlog, журнал varnish (рабочие, очереди, ожидающие рабочие и т.д.), настройки Xms и Xmx для Elasticsearch, проверьте счетчики Rabbit (очереди) и многое другое. Это должно рассказать вам больше о корне проблемы.

Последнее средство перед внедрением APM внутри приложения - проверить все метрики, упомянутые выше, для всех используемых сервисов. С моей точки зрения, внедрение APM будет неизбежным.

1
ответ дан 7 May 2021 в 19:59

Теги

Похожие вопросы