Вернуться   Форум об интернет-маркетинге > >
Ответ
 
Опции темы
Старый 08.11.2011, 19:53   #31
myhand
Академик
 
Регистрация: 16.09.2009
Сообщений: 4,853
Репутация: 138734

По умолчанию Re: Периодически выдает ошибку соединения с БД ((

Цитата:
Сообщение от Z-Style Посмотреть сообщение
А что за параметр -q ?
А посмотрите ман, ага?

PS: Прошу прощения , правильнее так:
Код:
wget -O mysqltuner.pl -q mysqltuner.pl
И далее - по тексту.
myhand вне форума   Ответить с цитированием

Реклама
Старый 08.11.2011, 20:26   #32
Z-Style
Академик
 
Аватар для Z-Style
 
Регистрация: 18.03.2010
Сообщений: 2,117
Репутация: 30558

ТопикСтартер Re: Периодически выдает ошибку соединения с БД ((

Цитата:
Сообщение от myhand Посмотреть сообщение
А посмотрите ман, ага?
Ага, нашел))

Но вот же незадача было разобраться с этой ошибкой: пока я добрался до сервера, его оказывается уже заменили более производительным, настройки же остались прежними, теперь ресурс не тормозит, но настраивать mysql я так понимаю еще нужно.

Z-Style добавил 08.11.2011 в 20:30
mysqltuner на новом сервере:

-------- Storage Engine Statistics -------------------------------------------
[--] Status: +Archive -BDB +Federated +InnoDB -ISAM -NDBCluster
[--] Data in MyISAM tables: 81M (Tables: 30)
[!!] InnoDB is enabled but isn't being used
[!!] Total fragmented tables: 3

-------- Performance Metrics -------------------------------------------------
[--] Up for: 19h 1m 33s (30M q [438.654 qps], 620K conn, TX: 159B, RX: 3B)
[--] Reads / Writes: 99% / 1%
[--] Total buffers: 64.0M global + 1.6M per thread (400 max threads)
[OK] Maximum possible memory usage: 710.9M (1% of installed RAM)
[OK] Slow queries: 0% (0/30M)
[OK] Highest usage of available connections: 29% (117/400)
[OK] Key buffer size / total MyISAM indexes: 6.0M/45.1M
[OK] Key buffer hit rate: 98.9% (750M cached / 7M reads)
[OK] Query cache efficiency: 59.2% (16M cached / 27M selects)
[!!] Query cache prunes per day: 6879993
[OK] Sorts requiring temporary tables: 0% (13 temp sorts / 1M sorts)
[!!] Temporary tables created on disk: 49% (441K on disk / 884K total)
[OK] Thread cache hit rate: 97% (14K created / 620K connections)
[!!] Table cache hit rate: 1% (31 open / 3K opened)
[OK] Open file limit used: 2% (42/2K)
[OK] Table locks acquired immediately: 99% (11M immediate / 11M locks)

-------- Recommendations -----------------------------------------------------
General recommendations:
Add skip-innodb to MySQL configuration to disable InnoDB
Run OPTIMIZE TABLE to defragment tables for better performance
MySQL started within last 24 hours - recommendations may be inaccurate
When making adjustments, make tmp_table_size/max_heap_table_size equal
Reduce your SELECT DISTINCT queries without LIMIT clauses
Increase table_cache gradually to avoid file descriptor limits
Variables to adjust:
query_cache_size (> 16M)
tmp_table_size (> 16M)
max_heap_table_size (> 16M)
table_cache (> 256)

Последний раз редактировалось Z-Style; 08.11.2011 в 20:49.. Причина: Добавлено сообщение
Z-Style вне форума   Ответить с цитированием
Старый 08.11.2011, 20:49   #33
myhand
Академик
 
Регистрация: 16.09.2009
Сообщений: 4,853
Репутация: 138734

По умолчанию Re: Периодически выдает ошибку соединения с БД ((

Цитата:
Сообщение от Z-Style Посмотреть сообщение
пока я добрался до сервера, его оказывается уже заменили более производительным, настройки же остались прежними, теперь ресурс не тормозит.
Вот и хорошо. Теперь у Вас есть шанс исправить проблему в более приятной обстановке... Вы ведь понимаете, что проблема есть и никуда не делась?

Цитата:
Сообщение от Z-Style Посмотреть сообщение
[!!] Query cache prunes per day: 6879993
Начните вот с этого, с кеширования. Можно попробовать для начала использовать рекоммендации mysqltuner.pl.

Затем разобраться с этим:
Цитата:
Сообщение от Z-Style Посмотреть сообщение
[!!] Temporary tables created on disk: 49% (441K on disk / 884K total)
Если не получится избавиться от временных таблиц по объективным причинам - попробуйте использовать tmpfs для временных файлов mysql.
myhand вне форума   Ответить с цитированием
Старый 08.11.2011, 20:54   #34
Z-Style
Академик
 
Аватар для Z-Style
 
Регистрация: 18.03.2010
Сообщений: 2,117
Репутация: 30558

ТопикСтартер Re: Периодически выдает ошибку соединения с БД ((

Цитата:
Сообщение от myhand Посмотреть сообщение
Вы ведь понимаете, что проблема есть и никуда не делась?
Да. Спасибо за подсказки, буду отстраивать.
Пока что возник вопрос: как правильно выставить параметр table_cache ?

Последний раз редактировалось Z-Style; 08.11.2011 в 21:20..
Z-Style вне форума   Ответить с цитированием
Старый 08.11.2011, 21:38   #35
netwind
Академик
 
Регистрация: 06.05.2007
Сообщений: 6,010
Репутация: 490997

По умолчанию Re: Периодически выдает ошибку соединения с БД ((

Цитата:
Пока что возник вопрос: как правильно выставить параметр table_cache ?
тут вам должно хватить число таблиц*3.

Цитата:
Сообщение от myhand Посмотреть сообщение
Цитата:
[!!] Temporary tables created on disk: 49% (441K on disk / 884K total)
Если не получится избавиться от временных таблиц по объективным причинам - попробуйте использовать tmpfs для временных файлов mysql.
Конкретно по этому параметру mysqltuner частенько такое выдает. Проблема в том, что он не может отличить действительное создание таблицы на диске от таблицы в памяти. А в самом mysql нет достоверных счетчиков для этого факта.
Так что повышайте без фанатизма : повысили и снова оценили mysqltuner. Если показатель не уменьшился или уменьшился несущественно - уже хватит.

Цитата:
[OK] Key buffer size / total MyISAM indexes: 6.0M/45.1M
ну можно и поднять key_buffer

Цитата:
Сообщение от Z-Style Посмотреть сообщение
настраивать mysql я так понимаю еще нужно.
Вообще, параметров-то много, но на порядки ускорить mysql изменением настроек обычно не получится. Сосредоточьтесь на других методиках лучше.


Цитата:
[OK] Highest usage of available connections: 29% (117/400)
Вот сказал же - 42, а у вас не меньше 117. И nginx наверняка не стоит.
netwind вне форума   Ответить с цитированием
Старый 08.11.2011, 21:50   #36
Z-Style
Академик
 
Аватар для Z-Style
 
Регистрация: 18.03.2010
Сообщений: 2,117
Репутация: 30558

ТопикСтартер Re: Периодически выдает ошибку соединения с БД ((

Цитата:
Сообщение от netwind Посмотреть сообщение
Вот сказал же - 42, а у вас не меньше 117. И nginx наверняка не стоит.
Не понимаю, зачем мне уменьшать max-connections, если ресурсы позволяют? Чтобы возникла ошибка "too many connections"?
nginx стоит.
Z-Style вне форума   Ответить с цитированием
Старый 08.11.2011, 21:58   #37
myhand
Академик
 
Регистрация: 16.09.2009
Сообщений: 4,853
Репутация: 138734

По умолчанию Re: Периодически выдает ошибку соединения с БД ((

Цитата:
Сообщение от netwind Посмотреть сообщение
Конкретно по этому параметру mysqltuner частенько такое выдает. Проблема в том, что он не может отличить действительное создание таблицы на диске от таблицы в памяти. А в самом mysql нет достоверных счетчиков для этого факта.
Ну, вот именно это я и обозвал "объективными причинами". Рекоммендованный Вами mysql-tunning.sh, кстати, дает в этом отношение хорошее замечание:
Цитата:
Note! BLOB and TEXT columns are not allow in memory tables.
If you are using these columns raising these values might not impact your
ratio of on disk temp tables.
Цитата:
Сообщение от Z-Style Посмотреть сообщение
Пока что возник вопрос: как правильно выставить параметр table_cache ?
Начать с того, что научиться читать:
Цитата:
Сообщение от netwind Посмотреть сообщение
Так что повышайте без фанатизма : повысили и снова оценили mysqltuner. Если показатель не уменьшился или уменьшился несущественно - уже хватит.
Это, вообще говоря, универсальная рекоммендация для автоматических "настраивалок".

Цитата:
Сообщение от Z-Style Посмотреть сообщение
Не понимаю, зачем мне уменьшать max-connections, если ресурсы позволяют? Чтобы возникла ошибка "too many connections"?
Чтобы память расходовать на более полезные вещи.

Запомните также, что то значение, которое Вы указали в max-connections - должно быть _осмысленным_. Не только из соображения "быть достаточно большим, чтобы энта ошибка меня не доставала": сервер должен работать в таком режиме и памяти должно хватить _всем_. И mysql, и апачу с php, и nginx, и всему-что-там-еще-у-вас-есть. Включая Вас c sshd, чтобы Вы могли прийти на сервер и вручную разобраться в обстановке.

Цитата:
Сообщение от netwind Посмотреть сообщение
Вообще, параметров-то много, но на порядки ускорить mysql изменением настроек обычно не получится. Сосредоточьтесь на других методиках лучше.
Зато в разы, в данном случае, - запросто. Особенно, если пишут относительно мало.
myhand вне форума   Ответить с цитированием
Старый 08.11.2011, 22:03   #38
Z-Style
Академик
 
Аватар для Z-Style
 
Регистрация: 18.03.2010
Сообщений: 2,117
Репутация: 30558

ТопикСтартер Re: Периодически выдает ошибку соединения с БД ((

Цитата:
Сообщение от myhand Посмотреть сообщение
Начать с того, что научиться читать:
Такие рекомендации видимо иногда действительно помогают: перечитал еще раз, понял))
Z-Style вне форума   Ответить с цитированием
Старый 08.11.2011, 22:15   #39
netwind
Академик
 
Регистрация: 06.05.2007
Сообщений: 6,010
Репутация: 490997

По умолчанию Re: Периодически выдает ошибку соединения с БД ((

Цитата:
Сообщение от Z-Style Посмотреть сообщение
Не понимаю, зачем мне уменьшать max-connections, если ресурсы позволяют? Чтобы возникла ошибка "too many connections"?
Идея в том чтобы уменьшить MaxClients, чтобы апачи попусту не плодились, а запросы становились в очередь. Каждый апач - это лишних 64-128 мб памяти отнятых у кеша ОС. Уменьшать max-connections в mysql не нужно.
Это работает для типичных сайтов. Не для тех, на которых скрипты выполняются долго по объективным причинам - например, скрипты качающие что-то из сети.

Цитата:
Сообщение от myhand
Зато в разы, в данном случае, -запросто. Особенно, если пишут относительно мало.
Ну в данном случае и замеров никаких не сделано. Не известно насколько точно поможет.
netwind вне форума   Ответить с цитированием
Старый 08.11.2011, 22:23   #40
Z-Style
Академик
 
Аватар для Z-Style
 
Регистрация: 18.03.2010
Сообщений: 2,117
Репутация: 30558

ТопикСтартер Re: Периодически выдает ошибку соединения с БД ((

Цитата:
Сообщение от netwind Посмотреть сообщение
Идея в том чтобы уменьшить MaxClients, чтобы апачи попусту не плодились, а запросы становились в очередь. Каждый апач - это лишних 64-128 мб памяти отнятых у кеша ОС. Уменьшать max-connections в mysql не нужно.
Тогда встречный вопрос: как правильно определить для себя параметр MaxClients? (сейчас выставлено 250)
Z-Style вне форума   Ответить с цитированием
Ответ



Опции темы

Быстрый переход


Регистрация Справка Календарь Поддержка Все разделы прочитаны