powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Нужен совет по конфигурации MySQL (32Gb RAM)
57 сообщений из 57, показаны все 3 страниц
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407018
pachimuta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги,

подскажите плз, как грамотно сконфигурировать MySQL где сервер имеет 32Gb RAM

Имеется веб-сервер на базе форума + встроенная в него система со своей базой.
В моменты максимальных нагрузок (более 400 одновременных пользователей) сервер затыкается в основном по процессорному времени. В памяти занято порядка 2-3GB, хотя вся база целиком занимает 3GB.

Вопрос, можно ли как-то перенести нагрузку с процессора и дисковой подсистемы на память? Кэши, мемкеши - все это стоит.
Можно ли организовать основную работу базы в памяти, раз она вся туда помещается, а на диск делать только операции записи?

PS. Настроена репликация на резервный сервер, но это в качестве запасного аэродрома, т.к. время простоя критично.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407109
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой движок таблиц используется?
Покажите текущий конфиг в спойлере.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407126
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
из опыта работы с другими форумами, я могу предположить, что 400 юзеров - очень мало чтобы довести до 100% загрузки "север на 32гб", в предположении что там еще и все остальные комплектующие соответствующие. Скорее всего отдельные неудачные запросы все портят. Вам нужен анализ вашей конкретной ситуации и в первую очередь производительности запросов.

pachimuta грамотно сконфигурировать MySQL где сервер имеет 32Gb RAM
Да никак. "Грамотность" в IT - оправдание для шаблонности мышления. Все, что удовлетворяет вашим запросам - грамотно.

pachimutaМожно ли организовать основную работу базы в памяти, раз она вся туда помещается, а на диск делать только операции записи?
А то. Но это типа "неграмотно", ведь данные пропадают при перезагрузке. С другой стороны, шаблоны экономят время и предостерегают от совсем уж неправильных решений.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407131
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwind400 юзеров - очень мало чтобы довести до 100% загрузки "север на 32гб"Зависит от терминологии и неявно подразумевающегося смысла (который у всех разный).
Если это 400 юзеров, которые в браузере смотрят на страничку сайта - это, действительно, не так много.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407151
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftnetwind400 юзеров - очень мало чтобы довести до 100% загрузки "север на 32гб"Зависит от терминологии и неявно подразумевающегося смысла (который у всех разный).
Если это 400 юзеров, которые в браузере смотрят на страничку сайта - это, действительно, не так много.
экслуатанты коробочных форумов понимают это почти что однозначно. Там существует таблица сессий, записи из которой удаляются по истечении 15 минут неактивности.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407169
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pachimuta
подскажите плз, как грамотно сконфигурировать MySQL где сервер имеет 32Gb RAM


Ну, во-первых, СУБД должна стоять на отдельной машине. Кроме неё на этой машине не должно быть ничего работающего, кроме самых необходимых служб операционной системы.

Далее, всю память кроме скажем 2 гигов отводишь под MySQL, как это сделать -- написано в документации по конфигурации конкретного Engine. Лучше использовать только один Engine и ему отдать всю память. Ну, на самом деле не всю конечно, там будет процентов 80 от оставшихся 30 гигов.

pachimuta
Вопрос, можно ли как-то перенести нагрузку с процессора и дисковой подсистемы на память? Кэши, мемкеши - все это стоит.


Удаляй. Они ни на фиг не нужны. На этой машине. На других -- пожалуйста.

pachimutaМожно ли организовать основную работу базы в памяти, раз она вся туда помещается, а на диск делать только операции записи?


Ну, памяти под буфера отдай больше. Примерно 80 % от 30 гигов. Подробности в доках.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407173
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
из опыта работы с другими форумами, я могу предположить, что 400 юзеров - очень мало чтобы довести до 100% загрузки "север на 32гб",

Так это смотря какие пользователи и какая нагрузка.

До 100% загрузки CPU и один запрос может довести. И это кстати хорошо.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407179
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivДо 100% загрузки CPU и один запрос может довести. И это кстати хорошо.
Кстати, нет. Mysql не умеет обрабатывать один запрос на нескольких ядрах. Наверняка многоядерный процессор имеется.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407198
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwindMasterZivДо 100% загрузки CPU и один запрос может довести. И это кстати хорошо.
Кстати, нет. Mysql не умеет обрабатывать один запрос на нескольких ядрах. Наверняка многоядерный процессор имеется.

