Re: blockdev direct IO при отдаче видео с XFS (soft RAID) и ext4 (singl HDD)

Gena Makhomed gmm на csdoc.com
Пт Ноя 11 17:42:59 UTC 2011


On 11.11.2011 16:40, kozakd wrote:

> При нагрузке порядка 1500 конектов и
> ближе к 2 Gbps
> ловлю в ps это blockdev_direct_IO

> Есть варианты решения?

а в чем проблема?

> CenOS 6.0     2.6.32-71.29.1.el6.x86_64

вроде бы - Fixed In Version: kernel-2.6.32-183.el6
https://bugzilla.redhat.com/show_bug.cgi?id=725444

> worker_processes  1;
> worker_rlimit_nofile 32000;
> events {
>      worker_connections  16000;
> }

увеличить количество воркеров и выключить aio/directio/sendfile
- разве это не поможет убрать состояние blockdev_direct_IO в ps?

>      sendfile            on;
>      tcp_nopush          on;
>      tcp_nodelay         on;
>      aio                 on;
>      directio            4m;
>      directio_alignment  4k;
>      output_buffers  1   1m;

output_buffers вроде бы не используются если sendfile on;

кроме того, в документации к nginx написано:

http://nginx.org/ru/docs/http/ngx_http_core_module.html#aio
"Для работы AIO нужно выключить sendfile".

http://nginx.org/ru/docs/http/ngx_http_core_module.html#directio
"Директива автоматически запрещает (0.7.15) использование sendfile'а для 
данного запроса."

>      proxy_buffering off;

если надо чтобы не использовалась буферизация ответов
от backend-серверов на диск, то лучше так и написать:

  proxy_buffering on;
  proxy_max_temp_file_size 0;

-- 
Best regards,
  Gena



Подробная информация о списке рассылки nginx-ru