Gena Makhomed | 1 Oct 02:04

Re[4]: NPH-режим при работе с memcached

On Wednesday, October 1, 2008 at 1:13:48, David Mzareulyan wrote:

DM> А суть именно в том, что заголовки
DM> берутся из мемкеша, а не сочиняются с нуля.

сейчас для memcached 1.3.x разрабатывают новый бинарный протокол,
идеальным решением было бы включить в этот протокол
также передачу
дополнительной информации - идут http заголовки
вместе с контентом
или нет, сжат ли сам контент с помощью gzip или не сжат, и т.п.

тогда можно будет почти всегда помещать в memcached контент
без заголовков, чем будет хорошо экономиться
оперативная память,
и только в очень редких случаях, когда это будет
действительно надо -
backend разместит в memcached контент вместе с http заголовками ответа.

--

-- 
Best regards,
 Gena

Picon
Favicon

Re: время в логах на приличной нагрузке.

В итоге выяснили что причина скачков во времени была в
самом таймере
используемом в Linux. Подробности тут: http://lkml.org/lkml/2007/8/23/96
TSC заменили на HPET. На лету это делается в
/sys/devices/system/clocksource/... В загрузчике при помощи clocksource=hpet
Игорь, еще раз спасибо за помощь.

Vitaliy Okulov | 1 Oct 16:13
Picon

upstream backup

Ошибка при указании параметра backup, в чем может быть проблема?

tcx# nginx -t
2008/10/01 18:10:12 [emerg] 45802#0: invalid parameter "backup" in /usr/local/etc/nginx/upstream.conf:2
2008/10/01 18:10:12 [emerg] 45802#0: the configuration file /usr/local/etc/nginx/nginx.conf test failed

upstream test {
    server   172.16.1.4 backup;
    server   172.16.1.5;
}

tcx# nginx -V
nginx version: nginx/0.6.32
configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt=-I /usr/local/include --with-ld-opt=-L /usr/local/lib --conf-path=/usr/local/etc/nginx/nginx.conf --sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid --error-log-path=/var/log/nginx-error.log --user=www --group=www --http-client-body-temp-path=/var/tmp/nginx/client_body_temp --http-proxy-temp-path=/var/tmp/nginx/proxy_temp --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp --http-log-path=/var/log/nginx-access.log --with-http_addition_module --with-http_dav_module --with-http_flv_module --with-http_realip_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module

Igor Sysoev | 1 Oct 16:29
Picon

Re: upstream backup

On Wed, Oct 01, 2008 at 06:13:11PM +0400, Vitaliy Okulov wrote:

> Ошибка при указании параметра backup, в чем может быть проблема?
> 
> tcx# nginx -t
> 2008/10/01 18:10:12 [emerg] 45802#0: invalid parameter "backup" in
> /usr/local/etc/nginx/upstream.conf:2
> 2008/10/01 18:10:12 [emerg] 45802#0: the configuration file
> /usr/local/etc/nginx/nginx.conf test failed
> 
> upstream test {
>     server   172.16.1.4 backup;
>     server   172.16.1.5;
> }

Скорее всего, upstream описан после его первого использования.
В этом случае создаётся апстрим с минимумом свойств.

--

-- 
Игорь Сысоев
http://sysoev.ru

Vitaliy Okulov | 1 Oct 17:55
Picon

Re: upstream backup

Да, все верно.

1 октября 2008 г. 18:29 пользователь Igor Sysoev <is <at> rambler-co.ru> написал:
On Wed, Oct 01, 2008 at 06:13:11PM +0400, Vitaliy Okulov wrote:

> Ошибка при указании параметра backup, в чем может быть проблема?
>
> tcx# nginx -t
> 2008/10/01 18:10:12 [emerg] 45802#0: invalid parameter "backup" in
> /usr/local/etc/nginx/upstream.conf:2
> 2008/10/01 18:10:12 [emerg] 45802#0: the configuration file
> /usr/local/etc/nginx/nginx.conf test failed
>
> upstream test {
>     server   172.16.1.4 backup;
>     server   172.16.1.5;
> }

Скорее всего, upstream описан после его первого использования.
В этом случае создаётся апстрим с минимумом свойств.


--
Игорь Сысоев
http://sysoev.ru


Arceny | 1 Oct 23:23
Picon
Favicon

nginx + php-cgi - не держат нагрузку

Здравствуйте.

Имеется nginx/0.5.35 и за ним apache бекендом на достаточно
высоконагруженом сервере. Захотели перейти на fcgi.

Система Debian 4.0 + backports,  поставили php-fcgi из бекпортов,
работает со следующим /etc/default/php-fastcgi:

EXEC_AS_USER=www-data
FCGI_HOST=localhost
FCGI_PORT=9000
PHP_FCGI_CHILDREN=6
PHP_FCGI_MAX_REQUESTS=1000