Я имел в виду однопроцессорный комп, конечно.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407220
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivНу, памяти под буфера отдай больше. Примерно 80 % от 30 гигов.На для зачем????
У него вся база 3 ГБ.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407394
pachimuta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Конфиг выложу сегодня вечером, доберусь когда до него.

Согласен, скорее всего не сам форумный движок тянет все, а именно так "подсистема", которая к этому движку прикручена. Судя по аналитике, основные страницы, на которых сидят, как раз тянут инфу с этого плагина. Там особо не накэшируешься.

И все же самый главный принципиальный вопрос: можно ли вытащить всю базу в память (на чтение), и перестраивать в памяти только те фрагменты, на которые прошла запись? Т.е., чтобы важные записываемые данные не терялись, а данные для чтения всегда держались в памяти, соответственно оттуда же строились всевозможные запросы.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407396
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pachimuta,

wget mysqltuner.pl
perl mysqltuner.pl

https://github.com/major/MySQLTuner-perl

это подсказки -- по любому надо понимать о чем они,
и применять осторожно, постепено, с проверяя ресультат.

Надо смотерть также slow query log и также
исолировать медленые страницы и
процессы ма медленых страницах --
учти что страница может быть медленая и
не из-за базы.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407402
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pachimutaИ все же самый главный принципиальный вопрос: можно ли вытащить всю базу в память (на чтение), и перестраивать в памяти только те фрагменты, на которые прошла запись? Т.е., чтобы важные записываемые данные не терялись, а данные для чтения всегда держались в памяти, соответственно оттуда же строились всевозможные запросы.Ответить будет можно, когда ответите на самый первый вопрос.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407411
pachimuta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я смотрю по htop на сервере. Там затыки именно на уровне процессов mysql. На скорость страниц я не жалуюсь.
Все, что было больше 2сек в запросах я вроде бы прооптимизировал.


Самое интересное конечно вечерком выложу.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407419
pachimuta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Движок myISAM
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407483
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pachimutaДвижок myISAMТогда ответ частично отрицательный. MyISAM не имеет общего кэша таблиц, но имеет кэш индексов. Потенциально, файлы таблиц могут кэшироваться на уровне кэша файловой системы, но тут я не уверен.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407528
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
таки кто нить запросы промониторить предложит?
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407558
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftMasterZivНу, памяти под буфера отдай больше. Примерно 80 % от 30 гигов.На для зачем????
У него вся база 3 ГБ.

Ну, потом-то он будет больше наверное... БД зачем заводят? Обычно, чтобы данные туда заполнять.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407561
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pachimuta
И все же самый главный принципиальный вопрос: можно ли вытащить всю базу в память

Можно, и на чтение, и на запись. Просто надо указать достаточный объём для буферов данных.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407581
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторМожно, и на чтение, и на запись.
для MyISam - нет.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407665
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407682
pachimuta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разрабатывая текущий проект, задался вопросами:
1. почему же до сих пор нет решения для построения распределенной базы данных с некритической к постоянному соединению системой синхронизации/репликации данных
2. это ведь довольно просто должно быть написать движок, который бы считывал из таблиц данные и индексы, оперировал бы ими полностью в оперативке, а на винт записывались бы только изменения. Скорость базы возросла бы на порядок, я так понимаю?
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407694
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pachimutaРазрабатывая текущий проект, задался вопросами:
1. почему же до сих пор нет решения для построения распределенной базы данных с некритической к постоянному соединению системой синхронизации/репликации данных

Ну если вы не смогли проанализировать решения, то это не значит что их нет в природе.
Полно разной хипстерской шняги для написания инстаграммов и прочих бесполезных вещей. И в подфоруме NoSQL вам о ней расскажут.
А у нас тут настоящие бородатые программисты в свитерах.

2. это ведь довольно просто должно быть написать движок, который бы считывал из таблиц данные и индексы, оперировал бы ими полностью в оперативке, а на винт записывались бы только изменения. Скорость базы возросла бы на порядок, я так понимаю?
Вы не поверите, но во всех субд при наличии кеширования файлов на диск пишутся только изменения.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407704
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторэто ведь довольно просто должно быть написать движок, который бы считывал из таблиц данные и индексы, оперировал бы ими полностью в оперативке, а на винт записывались бы только изменения.
InnoDВ?
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407744
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowавторМожно, и на чтение, и на запись.
для MyISam - нет.

