- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Debian, оперативки 12Гб, в последнее время mysql нагружает CPU до 87%, в my.cnf:
key_buffer = 512M
table_cache = 1024
sort_buffer_size = 128K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 64K
query_cache_type=1
query_cache_size=64M
MySQLTuner дает следующие данные:
-------- Storage Engine Statistics -------------------------------------------
[--] Status: +Archive -BDB -Federated +InnoDB -ISAM -NDBCluster
[--] Data in MyISAM tables: 1G (Tables: 5406)
[--] Data in MEMORY tables: 248K (Tables: 6)
[!!] InnoDB is enabled but isn't being used
-------- Performance Metrics -------------------------------------------------
[--] Up for: 3d 3h 44m 23s (13M q [49.953 qps], 593K conn, TX: 67B, RX: 1B)
[--] Reads / Writes: 90% / 10%
[--] Total buffers: 888.0K per thread and 602.0M global
[OK] Maximum possible memory usage: 688.7M (5% of installed RAM)
[OK] Slow queries: 0% (4/13M)
[OK] Highest usage of available connections: 47% (47/100)
[OK] Key buffer size / total MyISAM indexes: 512.0M/407.9M
[OK] Key buffer hit rate: 99.9%
[OK] Query cache efficiency: 84.2%
[!!] Query cache prunes per day: 265079
[OK] Sorts requiring temporary tables: 4%
[!!] Joins performed without indexes: 82691
[!!] Temporary tables created on disk: 64%
[!!] Thread cache is disabled
[!!] Table cache hit rate: 2%
[!!] Open file limit used: 94%
[OK] Table locks acquired immediately: 99%
-------- Recommendations -----------------------------------------------------
General recommendations:
Add skip-innodb to MySQL configuration to disable InnoDB
Enable the slow query log to troubleshoot bad queries
Adjust your join queries to always utilize indexes
When making adjustments, make tmp_table_size/max_heap_table_size equal
Reduce your SELECT DISTINCT queries without LIMIT clauses
Set thread_cache_size to 4 as a starting value
Increase table_cache gradually to avoid file descriptor limits
Variables to adjust:
query_cache_size (> 64M)
join_buffer_size (> 128.0K, or always use indexes with joins)
tmp_table_size (> 32M)
max_heap_table_size (> 16M)
thread_cache_size (start at 4)
table_cache (> 1024)
open_files_limit (> 2158)
это: (> 64M) означает что надо выставить больше 64М?
порекомендуйте настройки для уменьшения нагрузки если не сложно.
Смотрите в PMA "Статус сервера", смотрите циферки которые красным, там всё явно написано какой параметр увеличить. (например если кэша не хватает), так же подскажет если не хватает индексов, в таколм случае необходимо править структуру таблиц и добавлять индексы (для быстрых выборок)
да, если написано >64M значит он предлагает выставить больше.
Начать следует с определения куда же именно упирается mysql. Ставьте мониторинг и смотрите как изменяется iowait. Если iowait низкий, а процессор CPU все равно нагружен, вероятно вам вообще никакие подкрутки в mysql не помогут. Тут только приложение писать оптимальнее.
Вообще, не видя сервер мало шансов угадать правильные настройки, иначе бы в поставке mysql уже был бы правильный конфиг :)
When making adjustments, make tmp_table_size/max_heap_table_size equall - и правда забыли.
thread_cache_size (start at 4) - а это точно сделайте. хуже не будет
[!!] Temporary tables created on disk: 64% - некоторые приложения всегда используют сортировку на диске. tmp_table_size =32M уже достаточно много и это признак именно такого приложения.
Debian, оперативки 12Гб, в последнее время mysql нагружает CPU до 87%, в my.cnf:
MySQLTuner дает следующие данные:
-------- Storage Engine Statistics -------------------------------------------
[OK] Maximum possible memory usage: 688.7M (5% of installed RAM)
это: (> 64M) означает что надо выставить больше 64М?
Это - да, значит что советует выставить больше (значитЬ то, что значитЬ). Сколько выставить - нужно приблизительно представлять что значит каждый параметр (для чего есть документация). Выделяется ли память там для сервера в целом или под каждое соединение. В любом случае - пока мускул использует малую толику ресурсов памяти - отчего бы не начать давать ему больше, экспериментируя с измененными значениями...
"По фотографии" лечить сервер довольно бессмысленно. "Общие" советы, которые Вам дадут - не лучше того же mysqltuner'а. Так что либо пригласите кого-то оптимизировать за Вас сервер - либо последуйте совету скрипта.
В любом случае - пока мускул использует малую толику ресурсов памяти - отчего бы не начать давать ему больше, экспериментируя с измененными значениями
логично, но в случае с query_cache это вредно.
Прочистка большого кеша может занять занять секунды и вы не сможете понять от чего запрос вдруг тормозит. Так что оптимально остановиться уже на 256Mb.
( На самом деле отдельные личности высказываются еще более категорично http://mituzas.lt/2009/07/08/query-cache-tuning/. Внимание, юмор! )
всем спасибо, экспериментирую,
join_buffer_size =128M правильно или надо 128К ?
Никто не скажет точно.
Но раз уж памяти у вас в избытке, попробуйте для начала 16M туда вписать.
выставил:
skip-innodb
key_buffer = 512M
table_cache = 2048
sort_buffer_size = 128K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 128K
thread_cache_size = 8
query_cache_type=1
query_cache_size=128M
open_files_limit = 8192
tmp_table_size = 64M
max_heap_table_size = 32M
join_buffer_size = 32M
вроде шустрее сайты стали работать, но иногда mysql нагружает CPU до 120%
всем спасибо, экспериментирую,
join_buffer_size =128M правильно или надо 128К ?
Вам написали "> 128К" - что непонятного-то? Вы не знаете, что означает знак ">" ?
выставил:
И прям так за несколько часов собрали новую статистику для mysqltuner? Там же не зря написано, что подождать имеет смысл... Что он теперь показывает Вам?
вроде шустрее сайты стали работать, но иногда mysql нагружает CPU до 120%
Где Вы такую цифру углядели, что она означает?
вроде шустрее сайты стали работать, но иногда mysql нагружает CPU до 120%
Как можно нагрузить CPU на 120 процентов? Он, по логике, должен был сгореть... ☝
Inet-Ark, так top иногда может показать.