pfSense NAT не передает трафик

Я хотел бы использовать Linux-кеширование SSD (dm-cache или bcache) с производственными серверами Debian Jessie. (ядро 3.16)

Мой вопрос: Надежны ли модули dm-cache и bcache в linux 3.16? Нужно ли мне обновить ядро ​​до более новой версии?

Я также обнаружил это тревожное сообщение о bcache: https://lkml.org/lkml/2015/12/22/154

Обратите внимание, что Я полностью понимаю, что подразумевает выбор режима кэширования (обратная запись / сквозная запись) с точки зрения надежности и потери данных, мой вопрос больше о программной ошибке в этих модулях


Февраль 2018 г., после более чем 1 года использования bcache на сервере непрерывной интеграции (экземпляр jenkins выполняет множество интенсивных задач!)

Конфигурация сервера (по сути, стек хранилища)

Оборудование:

  • 1 устройство raid10 для 2 SSD
  • 1 устройство raid10 для 2 жестких дисков
  • 2 LVM VG наверху 2 raid устройства
  • bcache "кэширующее" устройство, созданное на логическом томе на SSD_RAID10 VG
  • «резервное» устройство bcache, созданное на логическом томе на HDD_RAID10 VG
  • кэш bcache, настроенный как обратная запись
  • Рабочая нагрузка

    • много заданий Дженкинса (непрерывная интеграция)
    • задания с интенсивным использованием ЦП смешанный с периодами интенсивности ввода / вывода
      • до использования bcache такие периоды, когда средняя задержка ввода-вывода регулярно возрастала выше 5 секунд (!!!)
    • реальная рабочая нагрузка на этом сервере началась всего год назад (~ февраль 2017 г.)

    Количество операций ввода-вывода выдано на устройстве bcache согласно / proc / diskstats)

    • 350 ТБ записано
    • 6 ТБ чтения (я дважды проверил это, я думаю, что большой объем ОЗУ очень помогает кэшировать операции чтения на уровне VFS)

    Результат

    • рок стабильный! машину никогда не нужно было перезагружать (время безотказной работы 525 дней), повреждений не обнаружено.
    • высокий процент попаданий! Среднее значение за все время составляет 78% и растет: более 80% за последние месяцы
    • обратная запись очень помогает: задержка диска теперь на порядок ниже, к сожалению, у меня нет точных мер для этого, но вычисления не останавливаются больше писать всплески. Объем грязных данных превышает 5 ГБ, когда я пытаюсь перейти к тесту php-файла, он загружает его вместо запуска и рендеринга в браузере. Все остальные HTML-файлы, файлы изображений и т. Д. Отображаются нормально. Если ...

      У меня есть nginx и php-fpm, установленные на Centos 7, когда я пытаюсь перейти в тестовый файл php, он загружает его вместо запуска и рендеринга в браузере. Все остальные html, файлы изображений и т. Д. Отображаются нормально.

      Если на этот вопрос был дан ответ в другом месте на сайте, прошу прощения за этот пост, и я удалю, но все остальные сообщения, которые я видел, относятся к Ubuntu, и предложения там не работают. Я также попытался временно отключить selinux и то же самое.

      В моем каталоге / usr / share / nginx / html / у меня есть файл php с функцией phpinfo ():

      [root@www1 html]# ll /usr/share/nginx/html/
      total 24
      -rw-r--r--. 1 root root 3650 Oct  4 11:53 404.html
      -rw-r--r--. 1 root root 3693 Oct  4 11:53 50x.html
      -rw-r--r--. 1 root root 3700 Oct  4 11:53 index.html
      -rw-r--r--. 1 root root   20 Jan  8 01:44 info.php
      -rw-r--r--. 1 root root  368 Oct  4 11:53 nginx-logo.png
      -rw-r--r--. 1 root root 2811 Oct  4 11:53 poweredby.png
      

      Мои конфигурации ниже:

      У меня на Centos 7 установлены nginx и php-fpm, и когда я пытаюсь перейти к тестовому файлу php, он загружает его вместо запуска и рендеринга в браузере. Все остальные html, файлы изображений и т. Д. Отображаются нормально.

      Если на этот вопрос был дан ответ в другом месте на сайте, прошу прощения за этот пост, и я удалю, но все остальные сообщения, которые я видел, относятся к Ubuntu, и предложения там не работают. Я также попытался временно отключить selinux и то же самое.

      В моем каталоге / usr / share / nginx / html / у меня есть файл php с функцией phpinfo ():

      [root@www1 html]# ll /usr/share/nginx/html/
      total 24
      -rw-r--r--. 1 root root 3650 Oct  4 11:53 404.html
      -rw-r--r--. 1 root root 3693 Oct  4 11:53 50x.html
      -rw-r--r--. 1 root root 3700 Oct  4 11:53 index.html
      -rw-r--r--. 1 root root   20 Jan  8 01:44 info.php
      -rw-r--r--. 1 root root  368 Oct  4 11:53 nginx-logo.png
      -rw-r--r--. 1 root root 2811 Oct  4 11:53 poweredby.png
      

      Мои конфигурации ниже:

      У меня на Centos 7 установлены nginx и php-fpm, и когда я пытаюсь перейти к тестовому файлу php, он загружает его вместо запуска и рендеринга в браузере. Все остальные html, файлы изображений и т. Д. Отображаются нормально.

      Если на этот вопрос был дан ответ в другом месте на сайте, прошу прощения за этот пост, и я удалю, но все остальные сообщения, которые я видел, относятся к Ubuntu, и предложения там не работают. Я также попытался временно отключить selinux и то же самое.

      В моем каталоге / usr / share / nginx / html / у меня есть файл php с функцией phpinfo ():

      [root@www1 html]# ll /usr/share/nginx/html/
      total 24
      -rw-r--r--. 1 root root 3650 Oct  4 11:53 404.html
      -rw-r--r--. 1 root root 3693 Oct  4 11:53 50x.html
      -rw-r--r--. 1 root root 3700 Oct  4 11:53 index.html
      -rw-r--r--. 1 root root   20 Jan  8 01:44 info.php
      -rw-r--r--. 1 root root  368 Oct  4 11:53 nginx-logo.png
      -rw-r--r--. 1 root root 2811 Oct  4 11:53 poweredby.png
      

      Мои конфигурации ниже:

      но все остальные сообщения, которые я видел, относятся к Ubuntu, и предложения там не работают. Я также попытался временно отключить selinux и то же самое.

      В моем каталоге / usr / share / nginx / html / у меня есть файл php с функцией phpinfo ():

      [root@www1 html]# ll /usr/share/nginx/html/
      total 24
      -rw-r--r--. 1 root root 3650 Oct  4 11:53 404.html
      -rw-r--r--. 1 root root 3693 Oct  4 11:53 50x.html
      -rw-r--r--. 1 root root 3700 Oct  4 11:53 index.html
      -rw-r--r--. 1 root root   20 Jan  8 01:44 info.php
      -rw-r--r--. 1 root root  368 Oct  4 11:53 nginx-logo.png
      -rw-r--r--. 1 root root 2811 Oct  4 11:53 poweredby.png
      

      Мои конфигурации ниже:

      но все остальные сообщения, которые я видел, относятся к Ubuntu, и предложения там не работают. Я также попытался временно отключить selinux и то же самое.

      В моем каталоге / usr / share / nginx / html / у меня есть файл php с функцией phpinfo ():

      [root@www1 html]# ll /usr/share/nginx/html/
      total 24
      -rw-r--r--. 1 root root 3650 Oct  4 11:53 404.html
      -rw-r--r--. 1 root root 3693 Oct  4 11:53 50x.html
      -rw-r--r--. 1 root root 3700 Oct  4 11:53 index.html
      -rw-r--r--. 1 root root   20 Jan  8 01:44 info.php
      -rw-r--r--. 1 root root  368 Oct  4 11:53 nginx-logo.png
      -rw-r--r--. 1 root root 2811 Oct  4 11:53 poweredby.png
      

      Мои конфигурации ниже:

      [ root @ www1 nginx] # cat /etc/php-fpm.d/www.conf[1164510 sizes

      ;listen = 127.0.0.1:9000
      
      listen = /var/run/php-fpm/php-fpm.sock
      listen.allowed_clients = 127.0.0.1
      
      listen.owner = nobody
      listen.group = nobody
      user = nginx
      group = nginx
      pm = dynamic
      

      [ root @ www1 nginx] # cat /etc/nginx/nginx.conf[1164512 provided

      user nginx;
      worker_processes auto;
      error_log /var/log/nginx/error.log;
      pid /run/nginx.pid;
      
      events {
          worker_connections 1024;
      }
      
      http {
          log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                            '$status $body_bytes_sent "$http_referer" '
                            '"$http_user_agent" "$http_x_forwarded_for"';
      
          access_log  /var/log/nginx/access.log  main;
      
          sendfile            on;
          tcp_nopush          on;
          tcp_nodelay         on;
          keepalive_timeout   65;
          types_hash_max_size 2048;
          include             /etc/nginx/mime.types;
          default_type        application/octet-stream;
      
          include /etc/nginx/conf.d/*.conf;
      
          server {
              listen       80 default_server;
              listen       [::]:80 default_server;
              server_name  _;
              root         /usr/share/nginx/html;
      
              # Load configuration files for the default server block.
              include /etc/nginx/default.d/*.conf;
      
              location / {
              }
      
              error_page 404 /404.html;
                  location = /40x.html {
              }
      
              error_page 500 502 503 504 /50x.html;
                  location = /50x.html {
              }
          }
      }
      

      [ root @ www1nginx] # cat /etc/nginx/conf.d/default.conf

      server {
          listen       80;
          server_name  my_ip_here;
      
          # note that these lines are originally from the "location /" block
          root   /usr/share/nginx/html;
          index index.php index.html index.htm;
      
          location / {
              try_files $uri $uri/ =404;
          }
          error_page 404 /404.html;
          error_page 500 502 503 504 /50x.html;
          location = /50x.html {
              root /usr/share/nginx/html;
          }
      
          location ~ \.php$ {
              try_files $uri =404;
              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;
          }
      }
      
    0
    задан 8 January 2016 в 00:43
    1 ответ

    Я предполагаю, что это одна из следующих вещей: - Файлы try_files могут влиять на вещи - Ваш URL-адрес fasscgi_pass может быть неверным по сравнению с тем, где установлен PHP. Вы можете попробовать перейти в каталоги / var / run и / var / run / php, чтобы посмотреть, что там. - Может быть какая-то другая проблема с PHP.

    Попробуйте изменить это, убрав все лишние строки (особенно try_files в блоке PHP). Сообщите, что происходит.

    location ~ \.php$ {
      fastcgi_pass unix:/var/run/php5-fpm.sock;
      fastcgi_index index.php;
      include fastcgi_params;
      fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
    

    Если это не сработает, попробуйте это

    location ~ \.php$ {
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      include fastcgi_params;
      fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    } 
    

    Вы можете добавить это в любой блок местоположения, чтобы облегчить отладку. Используйте Firefox и «Live HTTP Headers», чтобы увидеть результат

    add_header Z_LOCATION "(describe your location block)";
    add_header URI $uri; 
    

    Если ни один из них не работает, вам придется опубликовать более подробную информацию о вашей настройке PHP и, возможно, несколько журналов.

    Вот моя точная конфигурация, но обратите внимание, что она настроена на работать с HHVM, более быстрым интерпретатором PHP, чем стандартный PHP

    location ~ \.(hh|php)$ {
      fastcgi_keep_conn on;
      fastcgi_intercept_errors on;
      fastcgi_pass   php;
      include        fastcgi_params;
      fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    
      add_header Z_LOCATION "PHP MAIN"; add_header URI $uri; # DEBUG
    }
    
    -1
    ответ дан 5 December 2019 в 18:46

    Теги

    Похожие вопросы