My isam я вообще не обсуждаю, г. это.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407869
pachimuta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Итак, конфиг

[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock

# Here is entries for some specific programs
# The following values assume you have at least 32M ram

# This was formally known as [safe_mysqld]. Both versions are currently parsed.
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0

[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/english


key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 32
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover = BACKUP
#max_connections = 100
#table_cache = 64
#thread_concurrency = 10
#
# * Query Cache Configuration
#
query_cache_limit = 64M
query_cache_size = 254M
#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
# As of 5.1 you can enable the log at runtime!
#general_log_file = /var/log/mysql/mysql.log
#general_log = 1
#
# Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf.
#
# Here you can see queries with especially long duration
#log_slow_queries = /var/log/mysql/mysql-slow.log
#long_query_time = 2
#log-queries-not-using-indexes
#
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
# other settings you may need to change.
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
replicate-do-db = ХХХХХ
max_binlog_size = 20000M
#binlog_do_db = include_database_name
#binlog_ignore_db = include_database_name
#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
#
# * Security Features
#
# Read the manual, too, if you want chroot!
# chroot = /var/lib/mysql/
#
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem



[mysqldump]
quick
quote-names
max_allowed_packet = 16M

[mysql]
#no-auto-rehash # faster start of mysql but no tab completition

[isamchk]
key_buffer = 16M

...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407871
pachimuta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
netwind2. это ведь довольно просто должно быть написать движок, который бы считывал из таблиц данные и индексы, оперировал бы ими полностью в оперативке, а на винт записывались бы только изменения. Скорость базы возросла бы на порядок, я так понимаю?
Вы не поверите, но во всех субд при наличии кеширования файлов на диск пишутся только изменения.

Правда что, не поверю :)
Вопрос ведь довольно прост: у меня есть 32Гб, я готов отдать для нужд БД все 30Гб, если ей надо, только пусть она на уровне оперативки все запросы строит и перестраивает и только в случае новых данных фигачит все на винт.
Если mySql относится ко "всем" субд, как мне заставить ее плясать ровно так, как мы придумали? Чего там накрутить надо? Я ведь накручу :)
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407874
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pachimuta, mysql уже так делает. вы ему просто не мешайте.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407878
pachimuta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
netwind,
Как это понять, мешаю я ему или нет? Какие метрики еще использовать?

Вот что говорит перл.

-------- Storage Engine Statistics -------------------------------------------
[--] Status: +Archive -BDB -Federated +InnoDB -ISAM -NDBCluster
[--] Data in MyISAM tables: 1G (Tables: 81)
[--] Data in InnoDB tables: 62M (Tables: 15)
[!!] Total fragmented tables: 36

-------- Security Recommendations -------------------------------------------
[OK] All database users have passwords assigned

-------- Performance Metrics -------------------------------------------------
[--] Up for: 205d 17h 0m 6s (1B q [72.638 qps], 68M conn, TX: 22567B, RX: 566B)
[--] Reads / Writes: 81% / 19%
[--] Total buffers: 298.0M global + 2.7M per thread (151 max threads)
[OK] Maximum possible memory usage: 703.8M (2% of installed RAM)
[OK] Slow queries: 0% (139K/1B)
[OK] Highest usage of available connections: 33% (51/151)
[OK] Key buffer size / total MyISAM indexes: 16.0M/1.4G
[OK] Key buffer hit rate: 99.7% (10740B cached / 31B reads)
[OK] Query cache efficiency: 37.1% (352M cached / 949M selects)
[!!] Query cache prunes per day: 32949
[OK] Sorts requiring temporary tables: 0% (3K temp sorts / 176M sorts)
[!!] Joins performed without indexes: 348778
[OK] Temporary tables created on disk: 22% (12M on disk / 56M total)
[OK] Thread cache hit rate: 99% (640K created / 68M connections)
[!!] Table cache hit rate: 0% (64 open / 17M opened)
[OK] Open file limit used: 10% (108/1K)
[OK] Table locks acquired immediately: 99% (1B immediate / 1B locks)
[!!] InnoDB data size / buffer pool: 62.3M/8.0M

