Тому я запускаю базу даних MariaDB 10 на одному ядерному сервері; не надто потужний, але тоді і мої потреби не величезні.
Однак одне, що я помітив, це те, що якщо я заглянув, у htop
мене mysql
в списку видно близько 28 записів, що, на мою думку, це один процес плюс 27 потоків (оскільки htop
за замовчуванням перераховані потоки, як процеси).
Однак це здається чималим, оскільки моя база даних налаштована на використання пулу потоків з обмеженням 8 потоків, а не на один потік на з'єднання за замовчуванням, і він навіть не використовує всі перераховані (на даний момент це два) , то для чого інші 25 ниток? Чи є спосіб я зменшити цю кількість?
Я знаю, що це не обов'язково проблема, однак у мене виникають нечасті повільні запити (> 0,5 секунди, а не звичайні <1 мс, оскільки більшість моїх запитів дуже прості), і здається, що занадто багато потоків може бути потенційним винуватцем, якщо занадто багато одразу прокидаються.
Чи нормальна ця кількість ниток? Чи є спосіб, який я можу ще більше зменшити, чи ці зайві нитки роблять щось важливе?
sudo grep thread /etc/mysql/my.cnf
thread_stack = 256K
thread_cache_size = 8
thread_handling = pool-of-threads
thread_pool_max_threads = 8
thread_pool_stall_limit = 200
thread_cache_size
, але, як я кажу, я бачу щонайменше 27 тем, що мені незрозуміло, враховуючи, що встановлено мій ліміт до восьми. Я можу зрозуміти, що MariaDB може мати кілька додаткових ниток для виконання інших завдань, але чи дійсно потрібно стільки? Чи є інші налаштування, від яких вони можуть бути керовані?
htop
мене є лише значення 4 для Threadpool_threads
(3 простої, 1 працює), тому я навіть не максимум, що я встановив, тому насправді є 23 або більше зайвих нитки.