Высокое использование процессора на веб-сервере Digital Ocean

У нас есть веб-сайт Laravel, который в настоящее время размещен на Digital Ocean (Nginx). Дроплет имеет 2 vCPU, 2 ГБ памяти, 60 ГБ SSD, 3 ТБ передачи данных и работает под управлением PHP 7.4. Мы наблюдаем постоянное увеличение использования ЦП от одного дня к другому.

В настоящее время у нас 118 "спящих" задач (что меня не слишком беспокоит), однако несколько команд php-fpm появляются с течением времени, и иногда общее использование процессора подскакивает до 50-60%. До Digital Ocean у нас уже был этот сайт на другом сервере, и процессор постоянно использовался на 95-100%.

Ниже приведен снимок текущих процессов, использующих большое количество CPU, которые запущены на сервере. Нормально ли это для сайта Laravel и действительно ли необходимы эти команды php-fpm?

top - 11:48:38 up 21 days, 22:46,  1 user,  load average: 0.65, 0.75, 0.79
Tasks: 120 total,   2 running, 118 sleeping,   0 stopped,   0 zombie
%Cpu(s): 41.8 us, 21.5 sy,  0.0 ni, 36.4 id,  0.0 wa,  0.0 hi,  0.3 si,  0.0 st
MiB Mem :   1987.6 total,    172.6 free,    291.9 used,   1523.1 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   1475.8 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
 222902 www-data  20   0  242664  58356  37272 R  76.4   2.9   0:13.28 php-fpm: pool www
 222903 www-data  20   0  242652  57740  37208 S  26.6   2.8   0:01.80 php-fpm: pool www
 222901 www-data  20   0  242700  57480  37144 S  21.9   2.8   0:24.67 php-fpm: pool www
     11 root      20   0       0      0      0 I   0.3   0.0   5:25.41 [rcu_sched]
 167142 www-data  20   0  141972  15920   5384 S   0.3   0.8  29:09.38 nginx: worker process
      1 root      20   0  171116  12632   7848 S   0.0   0.6   1:28.61 /sbin/init
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.12 [kthreadd]
      3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 [rcu_gp]
      4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 [rcu_par_gp]
      6 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 [kworker/0:0H-kblockd]
      9 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 [mm_percpu_wq]
     10 root      20   0       0      0      0 S   0.0   0.0   1:33.28 [ksoftirqd/0]

Примечание: В настоящее время на сайте включен Cloudflare, и до 27 февраля сайт был доступен только для страны происхождения магазина (Мальта). До этого момента графики Digital Ocean показывали, что загрузка процессора составляла не более 4,5%. После 27-го числа мы открыли сайт еще примерно для 20 стран - некоторых из ЕС, Австралии и США - и сразу же увидели такой всплеск загрузки процессора.

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

Любая помощь, советы и рекомендации будут очень признательны.

Заранее спасибо :)

1
задан 3 March 2021 в 14:01
1 ответ

Тег можно проверить с помощью фильтра, например:

if $syslogtag=="nginx.log" then action(...)
& stop
-121--479816-

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

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

Здесь он смотрит в лицо: « Загрузка файла в полную файловую систему » и « превышение квоты пользовательского диска » не может быть более ясным. Сообщения означают, что файловая система на сервере заполнена, и/или дисковая квота учетной записи, на которую загружается файл, израсходована. Чтобы решить эту проблему, кто имеет доступ к серверу, должен удалить некоторые файлы, добавить место в место хранения или увеличить квоту.

Либо вы пытаетесь создать уже существующий каталог. Чтобы решить эту проблему, не создавайте каталог.

Единственное сообщение, которое может быть немного трудно понять, это второе. Я не уверен, почему этот шаг не разрешен. Могу я предложить поиск в Интернете?

-121--480785-

Laravel не особенно легкий. Необходимо собрать информацию о том, что система делает, проанализировать данные и внести соответствующие изменения.

Ознакомьтесь с журналами доступа к веб-серверу и журналами laravel в качестве отправной точки для определения активности системы.

Решите, действительно ли это проблема, а затем примите меры.

Необходимо использовать системные ресурсы. Ваша система кажется в целом слегка используемой.

1
ответ дан 24 April 2021 в 00:49

Теги

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