-------- Recommendations -----------------------------------------------------
General recommendations:
Run OPTIMIZE TABLE to defragment tables for better performance
Enable the slow query log to troubleshoot bad queries
Increasing the query_cache size over 128M may reduce performance
Adjust your join queries to always utilize indexes
Increase table_cache gradually to avoid file descriptor limits
Variables to adjust:
query_cache_size (> 256M) [see warning above]
join_buffer_size (> 128.0K, or always use indexes with joins)
table_cache (> 64)
innodb_buffer_pool_size (>= 62M)


Понятно пока однозначно только то, что надо идти и оптимизировать фрагментированные таблицы.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407891
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор[!!] Joins performed without indexes: 348778
авторПонятно пока однозначно только то, что надо идти и оптимизировать фрагментированные таблицы.
да ну ?
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407895
pachimuta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Согласен, это важнее :)

Внимание, вопрос ) Как отловить в какой-нибудь лог запросы с такими джойнами?
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407904
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pachimuta,

..........[--] Up for: 205d 17h 0m 6s (1............

нехило!!!!! лучшеб если есть возможность перезапустить
и понабрать статистику за несколько последних дней.

так же имеет смысл обнулить slow query log
и добавить log-queries-not-using-indexes

http://dev.mysql.com/doc/refman/5.0/en/slow-query-log.html

By default, administrative statements are not logged, nor are queries that do not use indexes for lookups. This behavior can be changed using --log-slow-admin-statements and --log-queries-not-using-indexes, as described later.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38407911
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pachimutanetwind,
Как это понять, мешаю я ему или нет? Какие метрики еще использовать?

это непростой вопрос для веб-сервера где кеш перемешан и бд и файлов и еще бог весь чего.
Если поставите выделенный только для mysql - однозначно ничего кроме mysql эту память не будет использовать.
Однако это все равно не является прямым решением для вашего случая. Запросы могут просто работать излишне медленно.
Не стоит сразу пытаться найти все запросы not using indexes. Уверен, их довольно много. Ищите просто медленные.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38408000
pachimuta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги,

Что мы имеем в сухом остатке:
1. рекомендации по анализу и оптимизации запросов
2. рекомендацию перенести БД на отдельный сервер
3. я что-то пропустил?

Вопросы остались такими:
1. Приведенный конфиг для данных ТТХ сервера нормальный, правильный?
2. Я сделал все от меня зависящее на уровне конфига, чтобы переложить нагрузку на RAM c дисковой подсистемы и CPU?
3. У меня два сервера, репликация с боевого на запасной идет в качестве реайлтаймового бэкапа. Если я поменяю местами мастер со слейвом и на боевом оставлю только слейв (для дубля), это должно по идее сильно снизить нагрузку на него, верно?
4. Существуют ли решения, чтобы разделить чтение/запись на уровне прослойки между базой и движком, чтобы не переписывать код движка? Или до подобных манипуляций мне еще далеко и пока можно об этом не думать?
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38408036
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pachimuta1. рекомендации по анализу и оптимизации запросовЭто в обязательном порядке. Включая работу со slow query log.
pachimuta2. рекомендацию перенести БД на отдельный серверЭто, имхо, перебор при текущем соотношении размера ОЗУ и данных. С этим погодите пока.
pachimuta3. я что-то пропустил?Пропустили большую часть рекомендаций mysqltuner.pl, обратив внимание, почему-то, на самый незначительный фактор.
pachimuta[OK] Key buffer size / total MyISAM indexes: 16.0M/1.4GНе понятно, почему mysqltuner.pl написал тут ОК, когда тут совсем не ОК. Вместо key_buffer = 16M в конфиге напишите key_buffer_size = 2G. Этого хватит на текущие индексы и на те, которые, возможно, придется добавить при оптимизации запросов.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38408140
pachimuta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,
спасибо, это уже лучше. Более понятно и конкретно. Я с mysql возюкаюсь с помощью гугла в основном, поэтому прошу прощения за свой нубизм. Но если бы я был неимоверно крут в mysql сюда бы не зашел :)
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38408179
lazydog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38408185
lazydog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Proverte blokirovki, vozmogno chto zatik
Iz za blokirovki tablici, myisam blokiruetsya
Na urovne tablici
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38408190
pachimuta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lazydog,
Мысль понял, кажется дельной, как это можно отмониторить в реальном режиме?
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38408310
lazydog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Posmotrite chto google pishet, k primeru

