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

Чтобы "поймать" замедление, нужна какая то комбинированная нагрузка.

В целом понятно, что это проблемы с железом, но хочется понять с какой именно его частью, чтобы не выкидывать сервер целиком...

Ответить