Geo проблема
Konstantin Svist
fry.kun на gmail.com
Ср Авг 24 01:36:44 UTC 2011
У меня почему-то Geo ест слишком много памяти.
Без Geo (top):
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6324 nobody 20 0 287m 52m 2052 S 0.0 0.2 0:00.03 nginx:
worker process
6304 root 20 0 284m 47m 524 S 0.0 0.1 0:00.02 nginx:
master process /usr/local/nginx/sbin/nginx -c
/usr/local/nginx/conf/nginx.conf
Когда добавляю Geo:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
8151 nobody 20 0 668m 437m 6036 S 25.6 1.4 0:27.91 nginx:
worker process
8113 root 20 0 664m 427m 572 S 0.0 1.3 0:00.28 nginx:
master process /usr/local/nginx/sbin/nginx -c
/usr/local/nginx/conf/nginx.conf
А если сделать kill -HUP, то ещё хуже:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
28811 nobody 20 0 1213m 984m 8188 S 23.7 3.0 2109:47 nginx:
worker process
2721 root 20 0 1213m 978m 2548 S 0.0 3.0 0:37.95 nginx:
master process /usr/local/nginx/sbin/nginx -c
/usr/local/nginx/conf/nginx.conf
nginx.conf:
http {
geo $ip_blocklist_in $ip_blocklist_out {
default "OK";
include ipblocklist.conf;
}
proxy_set_header Custom-Ip-Blocklist $ip_blocklist_out;
fastcgi_param HTTP_CUSTOM_IP_BLOCKLIST $ip_blocklist_out;
...
server { # большинство таких (~20) - не пользую Geo
...
}
server { # 2 таких - не пользую Geo
set $ip_blocklist_in '';
...
}
server { # 1 такой - пользую Geo
location /xyz {
set $ip_blocklist_in $arg_i; # client passes IP as
url param
...
}
...
}
server { # 4 таких - пользую Geo
set $ip_blocklist_in $arg_i; # client passes IP as url param
...
}
}
ipblocklist.conf:
10.10.10.111 ab|bc;
10.10.10.189 ab|bc;
10.10.252.101 bc|defg;
10.100.10.100 ab|bc|defg;
...
~670,000 линий, всего 13M на диске.
Подробная информация о списке рассылки nginx-ru