https://www.google.co.uk/search?q=myisam lock monitor&ie=UTF-8&oe=UTF-8&hl=en-gb&client=safari

Vozmogno rassmotret kakoy nibud monito
Ring. Ya bi sdelal prosto, zapuskat show
Processlist k primeru kagdie 5 sec , i
Posmotret mnogo li blokirovok. Esli blokirovok
Mnogo, rassmotrite variant perrhoda na Innodb
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38408361
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pachimutaКоллеги,

Что мы имеем в сухом остатке:
...
2. рекомендацию перенести БД на отдельный сервер

Это не совсем рекомендация. Но если вы это сделаете, то ваше предложение по использованию RAM будет наверняка выполняться. Недостаточно данных чтобы спрогнозировать будет ли заметный эффект в целом или нет.

1. Приведенный конфиг для данных ТТХ сервера нормальный, правильный?

2. Я сделал все от меня зависящее на уровне конфига, чтобы переложить нагрузку на RAM c дисковой подсистемы и CPU?

нужно изменить key_buffer_size в первую очередь.

Чтобы обеспечить побольше памяти для кеша ОС, нужно подобрать такие параметры программы apache или что там у вас крутит сайт, не "смывали" кеш в оперативной памяти. Для некоторых выглядит странной настройка типа MaxClients 50 для сервера о 32 гб памяти, но это вполне нормальная и обоснованная настройка.
Кроме того, в кеше есть еще и другие файлы и с ними еще сложнее становится.

3. У меня два сервера, репликация с боевого на запасной идет в качестве реайлтаймового бэкапа. Если я поменяю местами мастер со слейвом и на боевом оставлю только слейв (для дубля), это должно по идее сильно снизить нагрузку на него, верно?

Здесь я не понял вообще.

4. Существуют ли решения, чтобы разделить чтение/запись на уровне прослойки между базой и движком, чтобы не переписывать код движка? Или до подобных манипуляций мне еще далеко и пока можно об этом не думать?
Например, в vbulletin код изначально строился таким.
Еще покопайтесь с драйвером mysqlnd. По-моему там что-то было на эту тему.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38408448
pachimuta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
netwind3. У меня два сервера, репликация с боевого на запасной идет в качестве реайлтаймового бэкапа. Если я поменяю местами мастер со слейвом и на боевом оставлю только слейв (для дубля), это должно по идее сильно снизить нагрузку на него, верно?

Здесь я не понял вообще.


Ок, подробнее расскажу.
У меня два сервера.
Один боевой. На нем крутится apache, nginx и mysql со всякими кэшами.
Второй резервный. На него идет репликация базы (как бэкап, если вдруг падает основной сервер) + синхронизация файловой системы на случай, если основной выходит из строя.

Т.е. вся нагрузка идет на основной. На второй складываются бэкапы и теоретически он должен быть готов в любой момент перенять эстафету, если просто переключить ДНС.
Можно распределить нагрузку так: на боевом сервере остается рабочий apache + nginx. База (master) переносится на второй сервер, но, поскольку запас мне нужен на случай краха сервера, slave мне придется деражть на первом сервер.
Так понятнее?
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38408530
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторчто там у вас крутит сайт, не "смывали" кеш в оперативной памяти
вот расскажите как при 30 гигах свободных что то там смоет кэш?
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38408535
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор Я сделал все от меня зависящее на уровне конфига, чтобы переложить нагрузку на RAM c дисковой подсистемы и CPU?
переходите на innodb. оно может держать в памяти и интексы и данные.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38408538
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://dev.mysql.com/doc/refman/5.5/en/slow-query-log.html
авторBy default, administrative statements are not logged, nor are queries that do not use indexes for lookups. This behavior can be c
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38408539
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
By default, administrative statements are not logged, nor are queries that do not use indexes for lookups. This behavior can be changed using --log-slow-admin-statements and log_queries_not_using_indexes, as described later.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38408604
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowавторчто там у вас крутит сайт, не "смывали" кеш в оперативной памяти
вот расскажите как при 30 гигах свободных что то там смоет кэш?
Поскольку не описан объем остальных данных и происходящие процессы, то такое вполне возможно.

авторпереходите на innodb. оно может держать в памяти и интексы и данные.
хабрахабр там ->
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38408614
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pachimutanetwindпропущено...

Здесь я не понял вообще.


