Ad Widget

Collapse

Zabbix проблемы с nignx+php-fpm

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • p.salnikov
    Junior Member
    • Feb 2014
    • 4

    #1

    Zabbix проблемы с nignx+php-fpm

    Доброго времени суток! У меня возникла такая проблема. Использую заббикс, для отдачи фронтенда - связку nignx+php-fpm. Отрисовка графиков происходит с большими тормозами. Точнее обновление графика на открытой странице. Т.е. открываешь комплексный экран и минут через 5 видишь (скриншот в приложении).

    Использую
    Centos 6.4
    Zabbix 2.2.1
    Mysql 5.5.24
    Nignx 1.0.21
    php-fpm 5.4.2

    Проверял работоспособность на apache, там все ок. Т.е. все дело в настройках связки nginx+php-fpm

    Перечитал несколько хауту, вроде никаких нюансов настройки нет.

    Подскажите как можно отдебажить эту проблему? Может кто уже сталкивался? Или хотя бы куда копать? Заранее спасибо.
    Attached Files
  • yukra
    Senior Member
    • Apr 2013
    • 1359

    #2
    использую такую же связку. У меня все ок.

    Другой php-код работает нормально? php-пуллеров хватает? Что с нагрузкой на сервер? Может strace'ом цепануть с чему нить?

    Comment

    • p.salnikov
      Junior Member
      • Feb 2014
      • 4

      #3
      на том же серваке крутиться форум, с ним все ок. Нагрузка на сервер - символическкая. LA не превышает 2, как правило. Памяти 5 Гб свободно. Диски не нагружены.

      "php-пуллеров хватает?" всысле php-fpm чайлдов? Судя по графикам хватает. На пробу увеличивал вдвое их количество, ничего не изменилось.

      Если можешь кинь конфиги,плиз. nginx php-fpm php.ini. Я проанализирую разницу, попробую найти в чем подвох

      Comment

      • ableev
        Senior Member
        Zabbix Certified Specialist
        • Oct 2012
        • 276

        #4
        Посмотрите скорость загрузки страниц/картинок в инструментах разработчика/firebug.

        Comment

        • yukra
          Senior Member
          • Apr 2013
          • 1359

          #5
          Originally posted by p.salnikov
          Если можешь кинь конфиги,плиз. nginx php-fpm php.ini. Я проанализирую разницу, попробую найти в чем подвох
          Да почти все по умолчанию. А у тебя с БД все ок?

          Мои конфиги:
          nginx:
          Code:
          server {
          	listen 80;
          	server_name servername;
          	access_log /var/log/nginx/servername.access.log ;
          	
          	location / {
          		root /usr/share/zabbix;
          		index index.php index.html;
          		autoindex on;
          		autoindex_exact_size off;
          		
          	}
          	
          	location ~ \.php$ {
          		root /usr/share/zabbix;
          		fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
          		fastcgi_index index.php;
          		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          		include fastcgi_params;
          	}
          }
          php-fpm:
          Code:
          $ cat /etc/php-fpm.conf | egrep -v "^;" | uniq 
          include=/etc/php-fpm.d/*.conf
          [global]
          pid = /var/run/php-fpm/php-fpm.pid
          error_log = /var/log/php-fpm/error.log
          daemonize = no
          $ cat /etc/php-fpm.d/www.conf  | egrep -v "^;" | uniq 
          [www]
          listen = /var/run/php-fpm/php-fpm.sock 
          listen.allowed_clients = 127.0.0.1
          user = nginx
          group = nginx
          pm = dynamic
          pm.max_children = 30
          pm.start_servers = 5
          pm.min_spare_servers = 5
          pm.max_spare_servers = 15
          request_slowlog_timeout = 3
          slowlog = /var/log/php-fpm/www-slow.log
          php_admin_value[error_log] = /var/log/php-fpm/www-error.log
          php_admin_flag[log_errors] = on
          php_value[session.save_handler] = files
          php_value[session.save_path] = /var/lib/php/session
          $
          php.ini
          Code:
          $ cat /etc/php.ini | egrep -v "^;" | uniq
          [PHP]
          engine = On
          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 = 100
          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 =
          expose_php = On
          max_execution_time = 600     
          max_input_time = 300
          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 = 16M
          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
          allow_url_fopen = On
          allow_url_include = Off
          default_socket_timeout = 60
          [Date]
          date.timezone =  Europe/Moscow
          [filter]
          [iconv]
          [intl]
          [sqlite]
          [sqlite3]
          [Pcre]
          [Pdo]
          [Phar]
          [Syslog]
          define_syslog_variables  = Off
          [mail function]
          SMTP = localhost
          smtp_port = 25
          sendmail_path = /usr/sbin/sendmail -t -i
          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
          [MySQL]
          mysql.allow_persistent = On
          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_links = -1
          mysqli.default_port = 3306
          mysqli.default_socket =
          mysqli.default_host =
          mysqli.default_user =
          mysqli.default_pw =
          mysqli.reconnect = Off
          [PostgresSQL]
          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.save_path = "/var/lib/php/session"
          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.entropy_file =
          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
          [sysvshm]
          $

          Comment

          • p.salnikov
            Junior Member
            • Feb 2014
            • 4

            #6
            проблема решилась заменой
            keepalive_timeout = 30
            на
            keepalive_timeout=0

            честно говоря, не знаю почему. Подобрал "брутфорсом"

            Comment

            Working...