ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

High periodic disk I/O


  • To: nginx-ru@xxxxxxxxx
  • Subject: High periodic disk I/O
  • From: Петр Гузанов <gpskomsa@xxxxxxx>
  • Date: Tue, 14 Jan 2014 17:54:52 +0400
  • Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mail.ru; s=mail2; h=Content-Type:Message-ID:Reply-To:Date:Mime-Version:Subject:To:From; bh=Nijy8DhDijGL41Mw8lxitqJGkIBUCZDUUYj7VrPJgWA=; b=n4y/wir/KsGGHjMahBytRaYzeu6ZheeuoOH6dYSS7LAfPen5tkYjCL7pJPqhQu1jlcr/wEHkRt6hgdGOM0H1Sj2C9fDV+bI/Y/Y9vBaUt87X4D5MofPzf/VAywzndg2ohurvoaVyyNZTnmpZgPXOEOpNq7j/20JF+iSfn9hNlYM=;

Добрый день!

Имеется сервер freebsd 9.2 amd64, 16gb ram, gmirror 2.7Tb x 2, nginx 1.4.2

За Nginx стоит php-fpm на котором работает сайт, средне нагруженный(1-10 запрос/сек). Кроме того, nginx через проксирование другого хоста отдает статику, которая таким образом, представляет собой динамически накопляемый кеш. Т.е. приходит запрос, nginx смотрит наличие статики в кеше, если нет получает ее с другого хоста, отдает ответ.

В данный момент в таком кеше порядка 700к файлов, все они размером примерно от 10кб до 100кб, общий размер данных в кеше 10gb.
Проблема в том, что периодически, раз в 10-20 секунд nginx подгружает диск записью на 2-5 секунды, изза этого случается лаг и например ответ от веб сервера можно ждать несколько секунд. Отчет gstat:

 L(q)  ops/s    r/s   kBps   ms/r    w/s   kBps   ms/w   %busy Name
    0     55      8    120   2689     47    903   4952   91.4| ada0
   12     36      4     68   2652     32    659   5418   96.4| ada1
   12     51     12    188   2676     39    855   5410  108.2| mirror/gm

Если отключить в nginx работу со статикой через такое проксирование и отдавать ее мимо nginx, то такое поведение пропадает - диск никто периодически не насилует.
Вот конфиг:

user  web;
worker_processes  8;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    tcp_nopush     on;
    keepalive_timeout  65;
    gzip  on;
    gzip_disable "msie6";

    proxy_cache_path  /var/www/cache/static levels=2:2 keys_zone=cachearea:3000m max_size=1000000m inactive=1y;
    proxy_temp_path /var/www/cache/tmp;
    include /usr/local/etc/nginx/conf.d/*.conf;
}

server {
    listen 80;

    server_name www.domain.com;
    root /var/www/domain/public;

    access_log /var/log/domain-access_log;
    error_log /var/log/domain-error_log warn;

    sendfile off;
    aio on;

    client_max_body_size       100m;
    client_body_buffer_size    128k;

    location / {
        index index.html index.php;
        try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~* /static/(?<chosturi>.*)$ {
        expires max;

        resolver 8.8.8.8;
        proxy_pass http://proxydomain.com/$chosturi?$query_string;
        proxy_cache cachearea;
        proxy_cache_key $chosturi;
        proxy_cache_valid 404 301 302 500 502 503 1h;
        proxy_cache_valid 200 204 10y;
    }

    location ~ /index\.php$ {
        include fastcgi_params;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    }
}

Собственно вопрос в том как избавится от таких периодических нагрузок на диск.
Спасибо.

--
Петр
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.