Нещодавно у мене виникли проблеми з молотком внаслідок втрати пам’яті. (Мій 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, але вони здаються орієнтованими на людей, які вже знають, що роблять! Будь-яка допомога буде вдячна. Спасибі!