Вы здесь

mysqld: работа в промышленных масштабах

Создал подобный тред на оффсайте, но из ответов получил только мануал мускуля 4.х в ПМ, который я уже давно перекопал от забора и до обеда. Может соотечественники дадут толковый совет?

Дано:
сервак 2 x Xeon 3GHz, 2G RAM, 2 x SCSI диска (не-рейд)
Единственный демон mysqld (не считая миноров типа snmpd и smartd), который отвечает на запросы в локалку, работающую на скорости 1 GPS

Некоторая статистика:
MySQLd:
- QPS: 50..300 в зависимости от времени суток
- Threads: 4 running, 46 cached
- Resident Set Size: среднее значение 800М. Имеет тенденцию к росту с течением времени (я так полагаю, из-за threads_cache=50 в my.cnf)
Нагрузка на сеть: по данным nload, до 1 мегабита/сек average, в пиках может выдавать до сотки мегабит
Нагрузка на винт: преимущественно read. Порядка 1-3 Мбайт/сек. Второй винт по сравнению с главным курит.
Более подробно тут

Проблемы:
1. Не нравится мне CPU utilization ни разу:
Cpu(s): 0.8% us, 0.7% sy, 0.0% ni, 75.0% id, 23.6% wa, 0.0% hi, 0.0% si
В пиковых нагрузках idle доходит до 40%, wa до 30. Треды ждут какой то IO. Из IO у меня только SCSI и NET.

2. В пиковых нагрузках начинает все дико тормозить. Увеличивается RSS до гига и сервак включает ручник. На юзер-левеле не оч заметно, но мне это все решительно не нравится. При нескольких процессах/тредах в "run" и "block" queue (vmstat 1) 2 из 4 процессоров имеют тунеяднически высокие показатели idle.

Где мне чего затюнить, sysctl подстроить, изменить какие io/tread шедулеры, чтобы процы не тратили столько времени на треды и не простаивали в то время, когда другие треды хотят их внимания?

io scheduler: deadlock
threads: linuxthreads (я так думаю)

Имеет ли смысл включить NTLM Posix threads, или как он там...?

Я бы поставил эксперименты, но к сожалению не могу, сервак рабочий и под серъезной нагрузкой. Внешне работает якобы нормально (с точки зрения шефа).

Спасибо за ответы зараннее.