|
|
|
вопрос по тюнингу mysql
|
|||
|---|---|---|---|
|
#18+
есть впс, 512 озу, 2 ядра, все таблицы myisam, ~1500 таблиц есть стандартный конфиг mysql my-medium.cnf автор# Example MySQL config file for medium systems. # # This is for a system with little memory (32M - 64M) where MySQL plays # an important part, or systems up to 128M where MySQL is used together with # other programs (such as a web server) # # MySQL programs look for option files in a set of # locations which depend on the deployment platform. # You can copy this option file to one of those # locations. For information about these locations, see: # http://dev.mysql.com/doc/mysql/en/option-files.html # # In this file, you can use all long options that a program supports. # If you want to know which options a program supports, run the program # with the "--help" option. # The following options will be passed to all MySQL clients [client] #password = your_password port = 3306 socket = /var/lib/mysql/mysql.sock # Here follows entries for some specific programs # The MySQL server [mysqld] port = 3306 socket = /var/lib/mysql/mysql.sock skip-locking key_buffer_size = 16M max_allowed_packet = 1M table_open_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M # Don't listen on a TCP/IP port at all. This can be a security enhancement, # if all processes that need to connect to mysqld run on the same host. # All interaction with mysqld must be made via Unix sockets or named pipes. # Note that using this option without enabling named pipes on Windows # (via the "enable-named-pipe" option) will render mysqld useless! # #skip-networking # Replication Master Server (default) # binary logging is required for replication log-bin=mysql-bin # binary logging format - mixed recommended binlog_format=mixed # required unique id between 1 and 2^32 - 1 # defaults to 1 if master-host is not set # but will not function as a master if omitted server-id = 1 # Replication Slave (comment out master section to use this) # # To configure this host as a replication slave, you can choose between # two methods : # # 1) Use the CHANGE MASTER TO command (fully described in our manual) - # the syntax is: # # CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>, # MASTER_USER=<user>, MASTER_PASSWORD=<password> ; # # where you replace <host>, <user>, <password> by quoted strings and # <port> by the master's port number (3306 by default). # # Example: # # CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306, # MASTER_USER='joe', MASTER_PASSWORD='secret'; # # OR # # 2) Set the variables below. However, in case you choose this method, then # start replication for the first time (even unsuccessfully, for example # if you mistyped the password in master-password and the slave fails to # connect), the slave will create a master.info file, and any later # change in this file to the variables' values below will be ignored and # overridden by the content of the master.info file, unless you shutdown # the slave server, delete master.info and restart the slaver server. # For that reason, you may want to leave the lines below untouched # (commented) and instead use CHANGE MASTER TO (see above) # # required unique id between 2 and 2^32 - 1 # (and different from the master) # defaults to 2 if master-host is set # but will not function as a slave if omitted #server-id = 2 # # The replication master for this slave - required #master-host = <hostname> # # The username the slave will use for authentication when connecting # to the master - required #master-user = <username> # # The password the slave will authenticate with when connecting to # the master - required #master-password = <password> # # The port the master is listening on. # optional - defaults to 3306 #master-port = <port> # # binary logging - not required for slaves, but recommended #log-bin=mysql-bin # Uncomment the following if you are using InnoDB tables #innodb_data_home_dir = /var/lib/mysql #innodb_data_file_path = ibdata1:10M:autoextend #innodb_log_group_home_dir = /var/lib/mysql # You can set .._buffer_pool_size up to 50 - 80 % # of RAM but beware of setting memory usage too high #innodb_buffer_pool_size = 16M #innodb_additional_mem_pool_size = 2M # Set .._log_file_size to 25 % of buffer pool size #innodb_log_file_size = 5M #innodb_log_buffer_size = 8M #innodb_flush_log_at_trx_commit = 1 #innodb_lock_wait_timeout = 50 [mysqldump] quick max_allowed_packet = 16M [mysql] no-auto-rehash # Remove the next comment character if you are not familiar with SQL #safe-updates [myisamchk] key_buffer_size = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout если я использую его, то субъективно la меньше затем я добавляю такой блок авторtable_open_cache = 1500 table_definition_cache = 1500 general_log = 1 slow_query_log = 1 long_query_time = 2 slow_query_log_file = /var/log/mysql-slow.log max_connections = 50 thread_cache_size = 10 query_cache_size = 10M skip-innodb и начинается субъективно более тормознутая работа, появляется куча процессов mysqld\httpd, в основном все упирается в диск, top показывает под 90%wa пробовал добавлять по одному параметру, вроде не тормозит, такое ощущение что влияют все вместе может ли от какого то параметра быть больше вреда чем пользы? или просто совпадение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2014, 12:05:01 |
|
||
|
вопрос по тюнингу mysql
|
|||
|---|---|---|---|
|
#18+
zizi_topможет ли от какого то параметра быть больше вреда чем пользы?Конечно может. Например, если новое значение параметра предусматривает значительно бОльшее количество используемой памяти, а ее попросту нет, тогда, скорее всего, станут более активны дисковые операции со свопом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2014, 12:09:18 |
|
||
|
вопрос по тюнингу mysql
|
|||
|---|---|---|---|
|
#18+
zizi_top, для начала вы можете сами проанализировать ситуёвину: https://github.com/major/MySQLTuner-perl wget mysqltuner.pl perl mysqltuner.pl Аккуратно подкручивайте как советует этот тюнер. Если какие сомнения -- дублируйте сюдя. Ну и слоу квери читать, читать, читать... в дополнение еше можно: yum install mytop mytop (если надо юзер/пассворд) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2014, 17:39:47 |
|
||
|
вопрос по тюнингу mysql
|
|||
|---|---|---|---|
|
#18+
авторесли я использую его, то субъективно la меньше А вот не надо субъективно. Измеряйте. Учитывая, что у вас VPS, измеряйте ДОЛГО и используйте средние значения для выводов На VPS обычно соседи сильно влияют. Вот вы что-то там поменяли и потом якобы субъективно заметили ухудшения на короткий момент. А его может и не было! Ну и заодно напомним, что "тюнинг mysql" - в общем случае шарлатанство. Иногда, конечно, стоит что-то подкрутить явно лишнее. log-bin вы осмысленно включили ? key_buffer_size че такой маленький ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2014, 21:21:21 |
|
||
|
вопрос по тюнингу mysql
|
|||
|---|---|---|---|
|
#18+
log-bin выключил потому что репликация не нужна key_buffer_size счас поставил 50% от размера индексов скрипты mysqltuner.pl и tuning-primer.sh запускал, но у них на все один ответ- увеличивай, даже ставил tmp_table_size = 80M а он все твердит чтоб увеличил(хотя рекомендуют 32) разве что удобно смотреть текущие значения системы skow query есть, но там чаще всего простые запросы зато много проблемных запросов с джоинами авторYou have had 170 queries where a join could not use an index properly You have had 368 joins without keys that check for key usage after each row как я уже понял, скорость работы mysql прежде всего упирается в диск нужно либо много озу чтобы там хранить таблицы, либо быстрый диск либо все закешировать и свести запросы к базе к минимуму я счас пробую cdn, вдруг поможет разгрузить сервак ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2014, 09:37:32 |
|
||
|
вопрос по тюнингу mysql
|
|||
|---|---|---|---|
|
#18+
zizi_toplog- как я уже понял, скорость работы mysql прежде всего упирается В приложение. Mysql выполняет только, то что приложение попросит. Хорошие запросы используют меньше данных чтобы получить тот же результат, что и плохой. В изменении запросов секрет результативной осмысленной оптимизации. Все эти CDN и "всекеширование" применяются от ограниченности и безысходности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2014, 11:59:38 |
|
||
|
вопрос по тюнингу mysql
|
|||
|---|---|---|---|
|
#18+
А general_log вам зачем? Он ведь все запросы в журнал пишет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 14:20:31 |
|
||
|
вопрос по тюнингу mysql
|
|||
|---|---|---|---|
|
#18+
интересная ситуевина повесил я все сайты с большой посещалкой, да и с небольшой, на cdn с кешированием всех страниц запросы на впс уменьшились на порядок, если не больше но все равно mysql остался узким местом до этого сидел на другом впс, там правда было 1500мб озу, cdn не использовался, так вот там все сайты летали, но правда дорого было хотя здесь из 512 используется по большому счету половина автор total used free shared buffers cached Mem: 497 473 23 0 4 289 -/+ buffers/cache: 179 317 Swap: 1023 134 889 проц тоже пустой, а вот диск постоянно нагружен тестировал скорость, получилось ~40mb\s чтение\запись вот теперь думаю- тюнинг наверно тут не поможет, только смена впс? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 18:57:37 |
|
||
|
вопрос по тюнингу mysql
|
|||
|---|---|---|---|
|
#18+
zizi_top, а замечание про general-log выше довольно здравое. Видите, как получается - полезли и "натюнили" явно не нужную вам настройку. авторвот теперь думаю- тюнинг наверно тут не поможет, только смена впс? На что? На сахар? Но ведь на другом тоже клиентов масса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 19:00:31 |
|
||
|
вопрос по тюнингу mysql
|
|||
|---|---|---|---|
|
#18+
zizi_top, Индексов, я так понимаю 32 мегабайта? А какой общий размер базы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 19:00:31 |
|
||
|
вопрос по тюнингу mysql
|
|||
|---|---|---|---|
|
#18+
general-log включил, думал что влияет на запись медленных запросов на впс порядка 70 баз и ~1500 таблиц tuning-primer.sh показал 46мб индексов авторKEY BUFFER Current MyISAM index space = 46 M Current key_buffer_size = 20 M Key cache miss rate is 1 : 131 Key buffer free ratio = 46 % Your key_buffer_size seems to be too high. Perhaps you can use these resources elsewhere ну а насчет смены впс, тут как с девушками, не подошел - ищи другой счас смотрю в сторону digitalocean, обещает ssd диски ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 19:44:08 |
|
||
|
вопрос по тюнингу mysql
|
|||
|---|---|---|---|
|
#18+
zizi_topну а насчет смены впс, тут как с девушками, не подошел - ищи другой Ну это уж кому как. счас смотрю в сторону digitalocean, обещает ssd диски да, неплохая тема для mysql, кстати. Там какие-то "дроплеты", но по сути это они так обзывают предварительно нарезанные конфигурации, с локальными дисками, а НЕ В СЕТЕВОМ хранилище или еще каких-то виртуализированных вариантах. Работает как обычный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 19:47:43 |
|
||
|
вопрос по тюнингу mysql
|
|||
|---|---|---|---|
|
#18+
zizi_topgeneral-log включил, думал что влияет на запись медленных запросов на впс порядка 70 баз и ~1500 таблиц tuning-primer.sh показал 46мб индексов ну а насчет смены впс, тут как с девушками, не подошел - ищи другой счас смотрю в сторону digitalocean, обещает ssd диски выбросьте Вы этот праймер. Если не будете понимать что, как и для чего, то не поможет ни смена впс, ни что еще другое. find `mysql -NBe 'SELECT @@datadir'` -name *.MYD | xargs du -shc | tail -1 find `mysql -NBe 'SELECT @@datadir'` -name *.MYI | xargs du -shc | tail -1 Сколько? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 19:52:45 |
|
||
|
вопрос по тюнингу mysql
|
|||
|---|---|---|---|
|
#18+
netwindсчас смотрю в сторону digitalocean, обещает ssd диски да, неплохая тема для mysql, кстати. Там какие-то "дроплеты", но по сути это они так обзывают предварительно нарезанные конфигурации, с локальными дисками, а НЕ В СЕТЕВОМ хранилище или еще каких-то виртуализированных вариантах. Работает как обычный. SSD на 46 метров индексов и где-то столько же данных? Ну-ну :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 19:54:45 |
|
||
|
вопрос по тюнингу mysql
|
|||
|---|---|---|---|
|
#18+
Aleksandr Kuzminskynetwindпропущено... да, неплохая тема для mysql, кстати. Там какие-то "дроплеты", но по сути это они так обзывают предварительно нарезанные конфигурации, с локальными дисками, а НЕ В СЕТЕВОМ хранилище или еще каких-то виртуализированных вариантах. Работает как обычный. SSD на 46 метров индексов и где-то столько же данных? Ну-ну :-) «640КБ должно быть достаточно для каждого» (С) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 20:33:55 |
|
||
|
вопрос по тюнингу mysql
|
|||
|---|---|---|---|
|
#18+
Aleksandr Kuzminsky, find `mysql -NBe 'SELECT @@datadir'` -name *.MYD | xargs du -shc | tail -1 867M итого find `mysql -NBe 'SELECT @@datadir'` -name *.MYI | xargs du -shc | tail -1 52M итого ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 20:46:02 |
|
||
|
вопрос по тюнингу mysql
|
|||
|---|---|---|---|
|
#18+
zizi_topfind `mysql -NBe 'SELECT @@datadir'` -name *.MYD | xargs du -shc | tail -1 867M итого find `mysql -NBe 'SELECT @@datadir'` -name *.MYI | xargs du -shc | tail -1 52M итогоТерзают меня смутные сомнения... Что-то индексов маловато относительно данных... А может у вас просто запросы неоптимизированные и тупо индексов нужных нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 20:55:51 |
|
||
|
вопрос по тюнингу mysql
|
|||
|---|---|---|---|
|
#18+
zizi_topfind `mysql -NBe 'SELECT @@datadir'` -name *.MYD | xargs du -shc | tail -1 867M итого find `mysql -NBe 'SELECT @@datadir'` -name *.MYI | xargs du -shc | tail -1 52M итого В идеале, конечно, надо было бы добавить памяти и сделать key_buffer 50М как минимум. Памяти слишком мало, поэтому избежать дисковой активности не получится. Уже советовали выключить general_log, и смотреть запросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 21:00:36 |
|
||
|
вопрос по тюнингу mysql
|
|||
|---|---|---|---|
|
#18+
general_log отрубил, но не сильно помогло не оптимизированные запросы конечно имеются, только эти запросы генерят цмс типа джумлы, просто так запрос не изменить не получится, а индексы вешать особо некуда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 22:08:50 |
|
||
|
вопрос по тюнингу mysql
|
|||
|---|---|---|---|
|
#18+
авторSSD на 46 метров индексов и где-то столько же данных? Ну-ну :-) Это не то, о чем вы подумали. SSD конечно же не выделенный в digitalocean. Вы как-нибудь поинтересуйтесь кто еще использует mysql. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 22:56:33 |
|
||
|
вопрос по тюнингу mysql
|
|||
|---|---|---|---|
|
#18+
zizi_topиндексы вешать особо некудаЭто как? Вы исследовали все запросы и выяснили, что ни один из них нельзя ускорить добавлением индексов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 09:26:33 |
|
||
|
вопрос по тюнингу mysql
|
|||
|---|---|---|---|
|
#18+
miksoft, я смотрел особо медленные, которые генерят цмс например такой запрос Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. тут криво делается выборка, explain показывает type all на таблицу jos_vm_product_category_xref хотя в самой таблице есть индексы, как я понял тут даже не в индексах дело, а в люто криво написанных запросах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 12:22:02 |
|
||
|
вопрос по тюнингу mysql
|
|||
|---|---|---|---|
|
#18+
miksoftzizi_topиндексы вешать особо некудаЭто как? Вы исследовали все запросы и выяснили, что ни один из них нельзя ускорить добавлением индексов? Ну как сейчас делаются сайты на джумле : съешь еще этих прикольных расширений, написанных 5 лет назад, да выпей чаю. Изначально просто нету в штате программиста, который бы эти запросы писал и понимал что там к чему. Зато касательно чистой CMS без расширений, можно уверенно утверждать, что там индексы все есть и оптимально расставлены. Но в данном случае видно, что это не так. Я бы порекомендовал изучить практику эксплуатации другими людьми конкретного расширения. В интернете зачастую все уже было исследовано до вас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 12:38:22 |
|
||
|
вопрос по тюнингу mysql
|
|||
|---|---|---|---|
|
#18+
методом тыка обнаружил что проблема в распухании процессов пхп (запущен как fastcgi) при старте было 2 процесса, затем выростали до 6-7 и сжирали всю память, не убивались а продолжали висеть помогла переменная FcgidMaxProcesses 2, не знаю насколько это правильно, но теперь мускул нормально заработал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2014, 00:18:58 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38547677&tid=1835275]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
62ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 399ms |

| 0 / 0 |
