|
|
|
Нужен совет по конфигурации MySQL (32Gb RAM)
|
|||
|---|---|---|---|
|
#18+
Коллеги, подскажите плз, как грамотно сконфигурировать MySQL где сервер имеет 32Gb RAM Имеется веб-сервер на базе форума + встроенная в него система со своей базой. В моменты максимальных нагрузок (более 400 одновременных пользователей) сервер затыкается в основном по процессорному времени. В памяти занято порядка 2-3GB, хотя вся база целиком занимает 3GB. Вопрос, можно ли как-то перенести нагрузку с процессора и дисковой подсистемы на память? Кэши, мемкеши - все это стоит. Можно ли организовать основную работу базы в памяти, раз она вся туда помещается, а на диск делать только операции записи? PS. Настроена репликация на резервный сервер, но это в качестве запасного аэродрома, т.к. время простоя критично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2013, 11:53:43 |
|
||
|
Нужен совет по конфигурации MySQL (32Gb RAM)
|
|||
|---|---|---|---|
|
#18+
Какой движок таблиц используется? Покажите текущий конфиг в спойлере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2013, 13:01:39 |
|
||
|
Нужен совет по конфигурации MySQL (32Gb RAM)
|
|||
|---|---|---|---|
|
#18+
из опыта работы с другими форумами, я могу предположить, что 400 юзеров - очень мало чтобы довести до 100% загрузки "север на 32гб", в предположении что там еще и все остальные комплектующие соответствующие. Скорее всего отдельные неудачные запросы все портят. Вам нужен анализ вашей конкретной ситуации и в первую очередь производительности запросов. pachimuta грамотно сконфигурировать MySQL где сервер имеет 32Gb RAM Да никак. "Грамотность" в IT - оправдание для шаблонности мышления. Все, что удовлетворяет вашим запросам - грамотно. pachimutaМожно ли организовать основную работу базы в памяти, раз она вся туда помещается, а на диск делать только операции записи? А то. Но это типа "неграмотно", ведь данные пропадают при перезагрузке. С другой стороны, шаблоны экономят время и предостерегают от совсем уж неправильных решений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2013, 13:17:03 |
|
||
|
Нужен совет по конфигурации MySQL (32Gb RAM)
|
|||
|---|---|---|---|
|
#18+
netwind400 юзеров - очень мало чтобы довести до 100% загрузки "север на 32гб"Зависит от терминологии и неявно подразумевающегося смысла (который у всех разный). Если это 400 юзеров, которые в браузере смотрят на страничку сайта - это, действительно, не так много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2013, 13:21:35 |
|
||
|
Нужен совет по конфигурации MySQL (32Gb RAM)
|
|||
|---|---|---|---|
|
#18+
miksoftnetwind400 юзеров - очень мало чтобы довести до 100% загрузки "север на 32гб"Зависит от терминологии и неявно подразумевающегося смысла (который у всех разный). Если это 400 юзеров, которые в браузере смотрят на страничку сайта - это, действительно, не так много. экслуатанты коробочных форумов понимают это почти что однозначно. Там существует таблица сессий, записи из которой удаляются по истечении 15 минут неактивности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2013, 13:34:12 |
|
||
|
Нужен совет по конфигурации MySQL (32Gb RAM)
|
|||
|---|---|---|---|
|
#18+
pachimuta подскажите плз, как грамотно сконфигурировать MySQL где сервер имеет 32Gb RAM Ну, во-первых, СУБД должна стоять на отдельной машине. Кроме неё на этой машине не должно быть ничего работающего, кроме самых необходимых служб операционной системы. Далее, всю память кроме скажем 2 гигов отводишь под MySQL, как это сделать -- написано в документации по конфигурации конкретного Engine. Лучше использовать только один Engine и ему отдать всю память. Ну, на самом деле не всю конечно, там будет процентов 80 от оставшихся 30 гигов. pachimuta Вопрос, можно ли как-то перенести нагрузку с процессора и дисковой подсистемы на память? Кэши, мемкеши - все это стоит. Удаляй. Они ни на фиг не нужны. На этой машине. На других -- пожалуйста. pachimutaМожно ли организовать основную работу базы в памяти, раз она вся туда помещается, а на диск делать только операции записи? Ну, памяти под буфера отдай больше. Примерно 80 % от 30 гигов. Подробности в доках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2013, 13:42:24 |
|
||
|
Нужен совет по конфигурации MySQL (32Gb RAM)
|
|||
|---|---|---|---|
|
#18+
из опыта работы с другими форумами, я могу предположить, что 400 юзеров - очень мало чтобы довести до 100% загрузки "север на 32гб", Так это смотря какие пользователи и какая нагрузка. До 100% загрузки CPU и один запрос может довести. И это кстати хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2013, 13:43:45 |
|
||
|
Нужен совет по конфигурации MySQL (32Gb RAM)
|
|||
|---|---|---|---|
|
#18+
MasterZivДо 100% загрузки CPU и один запрос может довести. И это кстати хорошо. Кстати, нет. Mysql не умеет обрабатывать один запрос на нескольких ядрах. Наверняка многоядерный процессор имеется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2013, 13:46:15 |
|
||
|
Нужен совет по конфигурации MySQL (32Gb RAM)
|
|||
|---|---|---|---|
|
#18+
netwindMasterZivДо 100% загрузки CPU и один запрос может довести. И это кстати хорошо. Кстати, нет. Mysql не умеет обрабатывать один запрос на нескольких ядрах. Наверняка многоядерный процессор имеется. Я имел в виду однопроцессорный комп, конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2013, 13:57:06 |
|
||
|
Нужен совет по конфигурации MySQL (32Gb RAM)
|
|||
|---|---|---|---|
|
#18+
MasterZivНу, памяти под буфера отдай больше. Примерно 80 % от 30 гигов.На для зачем???? У него вся база 3 ГБ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2013, 14:12:15 |
|
||
|
Нужен совет по конфигурации MySQL (32Gb RAM)
|
|||
|---|---|---|---|
|
#18+
Конфиг выложу сегодня вечером, доберусь когда до него. Согласен, скорее всего не сам форумный движок тянет все, а именно так "подсистема", которая к этому движку прикручена. Судя по аналитике, основные страницы, на которых сидят, как раз тянут инфу с этого плагина. Там особо не накэшируешься. И все же самый главный принципиальный вопрос: можно ли вытащить всю базу в память (на чтение), и перестраивать в памяти только те фрагменты, на которые прошла запись? Т.е., чтобы важные записываемые данные не терялись, а данные для чтения всегда держались в памяти, соответственно оттуда же строились всевозможные запросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2013, 15:33:40 |
|
||
|
Нужен совет по конфигурации MySQL (32Gb RAM)
|
|||
|---|---|---|---|
|
#18+
pachimuta, wget mysqltuner.pl perl mysqltuner.pl https://github.com/major/MySQLTuner-perl это подсказки -- по любому надо понимать о чем они, и применять осторожно, постепено, с проверяя ресультат. Надо смотерть также slow query log и также исолировать медленые страницы и процессы ма медленых страницах -- учти что страница может быть медленая и не из-за базы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2013, 15:33:54 |
|
||
|
Нужен совет по конфигурации MySQL (32Gb RAM)
|
|||
|---|---|---|---|
|
#18+
pachimutaИ все же самый главный принципиальный вопрос: можно ли вытащить всю базу в память (на чтение), и перестраивать в памяти только те фрагменты, на которые прошла запись? Т.е., чтобы важные записываемые данные не терялись, а данные для чтения всегда держались в памяти, соответственно оттуда же строились всевозможные запросы.Ответить будет можно, когда ответите на самый первый вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2013, 15:38:35 |
|
||
|
Нужен совет по конфигурации MySQL (32Gb RAM)
|
|||
|---|---|---|---|
|
#18+
Я смотрю по htop на сервере. Там затыки именно на уровне процессов mysql. На скорость страниц я не жалуюсь. Все, что было больше 2сек в запросах я вроде бы прооптимизировал. Самое интересное конечно вечерком выложу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2013, 15:41:34 |
|
||
|
Нужен совет по конфигурации MySQL (32Gb RAM)
|
|||
|---|---|---|---|
|
#18+
Движок myISAM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2013, 15:43:33 |
|
||
|
Нужен совет по конфигурации MySQL (32Gb RAM)
|
|||
|---|---|---|---|
|
#18+
pachimutaДвижок myISAMТогда ответ частично отрицательный. MyISAM не имеет общего кэша таблиц, но имеет кэш индексов. Потенциально, файлы таблиц могут кэшироваться на уровне кэша файловой системы, но тут я не уверен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2013, 16:17:17 |
|
||
|
Нужен совет по конфигурации MySQL (32Gb RAM)
|
|||
|---|---|---|---|
|
#18+
таки кто нить запросы промониторить предложит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2013, 16:48:06 |
|
||
|
Нужен совет по конфигурации MySQL (32Gb RAM)
|
|||
|---|---|---|---|
|
#18+
miksoftMasterZivНу, памяти под буфера отдай больше. Примерно 80 % от 30 гигов.На для зачем???? У него вся база 3 ГБ. Ну, потом-то он будет больше наверное... БД зачем заводят? Обычно, чтобы данные туда заполнять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2013, 17:08:30 |
|
||
|
Нужен совет по конфигурации MySQL (32Gb RAM)
|
|||
|---|---|---|---|
|
#18+
pachimuta И все же самый главный принципиальный вопрос: можно ли вытащить всю базу в память Можно, и на чтение, и на запись. Просто надо указать достаточный объём для буферов данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2013, 17:10:14 |
|
||
|
Нужен совет по конфигурации MySQL (32Gb RAM)
|
|||
|---|---|---|---|
|
#18+
авторМожно, и на чтение, и на запись. для MyISam - нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2013, 17:22:49 |
|
||
|
Нужен совет по конфигурации MySQL (32Gb RAM)
|
|||
|---|---|---|---|
|
#18+
miksoftpachimutaДвижок myISAMТогда ответ частично отрицательный. MyISAM не имеет общего кэша таблиц, но имеет кэш индексов. Потенциально, файлы таблиц могут кэшироваться на уровне кэша файловой системы, но тут я не уверен. Совершенно точно данные myisam кешируются на уровне ОС. Кроме того, при использовании myisam_use_mmap=1 еще и экономятся системные вызовы на чтение файлов. Хотя зачастую эта настройка дает лишь небольшой прирост. Плохо то, что при совместной работе mysql и веба, какие-то проблемы на вебе или бекапы этот самый кеш "смывают". С innodb такого не происходит. И даже несмотря на все это, myisam намного проще и зачастую производительность в вебе все равно лучше innodb. Теперь о картинке. htop - отстой. Из всех программ вы выбрали самую бесполезную, но цветастую. По картинке нельзя оценить ни показатель iowait, ни долю user cpu в нагрузке на процессор. Используйте обычный top, два раза выше упомянутую программу pt-summary (она снимает то же самое за 10 секунд) или atop, который еще и логи пишет весьма интересные и позволяющие "промотать" картинку назад во времени. Тем не менее, можно предположить, что самым важным для вас должен стать анализ медленных запросов. Если нет длиннее 2 секунд, то уменьшите таймаут и снова проанализируйте. Еще видно, что mysql весьма мало памяти использует. Это значит что можно увеличить key_buffer_size. Попробуйте также советы от программы mysqltuner, но сильно не увлекайтесь. Используйте ее только для оценки key_buffer_size. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2013, 18:44:46 |
|
||
|
Нужен совет по конфигурации MySQL (32Gb RAM)
|
|||
|---|---|---|---|
|
#18+
Разрабатывая текущий проект, задался вопросами: 1. почему же до сих пор нет решения для построения распределенной базы данных с некритической к постоянному соединению системой синхронизации/репликации данных 2. это ведь довольно просто должно быть написать движок, который бы считывал из таблиц данные и индексы, оперировал бы ими полностью в оперативке, а на винт записывались бы только изменения. Скорость базы возросла бы на порядок, я так понимаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2013, 19:03:57 |
|
||
|
Нужен совет по конфигурации MySQL (32Gb RAM)
|
|||
|---|---|---|---|
|
#18+
pachimutaРазрабатывая текущий проект, задался вопросами: 1. почему же до сих пор нет решения для построения распределенной базы данных с некритической к постоянному соединению системой синхронизации/репликации данных Ну если вы не смогли проанализировать решения, то это не значит что их нет в природе. Полно разной хипстерской шняги для написания инстаграммов и прочих бесполезных вещей. И в подфоруме NoSQL вам о ней расскажут. А у нас тут настоящие бородатые программисты в свитерах. 2. это ведь довольно просто должно быть написать движок, который бы считывал из таблиц данные и индексы, оперировал бы ими полностью в оперативке, а на винт записывались бы только изменения. Скорость базы возросла бы на порядок, я так понимаю? Вы не поверите, но во всех субд при наличии кеширования файлов на диск пишутся только изменения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2013, 19:19:37 |
|
||
|
Нужен совет по конфигурации MySQL (32Gb RAM)
|
|||
|---|---|---|---|
|
#18+
авторэто ведь довольно просто должно быть написать движок, который бы считывал из таблиц данные и индексы, оперировал бы ими полностью в оперативке, а на винт записывались бы только изменения. InnoDВ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2013, 19:44:12 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=193&tid=1835456]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
17ms |
get topic data: |
5ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 192ms |
| total: | 284ms |

| 0 / 0 |
