Идет большая нагрузка ядер процессора у mariadb

6 февраля 2024 в 11:25
Аватар пользователя chei1ahJoh8K chei1ahJoh8K 0 3 Решено

Как узнать какой модуль или запрос грузит сервер?
Mariadb 10.6, drupal 10.2, php 8.1 .
Указал в конфиге лог для медленных запросов но сервер туда ничего не пишет.

Комментарии

Ну во-первых, надо наверное почитать документацию о логе медленных запросов, установить нужный лимит на длительность запроса и.т.п.
Также в realtime можно посмотреть что происходит в mysql/mariadb с помощью утилиты mytop.

8 февраля 2024 в 0:25

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

27 июня 2024 в 23:01

решил вопрос. посмотрел какие запросы часто грузят процессор . в моем случае паразитивный sql count *. внедрил в апи друпала в /var/www/drupal11/web/core/lib/Drupal/Core/Database/Query/select.php
в public function countQuery()
временно следующий код:

$file = '/home/jura/tmp/people.txt';
ob_start();
echo "jura0\n";
debug_print_backtrace();
$contents = ob_get_contents();
file_put_contents($file, $contents,FILE_APPEND);
ob_end_clean();

он записал имя всех программ которые запускают sql count.
оказалось перегружают обыкновенный views даже если из кэша. также выяснилось что 3 contrib модуля shield, redirect after login и редко tvi участвуют в этом безобразии.

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

24 сентября 2024 в 5:25