Периодически очень сильно возрастает нагрузка на mysql

PB
На сайте с 10.08.2007
Offline
26
PAB
2267

Есть сервер core2duo e6400, 1gb ram, sata диск, на нем freebsd 6.2

на этом сервере есть один основной сайт с посещаемость. в 100-150к хитов в сутки и пара десятков мелких, меньше 1000 хитов в сутки на каждом.

Этот самый основной сайт в 90% случаев отдает уже сгенеренный html из кеша даже не подключаясь к БД. Картинки отдаются напрямую nginx'ом.

За nginx'ом стоит апач.

В нормальном режиме в памяти весит 20 процессов апача, la 0.3-0.4, mysql загружает проц на 1% примерно. Но иногда случаются моменты, что mysql начинает адски забивать всё что можно. Сжирает всю доступную память, грузит проц на 50%, la в такие моменты бывают от 4 до 8.

Да, еще на серваке крутится phpAdsNew или как он сейчас называет (openAds?) последний версии. К нему около 500к обращений в сутки идет.

В те моменты, когда мускулю становится плохо, по данным top, мускуль начинает адски плодить треды(с 5 в нормальном режиме до 150 в пике). Так же при этом начинают плодиться процессы апача, примерно по 1 процессу на тред мускуля. Может чуть больше.

В момент нагрузки ни один сайт не отвечает. Иногда бывают всплески нагрузки проценетнов на 50% от пика. Тогда всё работает, но крайне медленно.

Вот конфиг мускуля:


[client]

default-character-set=cp1251

[mysqld]

tmpdir = /tmp
datadir = /var/db/mysql

default-character-set=cp1251
init-connect="SET NAMES cp1251"

socket = /tmp/mysql.sock

max_connections = 300

key_buffer_size = 64M
query_cache_size = 65M
tmp_table_size = 64M
table_cache = 512
sort_buffer=8M
max_allowed_packet=10M

set-variable = long_query_time=1
log-slow-queries="/var/db/mysql/slow_queries.log"
log-slow-admin-statements="/var/db/mysql/slow_admin_queries.log"

## innodb
innodb_log_group_home_dir = /var/db/mysql/iblogs
innodb_log_arch_dir = /var/db/mysql/iblogs
innodb_log_files_in_group=3
innodb_buffer_pool_size=128M
innodb_additional_mem_pool_size=10M
innodb_log_file_size=75M
innodb_log_buffer_size=4M
innodb_flush_log_at_trx_commit=0
innodb_lock_wait_timeout=240

[mysqldump]
quick
max_allowed_packet = 16M

[isamchk]
key_buffer_size = 64M
#sort_buffer_size = 16M
#read_buffer = 2M
#write_buffer = 2M

[myisamchk]
key_buffer_size = 64M
#sort_buffer_size = 16M
#read_buffer = 2M
#write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

В 90% случаев табилцы MyISAM.

Как бы понять, где проблема и что с ней делать?

instamag.ru - классные магнитики из инстаграма (http://instamag.ru?r1=forums&r2=armada)
Boris A Dolgov
На сайте с 04.07.2007
Offline
215
#1

mtop или mytop, лог медленных запросов.

С уважением, Борис Долгов. Администрирование, дешевые лицензии ISPsystem, Parallels, cPanel, DirectAdmin, скины, SSL - ISPlicense.ru (http://www.isplicense.ru/?from=4926)
O
На сайте с 13.08.2008
Offline
26
#2
PAB:

В 90% случаев табилцы MyISAM.
Как бы понять, где проблема и что с ней делать?

Слезать на innodb.

Выкручивать сильно вверх innodb_buffer_pool_size

Да, проблема в том, что таблицы лочатся на селект, и запросы встают в очередь, отъедая и коннекты к базе, и воркеры апача/пхп.

Проблема растет, как снежный ком - достаточно, чтобы 3-5 запросов не уложились в разумные временные рамки.

Outsourcenow.ru: оттюним ваш веб-сервер. 100 млн. запросов в сутки - наш размерчик!
PB
На сайте с 10.08.2007
Offline
26
PAB
#3
Boris A Dolgov:
mtop или mytop, лог медленных запросов.

как пользоваться майтопом?

что-то они ничего не показывает

N
На сайте с 06.05.2007
Offline
419
#4

openads странный скрипт : при удивительно грамотной и быстрой генерации баннеров, запись статистики о каждом просмотре прямо в базу! пожалуй, использовать innodb тут будет разумно.

какие еще есть грамотные решения для аккумулирования статистики ? ну что-то типа memcache с наполнением и переодическим сбросом в базу.

Кнопка вызова админа ()
O
На сайте с 13.08.2008
Offline
26
#5
netwind:

какие еще есть грамотные решения для аккумулирования статистики ? ну что-то типа memcache с наполнением и переодическим сбросом в базу.

Табличка с engine=memory и регулярным обсчетом.

Andreyka
На сайте с 19.02.2005
Offline
822
#6

memache

десять мемкешей

Не стоит плодить сущности без необходимости
PB
На сайте с 10.08.2007
Offline
26
PAB
#7

А как настраивать мемкеш? Я с ним никогда не работал. В плане сколько ему памяти выделять и всё такое.

А так добавил файлкеша на проекты, которые сильно грузили мускуль - стало полегчек. Плюс часть самых злых табличек в иннодб перевел. Но всёравно иногда сервер тупит.

Andreyka
На сайте с 19.02.2005
Offline
822
#8

Изучаете доку к мемкешу или платите специалисту

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий