Я проведу презентацию через пару недель. Часть этой демонстрации предназначена для устранения основных проблем с mysql, включая использование журнала медленных запросов. Я создал базу данных и установил наше приложение, но это чистая база данных, и поэтому сложно создать достаточно проблем.
Я пробовал следующее, чтобы получать запросы в журнале медленных запросов:
Установите время медленного запроса на 1 секунду.
Удалено несколько индексов.
Подчеркнул систему:
stress --cpu 100 --io 100 --vm 2 --vm-bytes 128M --timeout 1m
Написал сценарии для некоторых основных вызовов веб-страниц с помощью wget.
Ничто из этого не привело к медленным запросам. Есть ли другой способ искусственно нагружать базу данных для создания проблем? У меня недостаточно навыков, чтобы написать сложный Jmeter или другой генератор нагрузки. Я надеюсь, что, возможно, что-то встроено в mysql или какой-нибудь другой трюк с Linux, не вызывающий стресса.
Полностью искусственный, но вы можете использовать sleep()
функция:
select sleep(10);
В журнале:
Time Id Command Argument
# Time: 110629 16:19:13
# User@Host: mysql[mysql] @ localhost []
# Query_time: 10.000218 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0
SET timestamp=1309389553;
select sleep(10);
Проверять, выписываться mysqlslap. Вы можете передать один из запросов своего веб-приложения с помощью --query и указать одновременных клиентов с помощью --concurrency.
Возможно, вам может помочь изменение настройки базы данных? Например, уменьшение размера key_buffers?