Upload module + direct_io
Valery Kholodkov
valery+nginxru на grid.net.ru
Пт Апр 23 12:10:58 MSD 2010
----- dimkalinux <dimkalinux at gmail.com> wrote:
> Нельзя включить DIRECT IO и для аплоада в вашем модуле? Или модуль
> использует только возможности nginx?
Похоже я не прав, теоретическая возможность реализовать Direct IO есть. Поработаю над этим, может получиться.
> client_body_buffer_size и upload_buffer_size уже используем.
> Какие настройки рекомендуются для аплоада 500 мб - 2 гигабайтных файлов?
>
> Текущий конфиг.
>
> location /upload_1
> {
> gzip off;
> upload_buffer_size 16m;
> client_body_buffer_size 5m;
>
> upload_limit_rate 7m;
>
> # Pass altered request body to this location
> upload_pass /realyupload;
>
> # Store files to this location
> upload_store /var/upload/1/tmp_up;
>
> # Set specified fields in request body
> upload_set_form_field $upload_field_name.name "$upload_file_name";
> upload_set_form_field $upload_field_name.content_type "$upload_content_type";
> upload_set_form_field $upload_field_name.path "$upload_tmp_path";
> upload_set_form_field $upload_field_name.ip "$remote_addr";
> upload_set_form_field $upload_field_name.storage_name "upload_1";
>
> upload_aggregate_form_field "$upload_field_name.size" "$upload_file_size";
>
> # Pass matching fields from client to backend
> upload_pass_form_field "submit";
> upload_pass_form_field "progress_id";
> upload_pass_form_field "uploadHidden";
> upload_pass_form_field "uploadPassword";
> upload_pass_form_field "uploadDesc";
>
> upload_cleanup 400 403 404 499 500-505;
> track_uploads proxied 30s;
>
> # access
> if ($geo = world) {
> return 403;
> }
> }
Я не системный администратор, вряд ли смогу привести конкретные цифры.
Но в целом, полагаю, имеет смысл client_body_buffer_size настраивать так же как output_buffers (учитывая, что client_body_buffer_size не принимает числа буферов), а upload_buffer_size -- так, чтобы был баланс между потреблением памяти и зарузкой процессора.
--
Regards,
Valery Kholodkov
Подробная информация о списке рассылки nginx-ru