powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / вопрос по тюнингу mysql
24 сообщений из 24, страница 1 из 1
вопрос по тюнингу mysql
    #38545856
zizi_top
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть впс, 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
пробовал добавлять по одному параметру, вроде не тормозит, такое ощущение что влияют все вместе

может ли от какого то параметра быть больше вреда чем пользы?

или просто совпадение?
...
Рейтинг: 0 / 0
вопрос по тюнингу mysql
    #38545858
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zizi_topможет ли от какого то параметра быть больше вреда чем пользы?Конечно может. Например, если новое значение параметра предусматривает значительно бОльшее количество используемой памяти, а ее попросту нет, тогда, скорее всего, станут более активны дисковые операции со свопом.
...
Рейтинг: 0 / 0
вопрос по тюнингу mysql
    #38545986
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zizi_top,

для начала вы можете сами проанализировать ситуёвину:

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

wget mysqltuner.pl
perl mysqltuner.pl

Аккуратно подкручивайте как советует этот тюнер.
Если какие сомнения -- дублируйте сюдя.

Ну и слоу квери читать, читать, читать...

в дополнение еше можно:
yum install mytop
mytop (если надо юзер/пассворд)
...
Рейтинг: 0 / 0
вопрос по тюнингу mysql
    #38546076
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторесли я использую его, то субъективно la меньше
А вот не надо субъективно. Измеряйте.
Учитывая, что у вас VPS, измеряйте ДОЛГО и используйте средние значения для выводов
На VPS обычно соседи сильно влияют. Вот вы что-то там поменяли и потом якобы субъективно заметили ухудшения на короткий момент. А его может и не было!

Ну и заодно напомним, что "тюнинг mysql" - в общем случае шарлатанство.

Иногда, конечно, стоит что-то подкрутить явно лишнее.
log-bin вы осмысленно включили ?
key_buffer_size че такой маленький ?
...
Рейтинг: 0 / 0
вопрос по тюнингу mysql
    #38546255
zizi_top
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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, вдруг поможет разгрузить сервак
...
Рейтинг: 0 / 0
вопрос по тюнингу mysql
    #38546288
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zizi_toplog-
как я уже понял, скорость работы mysql прежде всего упирается

В приложение.
Mysql выполняет только, то что приложение попросит. Хорошие запросы используют меньше данных чтобы получить тот же результат, что и плохой. В изменении запросов секрет результативной осмысленной оптимизации.

Все эти CDN и "всекеширование" применяются от ограниченности и безысходности.
...
Рейтинг: 0 / 0
вопрос по тюнингу mysql
    #38547192
kestrel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А general_log вам зачем? Он ведь все запросы в журнал пишет.
...
Рейтинг: 0 / 0
вопрос по тюнингу mysql
    #38547620
zizi_top
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
интересная ситуевина
повесил я все сайты с большой посещалкой, да и с небольшой, на 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 чтение\запись

вот теперь думаю- тюнинг наверно тут не поможет, только смена впс?
...
Рейтинг: 0 / 0
вопрос по тюнингу mysql
    #38547623
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zizi_top, а замечание про general-log выше довольно здравое. Видите, как получается - полезли и "натюнили" явно не нужную вам настройку.

авторвот теперь думаю- тюнинг наверно тут не поможет, только смена впс?
На что? На сахар? Но ведь на другом тоже клиентов масса.
...
Рейтинг: 0 / 0
вопрос по тюнингу mysql
    #38547624
Aleksandr Kuzminsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zizi_top,

Индексов, я так понимаю 32 мегабайта?
А какой общий размер базы?
...
Рейтинг: 0 / 0
вопрос по тюнингу mysql
    #38547662
zizi_top
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 диски
...
Рейтинг: 0 / 0
вопрос по тюнингу mysql
    #38547668
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zizi_topну а насчет смены впс, тут как с девушками, не подошел - ищи другой

Ну это уж кому как.

счас смотрю в сторону digitalocean, обещает ssd диски
да, неплохая тема для mysql, кстати. Там какие-то "дроплеты", но по сути это они так обзывают предварительно нарезанные конфигурации, с локальными дисками, а НЕ В СЕТЕВОМ хранилище или еще каких-то виртуализированных вариантах. Работает как обычный.
...
Рейтинг: 0 / 0
вопрос по тюнингу mysql
    #38547677
Aleksandr Kuzminsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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

Сколько?
...
Рейтинг: 0 / 0
вопрос по тюнингу mysql
    #38547679
Aleksandr Kuzminsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
netwindсчас смотрю в сторону digitalocean, обещает ssd диски
да, неплохая тема для mysql, кстати. Там какие-то "дроплеты", но по сути это они так обзывают предварительно нарезанные конфигурации, с локальными дисками, а НЕ В СЕТЕВОМ хранилище или еще каких-то виртуализированных вариантах. Работает как обычный.

SSD на 46 метров индексов и где-то столько же данных? Ну-ну :-)
...
Рейтинг: 0 / 0
вопрос по тюнингу mysql
    #38547719
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Kuzminskynetwindпропущено...

