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, или как он там...?

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

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

nptl имеет смысл

nptl имеет смысл ибо lightweight. linuxthreads все-таки потяжелее. Но не думаю, что стоит ожидать очень большого прироста. ИМХО, это скорее вопросы программирования, а не администрирования.
Если по пунктам:
1. А чего им еще делать, если задача сервера тягать данные из харда в сеть? Сеть, очевидно, является узким местом, вот и ждут.
2. Лучше загрузить 2 процессора на 100%, чем 4 на 50%. Так что волноваться особо не о чем.

Поднастроить - очень легко: берешь scheduler и дрова сетевухи и усиливаешь в них поддержку smp путем создания жестких патчей :)

В любом случае, я программист, а не админ, так что не серчай, коли что не так :))

_________________
Вот такие пироги

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".