Нещодавно у мене виникли проблеми з молотком внаслідок втрати пам’яті. (Мій VPS нараховує 256M)
Я намагаюся налаштувати MySQL за допомогою mysqltuner.pl і отримати такі результати:
-------- Загальна статистика ---------------------------------------- ----------
[-] Пропущена перевірка версії сценарію MySQLTuner
[OK] На даний момент підтримується підтримуваний MySQL версії 5.0.51a-3ubuntu5.4-log
[OK] Операція з 64-бітовою архітектурою
-------- Статистика двигуна зберігання --------------------------------------- ----
[-] Статус: + Архів -BDB -Federated -InnoDB -ISAM -NDBCluster
[-] Дані в таблицях MyISAM: 114M (Таблиці: 454)
[!!] Всього фрагментованих таблиць: 34
-------- Показники ефективності ---------------------------------------- ---------
[-] До: 40-х років (570 q [14.250 qps], 23 кон., TX: 154K, RX: 23K)
[-] Читає / пише: 100% / 0%
[-] Загальна кількість буферів: 338,0 млн. Глобальних + 2,7 М на потік (20 макс. Потоків)
[!!] Максимально можливе використання пам'яті: 392,9 М (153% встановленої оперативної пам’яті)
[OK] Повільні запити: 0% (5/570)
[OK] Найвище використання доступних з'єднань: 15% (3/20)
[!!] Розмір ключового буфера / загальний індекс MyISAM: 8.0M / 9.4M
[!!] Частота звернення до ключового буфера: 57,1% (7 кешованих / 3 читання)
[OK] Ефективність кешу запитів: 21,9% (7 кешованих / 32 вибору)
[Добре] Запит на чорнослив в день: 0
[OK] Сортування, які потребують тимчасових таблиць: 0% (0 тимчасових сортів / 1 сортування)
[OK] Тимчасові таблиці, створені на диску: 0% (0 на диску / 32 разом)
[OK] Швидкість звернення до кешу потоку: 86% (3 створено / 23 з'єднання)
[OK] Частота показів кешу таблиці: 26% (128 відкрито / 484 відкрито)
[OK] Використовується обмеження відкритого файлу: 25% (259 / 1K)
[OK] Табличні замовлення, придбані негайно: 100% (492 негайних / 492 блокування)
-------- Рекомендації ----------------------------------------- ------------
Загальні рекомендації:
Запустіть OPTIMIZE TABLE для дефрагментації таблиць для кращої продуктивності
MySQL запустився протягом останніх 24 годин - рекомендації можуть бути неточними
Зменшіть загальний слід пам'яті MySQL для стабільності системи
Змінні для налаштування:
*** Максимальне використання пам'яті MySQL небезпечно високе ***
*** Додайте оперативну пам'ять перед збільшенням змінних буферів MySQL ***
key_buffer_size (> 9,4М)
Але я трохи розгублений, як зменшити максимальне використання пам'яті? Здається, він базується на key_buffer та max_connections, але має бути ще щось задіяне?
my.cnf:
key_buffer = 8М max_allowed_packet = 12М thread_stack = 128K thread_cache_size = 8 max_connections = 20 table_cache = 128 tmp_table_size = 256М max_heap_table_size = 256М join_buffer_size = 256K query_cache_limit = 8М query_cache_size = 64М
Я намагався читати статті про налаштування MySQL, але вони здаються орієнтованими на людей, які вже знають, що роблять! Будь-яка допомога буде вдячна. Спасибі!