да, неплохая тема для mysql, кстати. Там какие-то "дроплеты", но по сути это они так обзывают предварительно нарезанные конфигурации, с локальными дисками, а НЕ В СЕТЕВОМ хранилище или еще каких-то виртуализированных вариантах. Работает как обычный.

SSD на 46 метров индексов и где-то столько же данных? Ну-ну :-)

«640КБ должно быть достаточно для каждого» (С)
...
Рейтинг: 0 / 0
вопрос по тюнингу mysql
    #38547731
zizi_top
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 итого
...
Рейтинг: 0 / 0
вопрос по тюнингу mysql
    #38547750
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 итогоТерзают меня смутные сомнения... Что-то индексов маловато относительно данных...
А может у вас просто запросы неоптимизированные и тупо индексов нужных нет?
...
Рейтинг: 0 / 0
вопрос по тюнингу mysql
    #38547754
Aleksandr Kuzminsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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, и смотреть запросы.
...
Рейтинг: 0 / 0
вопрос по тюнингу mysql
    #38547813
zizi_top
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
general_log отрубил, но не сильно помогло
не оптимизированные запросы конечно имеются, только эти запросы генерят цмс типа джумлы, просто так запрос не изменить не получится, а индексы вешать особо некуда
...
Рейтинг: 0 / 0
вопрос по тюнингу mysql
    #38547860
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторSSD на 46 метров индексов и где-то столько же данных? Ну-ну :-)
Это не то, о чем вы подумали. SSD конечно же не выделенный в digitalocean.
Вы как-нибудь поинтересуйтесь кто еще использует mysql.
...
Рейтинг: 0 / 0
вопрос по тюнингу mysql
    #38548071
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zizi_topиндексы вешать особо некудаЭто как? Вы исследовали все запросы и выяснили, что ни один из них нельзя ускорить добавлением индексов?
...
Рейтинг: 0 / 0
вопрос по тюнингу mysql
    #38548347
zizi_top
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

я смотрел особо медленные, которые генерят цмс
например такой запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT DISTINCT `product_name`,`products_per_row`,`category_browsepage`,`category_flypage`,`jos_vm_category`.`category_id`,
				`jos_vm_product`.`product_id`,`product_full_image`,`product_thumb_image`,`product_s_desc`,`product_parent_id`,`product_publish`,`product_in_stock`,`product_sku`, `product_url`,
				`product_weight`,`product_weight_uom`,`product_length`,`product_width`,`product_height`,`product_lwh_uom`,`product_in_stock`,`product_available_date`,`product_availability`,`jos_vm_product`.`mdate`, `jos_vm_product`.`cdate` FROM (`jos_vm_product`, `jos_vm_category`, `jos_vm_product_category_xref`,`jos_vm_shopper_group`) LEFT JOIN `jos_vm_product_price` ON `jos_vm_product`.`product_id` = `jos_vm_product_price`.`product_id` WHERE (`jos_vm_product_category_xref`.`product_id`=`jos_vm_product`.`product_id` OR `jos_vm_product_category_xref`.`product_id`=`jos_vm_product`.`product_parent_id`)
 AND `jos_vm_product_category_xref`.`category_id`=`jos_vm_category`.`category_id`
 AND ((`jos_vm_product`.`product_id`=`jos_vm_product_price`.`product_id` AND `jos_vm_shopper_group`.`shopper_group_id`=`jos_vm_product_price`.`shopper_group_id`) OR `jos_vm_product_price`.`product_id` IS NULL) 
 AND `jos_vm_shopper_group`.`default` = 1
 AND `product_parent_id`=0 
 AND `product_publish`='Y' 
 AND `category_publish`='Y' 
 GROUP BY `jos_vm_product`.`product_sku` 
 ORDER BY `jos_vm_product`.`cdate` ASC LIMIT 0, 2000;



тут криво делается выборка, explain показывает type all на таблицу jos_vm_product_category_xref хотя в самой таблице есть индексы,
как я понял тут даже не в индексах дело, а в люто криво написанных запросах
...
Рейтинг: 0 / 0
вопрос по тюнингу mysql
    #38548384
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftzizi_topиндексы вешать особо некудаЭто как? Вы исследовали все запросы и выяснили, что ни один из них нельзя ускорить добавлением индексов?
Ну как сейчас делаются сайты на джумле : съешь еще этих прикольных расширений, написанных 5 лет назад, да выпей чаю.
Изначально просто нету в штате программиста, который бы эти запросы писал и понимал что там к чему.
Зато касательно чистой CMS без расширений, можно уверенно утверждать, что там индексы все есть и оптимально расставлены.
Но в данном случае видно, что это не так.
Я бы порекомендовал изучить практику эксплуатации другими людьми конкретного расширения. В интернете зачастую все уже было исследовано до вас.
...
Рейтинг: 0 / 0
вопрос по тюнингу mysql
    #38549514
zizi_top
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
методом тыка обнаружил что проблема в распухании процессов пхп (запущен как fastcgi)
при старте было 2 процесса, затем выростали до 6-7 и сжирали всю память, не убивались а продолжали висеть
помогла переменная FcgidMaxProcesses 2, не знаю насколько это правильно, но теперь мускул нормально заработал
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / вопрос по тюнингу mysql
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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