On 06/07/13 17:36, Anton Yuzhaninov wrote:
On 06/07/13 16:04, Anton Yuzhaninov wrote:
Без нагрузки спит 5 с небольшим секунд, но под production нагрузкой спит 25 и
больше секунд... На других машинах такого замедления не наблюдается и под
нагрузкой.
Замедление sleep в свою очередь вызвано замедлением HZ tick.
Если запустить под нагрузкой
vmstat -i ; date +%s ; sleep 10 ; vmstat -i ; date +%s
То видно, что прерываний на cpu0: timer будет около 700, а когда все нормально
прерываний около 2000 (hz*2)
Обновился до 9-ки - LAPIC в качестве таймера теперь не используется:
kern.eventtimer.timer: HPET
kern.timecounter.hardware: TSC-low
и проблемы с таймером исчезли - sleep 5 спит 5 секунд, а не 25 как раньше.
Но машина по прежнему работает очень медленно. Если дать нагрузку даже top
запускается секунд 15 (ctrl+t при этом пишет top 63717 [runnable]).
Сам top дальше ничего необычного не показывает - только LA немного выше.
sudo time make -j8 kernel на проблемной машине:
22146.38 real 98640.95 user 10250.82 sys
то же самое на похожей нормальной:
479.75 real 922.39 user 277.43 sys
Разница user time в 100 раз!
При этом если нагружать только CPU или только диск, то замедление не такое
заметное, например результат openssl speed -multi 8 rsa2048
с медленной машины:
sign verify sign/s verify/s
rsa 2048 bits 0.000674s 0.000017s 1484.0 57606.8
с хорошей машины:
sign verify sign/s verify/s
rsa 2048 bits 0.000657s 0.000017s 1521.1 60492.1
Чтобы "поймать" замедление, нужна какая то комбинированная нагрузка.
В целом понятно, что это проблемы с железом, но хочется понять с какой именно
его частью, чтобы не выкидывать сервер целиком...