У меня недавно были проблемы с перебоями из-за нехватки памяти. (Мой 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 conn, 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 выбора) [OK] Запрос обрезки кеша в день: 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 опасно высоко *** *** Добавьте RAM до увеличения буферных переменных MySQL *** key_buffer_size (> 9,4 млн)
Но я немного озадачен тем, как снизить максимальное использование памяти? Кажется, он основан на key_buffer и max_connections, но должно быть что-то еще?
my.cnf:
key_buffer = 8M max_allowed_packet = 12M нить стека = 128 КБ thread_cache_size = 8 max_connections = 20 table_cache = 128 tmp_table_size = 256M max_heap_table_size = 256M join_buffer_size = 256K query_cache_limit = 8M query_cache_size = 64M
Я пытался прочитать статьи по настройке MySQL, но они, похоже, ориентированы на людей, которые уже знают, что они делают! Любая помощь будет оценена. Благодарность!