Падает сервер при 42 активных соединениях)) Помогите настроить

Тема в разделе "Администрирование серверов", создана пользователем Havan, 5 янв 2014.

Модераторы: mefish, stooper
  1. Havan

    Havan Создатель

    Регистр.:
    9 июн 2012
    Сообщения:
    27
    Симпатии:
    3
    Добрый день. Стоит Nginx+php+mysql, Windows Server 12. Код ошибки (из лога nginx)
    Код:
    2014/01/05 14:59:42 [error] 5108#5148: *1882 upstream timed out (10060: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond) while connecting to upstream, client: 46.18.4.19, server: site.com, request: "GET /redirect/traff.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host:
    Падает при 40-50 активных соединения. Хотя железо вообще не нагружено. 2% проца, 2гига оперы (из 16).

    Конфиг Nginx

    Код:
    
    #user  nobody;
    worker_processes  8;
    
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
    #pid        logs/nginx.pid;
    
    
    events {
        worker_connections  1024;
    }
    
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        server_tokens off;
       
        client_body_buffer_size 1K;
       
        client_header_buffer_size 1k;
       
        client_max_body_size 10k;
       
        large_client_header_buffers 2 1k;
       
        client_body_timeout 10;
         
        client_header_timeout 10;
         
        keepalive_timeout 5 5;
         
        send_timeout 10;
           
        sendfile        on;
    
    
        server {
            listen 80;
           
            if ($request_method !~ ^(GET|HEAD|POST)$ ) {
                return 444;
            }
           
            root c:/server/www/site1.com;   
           
            server_name *.site1.com;
    
            server_tokens off;
    
            #access_log logs/access.log;
           
    
            location / {
                index index.html index.htm index.php;
            }
    
            location ~ \.php$ {
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
            }
    
            location ~ /\.ht {
                deny all;
            }
    
            #error_page 404 /404.html;
    
            error_page 500 502 503 504 /50x.html;
            location = /50x.html {
                root html;
            }
        }
       
       
        server {
            listen 80;
           
            root c:/server/www/site2.com;   
           
            server_name *.site2.com;
    
            server_tokens off;
    
            #access_log logs/access.log;
    
            location / {
                index index.html index.htm index.php;
            }
    
            location ~ \.php$ {
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
            }
    
            location ~ /\.ht {
                deny all;
            }
    
            #error_page 404 /404.html;
    
            error_page 500 502 503 504 /50x.html;
            location = /50x.html {
                root html;
            }
        }
       
    
        server {
            listen 80;
           
            root c:/server/www/site3.com;   
           
            server_name *.site3.com;
    
            server_tokens off;
    
            #access_log logs/access.log;
    
            location / {
                index index.html index.htm index.php;
            }
    
            location ~ \.php$ {
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
            }
    
            location ~ /\.ht {
                deny all;
            }
    
            #error_page 404 /404.html;
    
            error_page 500 502 503 504 /50x.html;
            location = /50x.html {
                root html;
            }
        }
       
       
       
        server {
            listen 80;
           
            root c:/server/www/site4.com;   
           
            server_name *.site4.com;
    
            server_tokens off;
    
            #access_log logs/access.log;
    
            location / {
                index index.html index.htm index.php;
            }
    
            location ~ \.php$ {
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
            }
    
            location ~ /\.ht {
                deny all;
            }
    
            #error_page 404 /404.html;
    
            error_page 500 502 503 504 /50x.html;
            location = /50x.html {
                root html;
            }
        }
       
       
        server {
            listen 80;
           
            if ($request_method !~ ^(GET|HEAD|POST)$ ) {
                return 444;
            }
           
            root c:/server/www/site5.com;   
           
            server_name site5.com;
    
            server_tokens off;
    
            #access_log logs/access.log;
           
    
            location / {
                index index.html index.htm index.php;
            }
    
            location ~ \.php$ {
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
            }
    
            location ~ /\.ht {
                deny all;
            }
    
            #error_page 404 /404.html;
    
            error_page 500 502 503 504 /50x.html;
            location = /50x.html {
                root html;
            }
        }
       
    
    
    }
    
    
    
     
    Последнее редактирование модератором: 5 янв 2014
  2. mefish

    mefish Support

    Moderator
    • Супермодератор
    Регистр.:
    30 авг 2007
    Сообщения:
    886
    Симпатии:
    629
    Увеличиваем эти параметры:

    В конфиге php-fpm увеличить кол-во процессов, подбирать все опытным путем.
     
  3. Havan

    Havan Создатель

    Регистр.:
    9 июн 2012
    Сообщения:
    27
    Симпатии:
    3
    вроде как нашел причину.
    Если запустить скрипт ниже 1 раз, то зависает весь сервер
    Код:
    <?php
        sleep(99999999)
    ?>
    У меня просто php (сервер windows), но думаю это то что нужно. В гугле не смог найти как увеличить, подскажите ?
    вот php.ini
    Код:
    [PHP] 
    short_open_tag = Off
    
    asp_tags = Off
    precision = 14
    y2k_compliance = On
    output_buffering = 4096
    zlib.output_compression = Off
    implicit_flush = Off
    unserialize_callback_func =
    serialize_precision = 17
    allow_call_time_pass_reference = Off
    safe_mode = Off
    safe_mode_gid = Off
    safe_mode_include_dir =
    safe_mode_exec_dir =
    safe_mode_allowed_env_vars = PHP_
    safe_mode_protected_env_vars = LD_LIBRARY_PATH
    disable_functions =
    
    disable_classes =
    
    zend.enable_gc = On
    
    expose_php = On
    
    max_execution_time = 30
    max_input_time = 60
    
    memory_limit = 128M
    error_reporting = E_ALL & ~E_DEPRECATED
    
    display_errors = Off
    
    display_startup_errors = Off
    log_errors = On
    
    log_errors_max_len = 1024
    
    ignore_repeated_errors = Off
    ignore_repeated_source = Off
    report_memleaks = On
    track_errors = Off
    html_errors = Off
    variables_order = "GPCS"
    
    request_order = "GP"
    
    register_globals = Off
    register_long_arrays = Off
    
    register_argc_argv = Off
    auto_globals_jit = On
    post_max_size = 8M
    magic_quotes_gpc = Off
    magic_quotes_runtime = Off
    magic_quotes_sybase = Off
    auto_prepend_file =
    auto_append_file =
    default_mimetype = "text/html"
    doc_root =
    
    user_dir =
    enable_dl = Off
    
    file_uploads = On
    
    upload_max_filesize = 2M
    
    max_file_uploads = 20
    allow_url_fopen = On
    allow_url_include = Off
    
    default_socket_timeout = 60
    [Date]
    
    date.timezone ="Europe/Moscow"
    [filter]
    
    [iconv]
    
    [intl]
    
    [sqlite]
    [sqlite3]
    
    [Pcre]
    [Pdo]
    
    [Pdo_mysql]
    
    pdo_mysql.cache_size = 2000
    
    pdo_mysql.default_socket=
    [Phar]
    
    [Syslog]
    
    define_syslog_variables  = Off
    [mail function]
    
    SMTP = localhost
    smtp_port = 25
    mail.add_x_header = On
    [SQL]
    sql.safe_mode = Off
    [ODBC]
    odbc.allow_persistent = On
    odbc.check_persistent = On
    odbc.max_persistent = -1
    odbc.max_links = -1
    
    odbc.defaultlrl = 4096
    odbc.defaultbinmode = 1
    [Interbase]
    ibase.allow_persistent = 1
    
    ibase.max_persistent = -1
    
    ibase.max_links = -1
    
    ibase.timestampformat = "%Y-%m-%d %H:%M:%S"
    
    ibase.dateformat = "%Y-%m-%d"
    
    ibase.timeformat = "%H:%M:%S"
    [MySQL]
    
    mysql.allow_local_infile = On
    mysql.allow_persistent = On
    mysql.cache_size = 2000
    mysql.max_persistent = -1
    mysql.max_links = -1
    
    mysql.default_port =
    
    mysql.default_socket =
    mysql.default_host =
    mysql.default_user =
    mysql.default_password =
    mysql.connect_timeout = 60
    
    mysql.trace_mode = Off
    [MySQLi]
    mysqli.max_persistent = -1
    mysqli.allow_persistent = On
    mysqli.max_links = -1
    mysqli.cache_size = 2000
    
    mysqli.default_port = 3306
    
    mysqli.default_socket =
    mysqli.default_host =
    mysqli.default_user =
    mysqli.default_pw =
    
    mysqli.reconnect = Off
    [mysqlnd]
    mysqlnd.collect_statistics = On
    
    mysqlnd.collect_memory_statistics = Off
    
    [OCI8]
    
    [PostgreSQL]
    
    pgsql.allow_persistent = On
    
    pgsql.auto_reset_persistent = Off
    pgsql.max_persistent = -1
    pgsql.max_links = -1
    
    pgsql.ignore_notice = 0
    
    pgsql.log_notice = 0
    [Sybase-CT]
    
    sybct.allow_persistent = On
    sybct.max_persistent = -1
    sybct.max_links = -1
    sybct.min_server_severity = 10
    sybct.min_client_severity = 10
    [bcmath]
    
    bcmath.scale = 0
    [browscap]
    [Session]
    
    session.save_handler = files
    
    session.use_cookies = 1
    session.use_only_cookies = 1
    session.name = PHPSESSID
    session.auto_start = 0
    session.cookie_lifetime = 0
    session.cookie_path = /
    session.cookie_domain =
    session.cookie_httponly =
    session.serialize_handler = php
    session.gc_probability = 1
    session.gc_divisor = 1000
    
    session.gc_maxlifetime = 1440
    session.bug_compat_42 = Off
    
    session.bug_compat_warn = Off
    session.referer_check =
    session.entropy_length = 0
    session.cache_limiter = nocache
    session.cache_expire = 180
    session.use_trans_sid = 0
    session.hash_function = 0
    session.hash_bits_per_character = 5
    
    url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
    [MSSQL]
    mssql.allow_persistent = On
    
    mssql.max_persistent = -1
    
    mssql.max_links = -1
    
    mssql.min_error_severity = 10
    
    mssql.min_message_severity = 10
    
    mssql.compatability_mode = Off
    
    mssql.secure_connection = Off
    [Assertion]
    [COM]
    
    [mbstring]
    
    [gd]
    
    [exif]
    [Tidy]
    
    tidy.clean_output = Off
    [soap]
    
    soap.wsdl_cache_enabled=1
    soap.wsdl_cache_dir="/tmp"
    
    soap.wsdl_cache_ttl=86400
    
    soap.wsdl_cache_limit = 5
    [sysvshm]
    [ldap]
    ldap.max_links = -1
    [mcrypt]
    
    [dba]
    
    [xsl]
    
     
    Последнее редактирование модератором: 5 янв 2014
  4. Tank24

    Tank24 Создатель

    Регистр.:
    22 июл 2009
    Сообщения:
    16
    Симпатии:
    0
    Попробуй повысить worker_connections 1024; до 2048. Но скорее всего php не может обработать быстро какой-то скрипт.
     
  5. 100matolog

    100matolog Создатель

    Регистр.:
    17 дек 2008
    Сообщения:
    47
    Симпатии:
    2
    попробуйте увеличить значение (windows)
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\EnableConnectionRateLimiting
    Плюс посмотрите - возможно у вас узкое место в количестве подключений к базе данных.
    У меня был инциндент когда сервер залипал в этом месте.