при работе соответственно висят 6 процессов типа
31572 ?        Ss     0:00 /usr/bin/php-cgi -q -b localhost:9000

Конфигурация nginx:

user www-data;
worker_processes  8;
error_log  /dev/null;
pid        /var/run/nginx.pid;
events {
    worker_connections  4096;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    tcp_nodelay        on;
    client_max_body_size 10m;
    gzip  on;
    gzip_comp_level 3;
    gzip_proxied any;
    include /etc/nginx/sites-enabled/default;
}

Часть конфига, отвечающая за мой виртуалхост с
пробросом на fcgi:

server {
 listen  10.196.0.18:80;
 server_name torrent.b-metro.net www.torrent.b-metro.net;

 access_log off;
 index index.html index.php;

 location ~ (\.php(/.+)?$|^/$) {
   fastcgi_pass 127.0.0.1:9000;
   fastcgi_index   index.php;
   include /etc/nginx/fastcgi_params;
 }
location ~* \.(jpg|jpeg|png|gif|htm|html|js|txt|css|mp3|rar|bmp|zip|bz2|
gz)$ { root /home/torrent/www/;
  autoindex on;
  }
}

ОПИСАНИЕ ПРОБЛЕМЫ:
получаю ошибку 504 gateway timeout, при этом глядя в top вижу, что
нагрузки на php-cgi нету, на mysql нету, ни на что нету. При этом
сайты, для которых бекендом остался апач прекрасно
отдаются, то есть
проблема в php-cgi явно. Не подскажете куда копать?

P.S. Если нужно ещё /etc/nginx/fastcgi_params (дефалтный)

fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

-- 
 01:15:10 up 6 days,  3:17,  5 users,  load average: 0.30, 0.26, 0.20
Favicon

Re: nginx + php-cgi - не держат нагрузку


Я конечно могу ошибиться, но если вы запустили 6 процессов php-fcgi, то насколько я понимаю у вас 6 одновременных подключений может быть. А у вас сколько? Ошибка 504 и говорит о том, что фронтэнд не смог дождаться ответа от бекенда..
Leonid Popov | 2 Oct 01:05
Picon
Favicon
Gravatar

Re: nginx + php-cgi - не держат нагрузку

В сообщении от Thursday 02 October 2008 06:23:18 Arceny написал(а):
> Здравствуйте.
>
> Имеется nginx/0.5.35 и за ним apache бекендом на достаточно
> высоконагруженом сервере. Захотели перейти на fcgi.
>
> Система Debian 4.0 + backports,  поставили php-fcgi из бекпортов,
> работает со следующим /etc/default/php-fastcgi:
>
> EXEC_AS_USER=www-data
> FCGI_HOST=localhost
> FCGI_PORT=9000
> PHP_FCGI_CHILDREN=6
> PHP_FCGI_MAX_REQUESTS=1000
>
> при работе соответственно висят 6 процессов типа
> 31572 ?        Ss     0:00 /usr/bin/php-cgi -q -b localhost:9000
>
> Конфигурация nginx:
>
> user www-data;
> worker_processes  8;
> error_log  /dev/null;
> pid        /var/run/nginx.pid;
> events {
>     worker_connections  4096;
> }
> http {
>     include       /etc/nginx/mime.types;
>     default_type  application/octet-stream;
>     sendfile        on;
>     keepalive_timeout  65;
>     tcp_nodelay        on;
>     client_max_body_size 10m;
>     gzip  on;
>     gzip_comp_level 3;
>     gzip_proxied any;
>     include /etc/nginx/sites-enabled/default;
> }
>
> Часть конфига, отвечающая за мой виртуалхост с
пробросом на fcgi:
>
> server {
>  listen  10.196.0.18:80;
>  server_name torrent.b-metro.net www.torrent.b-metro.net;
>  access_log off;
>  index index.html index.php;
>
>  location ~ (\.php(/.+)?$|^/$) {
>    fastcgi_pass 127.0.0.1:9000;
>    fastcgi_index   index.php;
>    include /etc/nginx/fastcgi_params;
>  }
> location ~* \.(jpg|jpeg|png|gif|htm|html|js|txt|css|mp3|rar|bmp|zip|bz2|
> gz)$ { root /home/torrent/www/;
>   autoindex on;
>   }
> }
>
> ОПИСАНИЕ ПРОБЛЕМЫ:
> получаю ошибку 504 gateway timeout, при этом глядя в top вижу, что
> нагрузки на php-cgi нету, на mysql нету, ни на что нету. При этом
> сайты, для которых бекендом остался апач прекрасно
отдаются, то есть
> проблема в php-cgi явно. Не подскажете куда копать?
>
> P.S. Если нужно ещё /etc/nginx/fastcgi_params (дефалтный)
>
> fastcgi_param  QUERY_STRING       $query_string;
> fastcgi_param  REQUEST_METHOD     $request_method;
> fastcgi_param  CONTENT_TYPE       $content_type;
> fastcgi_param  CONTENT_LENGTH     $content_length;
>
> fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
> fastcgi_param  REQUEST_URI        $request_uri;
> fastcgi_param  DOCUMENT_URI       $document_uri;
> fastcgi_param  DOCUMENT_ROOT      $document_root;
> fastcgi_param  SERVER_PROTOCOL    $server_protocol;
>
> fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
> fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;
>
> fastcgi_param  REMOTE_ADDR        $remote_addr;
> fastcgi_param  REMOTE_PORT        $remote_port;
> fastcgi_param  SERVER_ADDR        $server_addr;
> fastcgi_param  SERVER_PORT        $server_port;
> fastcgi_param  SERVER_NAME        $server_name;
>
> # PHP only, required if PHP was built with --enable-force-cgi-redirect
> fastcgi_param  REDIRECT_STATUS    200;