Ок, подробнее расскажу.
У меня два сервера.
Один боевой. На нем крутится apache, nginx и mysql со всякими кэшами.
Второй резервный. На него идет репликация базы (как бэкап, если вдруг падает основной сервер) + синхронизация файловой системы на случай, если основной выходит из строя.

Т.е. вся нагрузка идет на основной. На второй складываются бэкапы и теоретически он должен быть готов в любой момент перенять эстафету, если просто переключить ДНС.
Можно распределить нагрузку так: на боевом сервере остается рабочий apache + nginx. База (master) переносится на второй сервер, но, поскольку запас мне нужен на случай краха сервера, slave мне придется деражть на первом сервер.
Так понятнее?

Так понятно.
Я пока не поддерживаю вашу идею пытаться все загнать в память, поскольку вы еще не исчерпали остальные методы оптимизации и вообще не занимались оптимизацией запросов.
Но да, описанный пособ обеспечит засасывание всей базы в память и исключит любое влияние остальных процессов на веб-сервере на mysql. В том числе которые вы не сможете распознать. Своего рода страховка. И, очевидно, производительность не ухудшится.
В этом случае нужно прежде всего убедиться, что связь между серверами достаточно быстрая. Как минимум один оба в одном датацентре, как максимум - соединенные медной веревочкой в 1 метр.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38408617
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторхабрахабр там ->
меня на этой неделе там в рид онли перевели. так что непойдет.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38409138
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pachimuta,

Что мы имеем в сухом остатке:
1. рекомендации по анализу и оптимизации запросов
2. рекомендацию перенести БД на отдельный сервер
3. я что-то пропустил?

3. Почти всю память под буфера субд.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38472362
pachimuta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашел тут способ по перемещению временных файлов mysql в память.
Странно, что никто его не предложил. Он малоэффективен?
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38472562
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pachimutaНашел тут способ по перемещению временных файлов mysql в память.
Странно, что никто его не предложил. Он малоэффективен?"Тут" - это где?

В моем случае, когда я налетал на тяжелые временные файлы, они были по размеру сильно больше оперативной памяти.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38472609
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pachimutaНашел тут способ по перемещению временных файлов mysql в память.
Странно, что никто его не предложил. Он малоэффективен?
Эффективен настолько насколько он эффективен в каждой конкретной ситуации.
вы не привели никаких данных, из которых следовало бы, что вам это нужно.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38472730
pachimuta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну в моем случае тяжелые запросы выполняются с построением временных таблиц. Кажется, что решение переместить эти операции в оперативную память само по себе уже неплохо )
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38517431
InterSky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwindТем не менее, можно предположить, что самым важным для вас должен стать анализ медленных запросов.
Если нет запросов длиннее 2 секунд, то уменьшите таймаут и снова проанализируйте.
Я правильно понимаю, что всё что он сможет, это уменьшить таймаут с двух секнд до одной, вот и все тесты?

ДокументацияThe slow query log consists of SQL statements that took more than long_query_time seconds to execute. The minimum and default values of long_query_time are 1 and 10, respectively.
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38517432
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
InterSkynetwindТем не менее, можно предположить, что самым важным для вас должен стать анализ медленных запросов.
Если нет запросов длиннее 2 секунд, то уменьшите таймаут и снова проанализируйте.
Я правильно понимаю, что всё что он сможет, это уменьшить таймаут с двух секнд до одной, вот и все тесты?

ДокументацияThe slow query log consists of SQL statements that took more than long_query_time seconds to execute. The minimum and default values of long_query_time are 1 and 10, respectively.


http://hackmysql.com/slowlog
...
Рейтинг: 0 / 0
Нужен совет по конфигурации MySQL (32Gb RAM)
    #38517451
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
InterSkynetwindТем не менее, можно предположить, что самым важным для вас должен стать анализ медленных запросов.
Если нет запросов длиннее 2 секунд, то уменьшите таймаут и снова проанализируйте.
Я правильно понимаю, что всё что он сможет, это уменьшить таймаут с двух секнд до одной, вот и все тесты?

поскольку ТС порезал полный вывод от mysqltuner в целях нас запутать, мы не узнаем точную версию сервера. Известно только, что в новых версиях можно задавать значения и до долей секунд.
...
Рейтинг: 0 / 0
57 сообщений из 57, показаны все 3 страниц
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Нужен совет по конфигурации MySQL (32Gb RAM)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]