timer_resolution и swi4: clock sio

Maxim Dounin mdounin at mdounin.ru
Fri Mar 20 17:56:34 MSK 2009


Hello!

On Fri, Mar 20, 2009 at 05:13:13PM +0300, Монашёв Михаил wrote:

> Здравствуйте.
> 
> Заметил в top -S , что  swi4: clock sio жрёт много процессора:
> 
> 18 root        1 -32    -     0K    16K WAIT   2  17.9H 15.58% swi4: clock sio
> 
> В конфиге nginx-а прописано timer_resolution 100ms;
> 
> Когда  закомментил  timer_resolution,  то процесс стал кушать не более
> процента.
> 
> Кроме  того, странным кажется тот факт, что nginx не пишет аксес-логи,
> для которых как я понимаю создавался timer_resolution.
> 
> Может  кто-нить пояснить, как работает timer_resolution и стоит ли его
> использовать?   Ведь  фактически  сэкономленные  сисколы  меняется  на
> процессор, скушенный swi4: clock sio.

При использовании timer_resolution каждый воркер создаёт таймер, 
тикающий периодически (раз в 100ms в твоём случае) и делает 
gettimeofday() по этому таймеру.  При не использовании - делает 
gettimeofday() каждый раз после получения очередной порции событий 
из ядра.  Полученное время используется много где, в частности - в 
таймаутах и т.п., далеко не только при записи логов.

В зависимости от вида нагрузки и количества воркеров эффект от 
использования timer_resolution может быть разным.  Думаю твоя 
проблема в количестве воркеров.

Maxim Dounin





More information about the nginx-ru mailing list