Ошибка 504 всё время или периодически?  Вообще чистый php
не умеет нормально 
работать в режиме fast-cgi. Для этого используют, либо
патч php-fpm, либо 
spawn-fcgi обычно
Picon
Favicon

nginx 0.6.32+ phpfcgi +ssi+ Blitz template (наблюдение)

Данное сообщение не вопрос, а скорее констатация
факта - наблюдалось 
зацыкливание на последней SSI директиве при отправки
запроса post -ом  
на несуществующий URL приэтом обработка вызываемой
страницы 
производилась PHP c расширением Blitz Template (при
отключении оного 
никаких проблем) - это было из-за того что пост запросы
надо было 
редиректить на /index.php реврайтом потому как без этого
получали 405
Проблема исчезла после установки версии 0.7.17 и отказа
от rewrite на 
/index.php (если оставить реврайт проблема остаётся)

обе версии скомпилены с
configure arguments: --prefix=/usr --conf-path=/etc/nginx/nginx.conf 
--error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx.pid 
--lock-path=/var/run/nginx.lock --with-rtsig_module --with-select_module 
--with-poll_module --with-http_ssl_module --with-http_realip_module 
--with-http_addition_module --with-http_sub_module 
--with-http_dav_module --with-http_flv_module 
--with-http_gzip_static_module --with-http_stub_status_module 
--http-log-path=/var/log/nginx/access.log 
--http-client-body-temp-path=/var/tmp/nginx/client_body_tmp 
--http-proxy-temp-path=/var/tmp/nginx/proxy_body_tmp 
--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_body_tmp --with-debug

конфиги (пых запущен через spawn)

server {
    listen              80;
    server_name         host.lo;
    charset             utf-8;
    gzip                on;
    ssi                 on;

    error_log           /www/host.lo/logs/nginx.error.log debug;
    access_log          /www/host.lo/logs/nginx.access.log;

    location    @phpfcgi{
        fastcgi_pass    127.0.0.1:8080;
        include         /etc/nginx/fastcgi_params;
        fastcgi_param   SCRIPT_FILENAME /www/host.lo/htdocs/index.php;
    }

    location ~ \.(php|php/.*)$ {
        fastcgi_pass    127.0.0.1:8080;
        include         /etc/nginx/fastcgi_params;
        fastcgi_param   SCRIPT_FILENAME 
/www/host.lo/htdocs$fastcgi_script_name;
        }
    location /tmp_images {
        root /www/host.lo/var/tmp;
        }
    location /images {
        ssi             off;
        gzip            off;
        rewrite '^/images/([0-9]+)(\d{2})(\d{2})\.(jpg|jpeg|gif|png)' 
/images/photos/$3/$2/$1$2$3_70x60.$4 last;
        rewrite 
'^/images/big/([0-9]+)(\d{2})(\d{2})\.(jpg|jpeg|gif|png)' 
/images/photos/$3/$2/$1$2$3_440x330.$4 last;
        rewrite 
'^/images/medium/([0-9]+)(\d{2})(\d{2})\.(jpg|jpeg|gif|png)' 
/images/photos/$3/$2/$1$2$3_80x75.$4 last;
        alias           /var/www/img.host.lo;
        error_page      404 = /i/theme/default/img/nophoto.gif;
        }
    location / {
        if ( $request_method = "POST" ){
            rewrite ^(/.*)     /index.php;
        }
        error_page      404 = @phpfcgi;
        root   /www/host.lo/htdocs;
        index   index.shtml index.html index.htm index.php;
    }
}

Vasyl Kondrashov | 2 Oct 08:15
Picon

Re: nginx + php-cgi - не держат нагрузку

Может php-cgi упал?

Gmane