Re: всплески времени ответа на кеширующем сервере

CoolCold coolcold на coolcold.org
Вс Дек 27 20:19:22 MSK 2009


Hello Игорь,

Friday, December 25, 2009, 7:07:20 PM, you wrote:

ИХ> Здравствуйте!

ИХ> кеширующий nginx, FreeBSD 7.2 amd64, 6Gb Ram

ИХ> proxy_cache_path  /usr/mem_disk/cache levels=1:2
ИХ> keys_zone=MEMDISK:128m inactive=3d max_size=1600M;
ИХ> proxy_cache_key  $scheme$proxy_host$uri$is_args$args;

ИХ> # proxy_cache_valid  72h;
ИХ> proxy_cache_valid  200 301 302 304 72h;

ИХ> proxy_cache_use_stale   updating error timeout invalid_header;
ИХ> proxy_ignore_client_abort on;


ИХ> запускаю на соседнем сервере
ИХ> while true; do time wget -q -O /dev/null $image_url; sleep 2; done

ИХ> вижу
ИХ> wget -q -O /dev/null   0.00s user 0.00s system 3% cpu 0.083 total
ИХ> wget -q -O /dev/null   0.00s user 0.00s system 1% cpu 0.127 total
ИХ> wget -q -O /dev/null   0.00s user 0.00s system 4% cpu 0.082 total
ИХ> wget -q -O /dev/null   0.00s user 0.00s system 0% cpu 5.277 total
ИХ> wget -q -O /dev/null   0.00s user 0.00s system 4% cpu 0.082 total
ИХ> wget -q -O /dev/null   0.00s user 0.00s system 3% cpu 0.083 total
ИХ> wget -q -O /dev/null   0.00s user 0.00s system 1% cpu 0.126 total
ИХ> wget -q -O /dev/null   0.00s user 0.00s system 1% cpu 0.158 total
ИХ> wget -q -O /dev/null   0.00s user 0.00s system 2% cpu 0.104 total
ИХ> wget -q -O /dev/null   0.00s user 0.00s system 1% cpu 0.120 total
ИХ> wget -q -O /dev/null   0.00s user 0.00s system 4% cpu 0.083 total
ИХ> wget -q -O /dev/null   0.00s user 0.00s system 3% cpu 0.128 total
ИХ> wget -q -O /dev/null   0.00s user 0.00s system 2% cpu 0.163 total
ИХ> wget -q -O /dev/null   0.00s user 0.00s system 2% cpu 0.124 total
ИХ> wget -q -O /dev/null   0.00s user 0.00s system 0% cpu 4.668 total
ИХ> wget -q -O /dev/null   0.00s user 0.00s system 1% cpu 0.184 total

ИХ> то есть каждый 10-12 запрос отдается с серьезной задержкой
5 секунд похоже на timeout dns запроса и повтор, например из-за потери пакета.

Попробуйте вместо wget'a curl, примерно так:
coolcold at coolcold:~$ curl -w 'ttotal: %{time_total}, tlookup: %{time_namelookup}, tconnect:%{time_connect}\n' http://ya.ru/favicon.ico -o /dev/null 2>/dev/null
ttotal: 0.319, tlookup: 0.029, tconnect:0.173


ИХ> на сервере в это время работает 4 worker-а и cache loader обновляет данные

ИХ> Грешил на медленный HDD, но при отдаче с md картина та же самая.
ИХ> sysctl -a | grep vnode
ИХ> kern.maxvnodes: 1000000
ИХ> kern.minvnodes: 25000
ИХ> vm.stats.vm.v_vnodepgsout: 0
ИХ> vm.stats.vm.v_vnodepgsin: 1269012
ИХ> vm.stats.vm.v_vnodeout: 0
ИХ> vm.stats.vm.v_vnodein: 266964
ИХ> vfs.freevnodes: 25065
ИХ> vfs.wantfreevnodes: 25000
ИХ> vfs.numvnodes: 200612
ИХ> debug.sizeof.vnode: 504


Best regards,
CoolCold [COOLCOLD-RIPN]




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