PHP-FPM на FreeBSD

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Pattern
сержант
Сообщения: 180
Зарегистрирован: 2007-08-30 23:45:54
Откуда: Санкт-Петербург
Контактная информация:

PHP-FPM на FreeBSD

Непрочитанное сообщение Pattern » 2013-06-13 15:31:14

Привет всем! Давно уже не заглядывал сюда и уж совсем забыл, когда спрашивал о помощи по фре.
Поднят самый обычный Web сервер на FreeBSD со связкой MySQL+Nginx+PHPFPM

Код: Выделить всё

[15:52 pattern@WebSrv2 /home/pattern]$ sudo -s
Password:
[15:52 root@WebSrv2 /usr/home/pattern]# uname -a
FreeBSD WebSrv2 9.1-RC1 FreeBSD 9.1-RC1 #0: Sun Sep 23 22:53:43 MSK 2012     root@WebSrv2:/usr/obj/usr/src/sys/GAMAIx64  amd64
[15:52 root@WebSrv2 /usr/home/pattern]# pkg_version -v | egrep "(mysql|nginx|php)"
mysql-client-5.5.31                 =   up-to-date with port
mysql-server-5.5.31                 =   up-to-date with port
nginx-1.2.8,1                       =   up-to-date with port
php53-5.3.24                        =   up-to-date with port
Суть дела в следующем. В последнее время раздел /var стал переполняться, в следствии чего система становится "колом". Долго не мог понять из-за чего происходит это переполнение, пока методом "научного" тыка не выяснилось, что виной всему становится php-fpm. Но что именно с ним происходит, никак не могу понять.
Top показывает следующее:

Код: Выделить всё

[15:52 root@WebSrv2 /usr/home/pattern]# top
last pid: 43405;  load averages:  0.75,  0.90,  1.04     up 17+04:24:48  15:52:46
78 processes:  2 running, 76 sleeping
CPU: 35.3% user,  0.0% nice,  7.5% system,  0.3% interrupt, 56.9% idle
Mem: 466M Active, 2572M Inact, 765M Wired, 104M Cache, 417M Buf, 19M Free
Swap: 4096M Total, 10M Used, 4086M Free
...
Учитывая что поток населения на сервере достаточно высокий, в целом считаю, что показатели в пределах нормы.
Смотрю diskusage:

Код: Выделить всё

[15:52 root@WebSrv2 /usr/home/pattern]# du -d 1 /var
4	/var/.snap
4	/var/account
12	/var/at
4	/var/audit
2652	/var/backups
4	/var/cache
8	/var/crash
12	/var/cron
1423044	/var/db
4	/var/empty
4	/var/games
4	/var/heimdal
1157644	/var/log
146656	/var/mail
8	/var/msgs
88	/var/named
4	/var/preserve
104	/var/run
4	/var/rwho
3432	/var/spool
4072	/var/tmp
28	/var/yp
1900	/var/qmail
2772500	/var
То же по показателям без особых отклонений.
Однако, DF моск сносит напрочь:

Код: Выделить всё

[15:52 root@WebSrv2 /usr/home/pattern]# df
Filesystem 1K-blocks    Used   Avail Capacity  Mounted on
/dev/ada0a   5061628  732560 3924140    16%    /
devfs              1       1       0   100%    /dev
/dev/ada0d  10143484 6963680 2368328    75%    /var
/dev/ada0e  15225340 6255848 7751468    45%    /usr
/dev/ada0f   5061628   39892 4616808     1%    /tmp
/dev/ada0g  16233660 6948484 7986484    47%    /usr/home
:-o Как так то? Предыдущий показатель говорит, что на диске занято чуть более 2,5ГБ, когда DF сообщает, что фактически используется чуть меньше 7ГБ???
При этом

Код: Выделить всё

[15:52 root@WebSrv2 /usr/home/pattern]# ps axw -o pid,ppid,user,%cpu,%mem,rss,vsz,wchan,command | egrep "(php|PID)"
  PID  PPID USER     %CPU %MEM    RSS    VSZ WCHAN    COMMAND
23263     1 root      0.0  0.5  20104 258812 kqread   php-fpm: master process (/usr/local/etc/php-fpm.conf) (php-fpm)
43344 23263 gamai     0.8  1.7  71016 274584 accept   php-fpm: pool portal (php-fpm)
43345 23263 gamai     0.9  1.6  68524 278680 accept   php-fpm: pool portal (php-fpm)
43346 23263 gamai     3.3  1.7  69432 274712 accept   php-fpm: pool portal (php-fpm)
43347 23263 gamai     1.1  1.6  64708 274584 accept   php-fpm: pool portal (php-fpm)
43348 23263 gamai     0.0  1.6  65624 274584 accept   php-fpm: pool portal (php-fpm)
43349 23263 gamai     0.0  1.7  70000 274712 accept   php-fpm: pool portal (php-fpm)
43350 23263 gamai     1.0  1.6  66732 274584 accept   php-fpm: pool portal (php-fpm)
43354 23263 gamai     1.5  1.5  63932 270616 accept   php-fpm: pool portal (php-fpm)
43355 23263 gamai     1.8  1.5  62856 270488 accept   php-fpm: pool portal (php-fpm)
43356 23263 gamai     0.3  1.5  62012 270488 accept   php-fpm: pool portal (php-fpm)
43359 23263 gamai     0.0  1.4  60364 270616 accept   php-fpm: pool portal (php-fpm)
43360 23263 gamai     0.0  1.4  58512 274584 accept   php-fpm: pool portal (php-fpm)
43361 23263 gamai     0.0  1.5  60656 278680 accept   php-fpm: pool portal (php-fpm)
43362 23263 gamai     1.6  1.4  59820 266392 accept   php-fpm: pool portal (php-fpm)
43363 23263 gamai     0.0  1.4  58444 274584 accept   php-fpm: pool portal (php-fpm)
43364 23263 gamai     0.1  1.4  59300 274584 accept   php-fpm: pool portal (php-fpm)
43365 23263 gamai     1.9  1.5  63240 274584 accept   php-fpm: pool portal (php-fpm)
43366 23263 gamai     0.0  1.3  53820 274584 accept   php-fpm: pool portal (php-fpm)
43367 23263 gamai     0.0  1.6  65264 274584 accept   php-fpm: pool portal (php-fpm)
43368 23263 gamai     0.0  1.5  62900 278680 accept   php-fpm: pool portal (php-fpm)
43369 23263 gamai     1.4  1.5  61564 278680 accept   php-fpm: pool portal (php-fpm)
43370 23263 gamai     1.9  1.5  63280 274584 accept   php-fpm: pool portal (php-fpm)
43371 23263 gamai     1.2  1.4  59188 270488 accept   php-fpm: pool portal (php-fpm)
43372 23263 gamai     2.9  1.6  67488 270488 accept   php-fpm: pool portal (php-fpm)
43373 23263 gamai     0.0  1.5  62560 270488 accept   php-fpm: pool portal (php-fpm)
43374 23263 gamai     0.1  1.4  58476 274584 accept   php-fpm: pool portal (php-fpm)
43375 23263 gamai     0.0  1.4  56996 270488 accept   php-fpm: pool portal (php-fpm)
43376 23263 gamai     0.4  1.4  60312 270488 accept   php-fpm: pool portal (php-fpm)
43377 23263 gamai     0.0  1.5  61060 270488 accept   php-fpm: pool portal (php-fpm)
43378 23263 gamai     0.0  1.5  62088 274584 accept   php-fpm: pool portal (php-fpm)
43379 23263 gamai     0.0  1.4  58444 270488 accept   php-fpm: pool portal (php-fpm)
43380 23263 gamai     0.8  1.5  61460 274584 accept   php-fpm: pool portal (php-fpm)
43381 23263 gamai     0.0  1.4  59712 270488 accept   php-fpm: pool portal (php-fpm)
43382 23263 gamai     0.0  1.5  61524 278680 accept   php-fpm: pool portal (php-fpm)
43383 23263 gamai     0.0  1.5  60708 274584 accept   php-fpm: pool portal (php-fpm)
43384 23263 gamai     0.0  1.1  47664 274584 accept   php-fpm: pool portal (php-fpm)
43385 23263 gamai     0.9  1.4  59744 274584 accept   php-fpm: pool portal (php-fpm)
43386 23263 gamai     0.0  1.5  60724 274584 accept   php-fpm: pool portal (php-fpm)
43387 23263 gamai     0.1  1.3  54460 270488 accept   php-fpm: pool portal (php-fpm)
43388 23263 gamai     0.0  1.3  53044 270488 accept   php-fpm: pool portal (php-fpm)
43389 23263 gamai     0.0  1.3  55352 274584 accept   php-fpm: pool portal (php-fpm)
43390 23263 gamai     0.7  1.4  60416 270488 accept   php-fpm: pool portal (php-fpm)
43391 23263 gamai     0.0  1.2  51216 266392 accept   php-fpm: pool portal (php-fpm)
43392 23263 gamai     0.0  1.2  48936 270488 accept   php-fpm: pool portal (php-fpm)
43393 23263 gamai     0.0  1.3  55664 270488 accept   php-fpm: pool portal (php-fpm)
43394 23263 gamai     1.6  1.3  52400 270488 accept   php-fpm: pool portal (php-fpm)
43409 43403 root      0.0  0.0    348   4596 vnread   egrep (php|PID)
Может мне кто нить подсказать, что вообще происходит с /var разделом?
И да. Наверное сам по себе напрашивается вопрос "А с чего ты решил, что это именно php-fpm?"

Код: Выделить всё

[16:25 root@WebSrv2 /usr/home/pattern]# df
Filesystem 1K-blocks    Used   Avail Capacity  Mounted on
/dev/ada0a   5061628  732560 3924140    16%    /
devfs              1       1       0   100%    /dev
/dev/ada0d  10143484 7108368 2223640    76%    /var
/dev/ada0e  15225340 6255848 7751468    45%    /usr
/dev/ada0f   5061628   36916 4619784     1%    /tmp
/dev/ada0g  16233660 6980484 7954484    47%    /usr/home
[16:25 root@WebSrv2 /usr/home/pattern]# /usr/local/etc/rc.d/php-fpm restart
Stopping php_fpm.
Waiting for PIDS: 23263.
Starting php_fpm.
[16:25 root@WebSrv2 /usr/home/pattern]# df
Filesystem 1K-blocks    Used   Avail Capacity  Mounted on
/dev/ada0a   5061628  732560 3924140    16%    /
devfs              1       1       0   100%    /dev
/dev/ada0d  10143484 2866368 6465640    31%    /var
/dev/ada0e  15225340 6255848 7751468    45%    /usr
/dev/ada0f   5061628   36576 4620124     1%    /tmp
/dev/ada0g  16233660 6980804 7954164    47%    /usr/home
[16:25 root@WebSrv2 /usr/home/pattern]# du -d 1 /var
4	/var/.snap
4	/var/account
12	/var/at
4	/var/audit
2652	/var/backups
4	/var/cache
8	/var/crash
12	/var/cron
1443652	/var/db
4	/var/empty
4	/var/games
4	/var/heimdal
1221344	/var/log
146656	/var/mail
8	/var/msgs
88	/var/named
4	/var/preserve
104	/var/run
4	/var/rwho
3432	/var/spool
4072	/var/tmp
28	/var/yp
1900	/var/qmail
2856808	/var
Как то так... :(
Спасибо всем отозвавшимся.
Последний раз редактировалось f_andrey 2013-06-13 15:42:53, всего редактировалось 1 раз.
Причина: Автору. пожалуйста, выбирайте соответствующий раздел форума.
Your bunny wrote: its not a bug, this is a feature, actually... ;)

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: PHP-FPM на FreeBSD

Непрочитанное сообщение FreeBSP » 2013-06-13 15:56:51

Код: Выделить всё

man du
The du utility displays the file system block usage for each file argu-
     ment and for each directory in the file hierarchy rooted in each direc-
     tory argument.
 -h      "Human-readable" output.  Use unit suffixes: Byte, Kilobyte,
             Megabyte, Gigabyte, Terabyte and Petabyte.


man df
The df utility displays statistics about the amount of free disk space on
     the specified file system or on the file system of which file is a part.
     Values are displayed in 512-byte per block counts.
 -h      ``Human-readable'' output.  Use unit suffixes: Byte, Kilobyte,
             Megabyte, Gigabyte, Terabyte and Petabyte in order to reduce the
             number of digits to four or fewer using base 2 for sizes.  Inodes
             statistics, if enabled with -i, are always printed in base 10.
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

Аватара пользователя
Pattern
сержант
Сообщения: 180
Зарегистрирован: 2007-08-30 23:45:54
Откуда: Санкт-Петербург
Контактная информация:

Re: PHP-FPM на FreeBSD

Непрочитанное сообщение Pattern » 2013-06-13 16:05:06

Метод отображения меня меньше всего интересует. Тут без всяких "human" отображений понятно, что ресурсы не понятно куда расходуются.
ДО рестарта php:

Код: Выделить всё

/dev/ada0d  10143484 7108368 2223640    76%    /var
И ПОСЛЕ рестарта php:

Код: Выделить всё

/dev/ada0d  10143484 2866368 6465640    31%    /var
При этом du в обоих случаях практически одинаковый (за исключением небольших изменений в db и log, как и положено)
Однако, если это напрягает, в следующий раз скину с ключом h.
Your bunny wrote: its not a bug, this is a feature, actually... ;)

Аватара пользователя
bagas
лейтенант
Сообщения: 922
Зарегистрирован: 2010-08-18 19:49:01
Откуда: Воронеж
Контактная информация:

Re: PHP-FPM на FreeBSD

Непрочитанное сообщение bagas » 2013-06-13 16:19:51

хмм, а php-fpm используется как сокет или ип?
пока конфиг php-fpm
Что бы ты не делал , жизнь слишком коротка!
Блог о BSD системах.

Аватара пользователя
Pattern
сержант
Сообщения: 180
Зарегистрирован: 2007-08-30 23:45:54
Откуда: Санкт-Петербург
Контактная информация:

Re: PHP-FPM на FreeBSD

Непрочитанное сообщение Pattern » 2013-06-13 16:49:57

PHP-FPM используется как сокет, при чем для каждого пула создается свой (крутится несколько веб-обвязок).
Общий конф (/usr/local/etc/php-fpm.conf)

Код: Выделить всё

;;;;;;;;;;;;;;;;;;;;;
; FPM Configuration ;
;;;;;;;;;;;;;;;;;;;;;

; All relative paths in this configuration file are relative to PHP's install
; prefix (/usr/local). This prefix can be dynamicaly changed by using the
; '-p' argument from the command line.

; Include one or more files. If glob(3) exists, it is used to include a bunch of
; files from a glob(3) pattern. This directive can be used everywhere in the
; file.
; Relative path can also be used. They will be prefixed by:
;  - the global prefix if it's been set (-p arguement)
;  - /usr/local otherwise
;include=etc/fpm.d/*.conf

;;;;;;;;;;;;;;;;;;
; Global Options ;
;;;;;;;;;;;;;;;;;;

[global]
; Pid file
; Note: the default prefix is /var
; Default Value: none
pid = /var/run/php-fpm.pid

; Error log file
; If it's set to "syslog", log is sent to syslogd instead of being written
; in a local file.
; Note: the default prefix is /var
; Default Value: log/php-fpm.log
error_log = /var/log/php-fpm/main.log

; syslog_facility is used to specify what type of program is logging the
; message. This lets syslogd specify that messages from different facilities
; will be handled differently.
; See syslog(3) for possible values (ex daemon equiv LOG_DAEMON)
; Default Value: daemon
;syslog.facility = daemon

; syslog_ident is prepended to every message. If you have multiple FPM
; instances running on the same server, you can change the default value
; which must suit common needs.
; Default Value: php-fpm
;syslog.ident = php-fpm

; Log level
; Possible Values: alert, error, warning, notice, debug
; Default Value: notice
;log_level = notice
log_level = warning

; If this number of child processes exit with SIGSEGV or SIGBUS within the time
; interval set by emergency_restart_interval then FPM will restart. A value
; of '0' means 'Off'.
; Default Value: 0
;emergency_restart_threshold = 0

; Interval of time used by emergency_restart_interval to determine when 
; a graceful restart will be initiated.  This can be useful to work around
; accidental corruptions in an accelerator's shared memory.
; Available Units: s(econds), m(inutes), h(ours), or d(ays)
; Default Unit: seconds
; Default Value: 0
;emergency_restart_interval = 24h

; Time limit for child processes to wait for a reaction on signals from master.
; Available units: s(econds), m(inutes), h(ours), or d(ays)
; Default Unit: seconds
; Default Value: 0
;process_control_timeout = 5s

; The maximum number of processes FPM will fork. This has been design to control
; the global number of processes when using dynamic PM within a lot of pools.
; Use it with caution.
; Note: A value of 0 indicates no limit
; Default Value: 0
; process.max = 128

; Specify the nice(2) priority to apply to the master process (only if set)
; The value can vary from -19 (highest priority) to 20 (lower priority)
; Note: - It will only work if the FPM master process is launched as root
;       - The pool process will inherit the master process priority
;         unless it specified otherwise
; Default Value: no set
; process.priority = -19

; Send FPM to background. Set to 'no' to keep FPM in foreground for debugging.
; Default Value: yes
;daemonize = yes
 
; Set open file descriptor rlimit for the master process.
; Default Value: system defined value
;rlimit_files = 1024
 
; Set max core size rlimit for the master process.
; Possible Values: 'unlimited' or an integer greater or equal to 0
; Default Value: system defined value
;rlimit_core = 0

; Specify the event mechanism FPM will use. The following is available:
; - select     (any POSIX os)
; - poll       (any POSIX os)
; - epoll      (linux >= 2.5.44)
; - kqueue     (FreeBSD >= 4.1, OpenBSD >= 2.9, NetBSD >= 2.0)
; - /dev/poll  (Solaris >= 7)
; - port       (Solaris >= 10)
; Default Value: not set (auto detection)
events.mechanism = kqueue

;;;;;;;;;;;;;;;;;;;;
; Pool Definitions ; 
;;;;;;;;;;;;;;;;;;;;

; Multiple pools of child processes may be started with different listening
; ports and different management options.  The name of the pool will be
; used in logs and stats. There is no limitation on the number of pools which
; FPM can handle. Your system will tell you anyway :)
include=/usr/local/etc/php-fpm/pool.d/*.conf
Всего создано 4 пула:

Код: Выделить всё

[17:38 root@WebSrv2 /usr/home/pattern]# ll /usr/local/etc/php-fpm/pool.d/*.conf
-rw-r--r--  1 root  wheel  708 Jun 10 21:19 /usr/local/etc/php-fpm/pool.d/forum.portal.conf
-rw-r--r--  1 root  wheel  715 Jun 10 21:18 /usr/local/etc/php-fpm/pool.d/gamai.conf
-rw-r--r--  1 root  wheel  707 Jun 10 21:18 /usr/local/etc/php-fpm/pool.d/lportal.conf
-rw-r--r--  1 root  wheel  695 Jun 10 21:19 /usr/local/etc/php-fpm/pool.d/www.conf
Все они по своему содержимому практически одинаковые, за исключением пользователя и группы.
Один из них (/usr/local/etc/php-fpm/pool.d/gamai.conf)

Код: Выделить всё

[portal]
user = gamai
group = gamai

listen = /tmp/php5-fpm-$pool.sock
listen.allowed_clients = 127.0.0.1
listen.backlog = -1

access.log = /var/log/php-fpm/$pool.access.log
access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"
slowlog = /var/log/php-fpm/$pool.slow.log
request_slowlog_timeout = 5s
request_terminate_timeout = 120s

pm = ondemand
pm.max_children = 50
pm.process_idle_timeout = 10s;

env[HOSTNAME] = gamai.ru
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
Вроде ничего не забыл указать.
Your bunny wrote: its not a bug, this is a feature, actually... ;)

Аватара пользователя
bagas
лейтенант
Сообщения: 922
Зарегистрирован: 2010-08-18 19:49:01
Откуда: Воронеж
Контактная информация:

Re: PHP-FPM на FreeBSD

Непрочитанное сообщение bagas » 2013-06-13 21:19:02

А если использовать ип, возможно у вас куча сокетов создаеться,
Ты же указал pm = ondemand, а это для каждодого запросо свой сокет ( помоему так ), можно конечно уменьшить жизнь этих процесов.
Возможно я ошибаюсь.
Что бы ты не делал , жизнь слишком коротка!
Блог о BSD системах.

Аватара пользователя
Pattern
сержант
Сообщения: 180
Зарегистрирован: 2007-08-30 23:45:54
Откуда: Санкт-Петербург
Контактная информация:

Re: PHP-FPM на FreeBSD

Непрочитанное сообщение Pattern » 2013-06-13 21:34:31

Мысль не лишена смысла, попробую сейчас переключить всё на подключение через IP:Port и посмотреть на результат.
Что касательно ondemand, на сколько я понял по манам, то данная опция динамически создаёт и убивает дочерние процессы по мере необходимости. То есть ручная "тонкая" настройка FPM не требуется, система сама определить сколько чего требуется. С этим учетом и был выбран именно ondemand, ибо сколько бы я не крутил "ручные настройки" FPM, в критические моменты (когда народу приваливает на сайт) я так и не смог выставить оптимальные настройки, чтобы система не отказывала в запросах.
Однако вопрос остаётся открытым: почему df показывает переполнение раздела, при этом du никаких отклонений не показывает?
Your bunny wrote: its not a bug, this is a feature, actually... ;)

Аватара пользователя
bagas
лейтенант
Сообщения: 922
Зарегистрирован: 2010-08-18 19:49:01
Откуда: Воронеж
Контактная информация:

Re: PHP-FPM на FreeBSD

Непрочитанное сообщение bagas » 2013-06-14 8:11:45

Да,интересно.
Если разберешься, обязательно отпишись в теме.
Еще сейчас заметил что сокеты у тебя создается в /tmp/
А покажи ls -al /var/
Если подумать, после ребута место освобождается, то это наводит на мысль, либо пид файлы либо сокеты.
Что бы ты не делал , жизнь слишком коротка!
Блог о BSD системах.

Аватара пользователя
Pattern
сержант
Сообщения: 180
Зарегистрирован: 2007-08-30 23:45:54
Откуда: Санкт-Петербург
Контактная информация:

Re: PHP-FPM на FreeBSD

Непрочитанное сообщение Pattern » 2013-06-14 9:12:16

В том-то вся и загвоздка, что у меня нигде ни явным, ни косвенным образом нет ссылок на /var раздел. Файлы web-a спокойно себе лежат в хомяке пользователя, который исторически является симлинкой на /usr/home, все временные файлы сваливаю в /tmp.
/var используется:
- для логирования (/var/log/php-fpm/*.log);
- для размещения pid-а (/var/run/php-fpm.pid), его размер не превышает 7 байт (обычно 5 байт).

Код: Выделить всё

[9:56 root@WebSrv2 /usr/home/pattern]# ll /var/run/php-fpm.pid 
-rw-r--r--  1 root  wheel  5 Jun 13 23:18 /var/run/php-fpm.pid
Кста, после перевода от сокетов в IP:Port, вчера после ротации логов заметил, что уже есть несоответствие между du и df, но не успел снять статы. Так что по ходу, это не помогло, сегодня ночью скажу точно на сколько изменилась (или не изменилась) ситуация.
А покажи ls -al /var/

Код: Выделить всё

[9:46 root@WebSrv2 /usr/home/pattern]# ls -la /var
total 32900
drwxr-xr-x  25 root    wheel         1024 May 27 15:29 .
drwxr-xr-x  19 root    wheel         1024 Apr 17 11:58 ..
drwxrwxr-x   2 root    operator       512 Sep 23  2012 .snap
-r--------   1 root    wheel     33554432 Sep 23  2012 .sujournal
drwxr-xr-x   2 root    wheel          512 Aug 14  2012 account
drwxr-xr-x   4 root    wheel          512 Aug 14  2012 at
drwxr-x---   2 root    audit          512 Aug 14  2012 audit
drwxr-x---   2 root    wheel          512 Jun 14 03:01 backups
drwxr-x---   2 root    wheel          512 Aug 14  2012 cache
drwxr-x---   2 root    wheel          512 Aug 14  2012 crash
drwxr-x---   3 root    wheel          512 Aug 14  2012 cron
drwxr-xr-x  16 root    wheel         1024 Apr 24 02:10 db
dr-xr-xr-x   2 root    wheel          512 Aug 14  2012 empty
drwxrwxr-x   2 root    games          512 Aug 14  2012 games
drwx------   2 root    wheel          512 Aug 14  2012 heimdal
drwxr-xr-x   7 root    wheel         1536 Jun 14 03:01 log
drwxrwxr-x   3 root    mail           512 Jun  3 22:28 mail
drwxr-xr-x   2 daemon  wheel          512 Sep 23  2012 msgs
drwxr-xr-x   5 root    wheel          512 Aug 14  2012 named
drwxr-xr-x   2 root    wheel          512 Aug 14  2012 preserve
drwxr-xr-x  12 root    qmail          512 Apr 24 01:15 qmail
drwxr-xr-x   9 root    wheel          512 Jun 13 23:18 run
drwxrwxr-x   2 root    daemon         512 Aug 14  2012 rwho
drwxr-xr-x  10 root    wheel          512 Oct 22  2012 spool
drwxrwxrwt   4 root    wheel          512 Apr 24 01:55 tmp
drwxr-xr-x   2 root    wheel          512 Sep 23  2012 yp
Если разберешься, обязательно отпишись в теме.
Обязательно отпишусь, и разобраться с этим мне просто жизнено важно. Но ответа пока я не вижу... :(
Если подумать, после ребута место освобождается, то это наводит на мысль, либо пид файлы либо сокеты.
Согласен. Однако, полагаясь на здравый смысл, между du и df разницы быть просто напросто не должно быть. И если это размножаются какие либо файлы, они должны быть видны явным образом. Но их нет. :st:
ЗЫЖ Сейчас проверил снова du и df

Код: Выделить всё

[10:04 root@WebSrv2 /usr/home/pattern]# du -h -d 1 /var
4.0k	/var/.snap
4.0k	/var/account
 12k	/var/at
4.0k	/var/audit
2.6M	/var/backups
4.0k	/var/cache
8.0k	/var/crash
 12k	/var/cron
903M	/var/db
4.0k	/var/empty
4.0k	/var/games
4.0k	/var/heimdal
476M	/var/log
143M	/var/mail
8.0k	/var/msgs
 88k	/var/named
4.0k	/var/preserve
104k	/var/run
4.0k	/var/rwho
3.3M	/var/spool
  4M	/var/tmp
 28k	/var/yp
1.9M	/var/qmail
1.5G	/var
[10:12 root@WebSrv2 /usr/home/pattern]# df -h
Filesystem    Size    Used   Avail Capacity  Mounted on
/dev/ada0a    4.8G    715M    3.8G    16%    /
devfs         1.0k    1.0k      0B   100%    /dev
/dev/ada0d    9.7G    2.4G    6.5G    27%    /var
/dev/ada0e     14G      6G    7.4G    45%    /usr
/dev/ada0f    4.8G     35M    4.4G     1%    /tmp
/dev/ada0g     15G    7.2G    7.1G    50%    /usr/home
Your bunny wrote: its not a bug, this is a feature, actually... ;)

Аватара пользователя
bagas
лейтенант
Сообщения: 922
Зарегистрирован: 2010-08-18 19:49:01
Откуда: Воронеж
Контактная информация:

Re: PHP-FPM на FreeBSD

Непрочитанное сообщение bagas » 2013-06-14 9:46:25

Что бы ты не делал , жизнь слишком коротка!
Блог о BSD системах.

Аватара пользователя
Pattern
сержант
Сообщения: 180
Зарегистрирован: 2007-08-30 23:45:54
Откуда: Санкт-Петербург
Контактная информация:

Re: PHP-FPM на FreeBSD

Непрочитанное сообщение Pattern » 2013-06-14 10:28:02

Информация, безусловно, интересная, но тем не менее не дала ответа на мой вопрос. Ещё раз сейчас прошёлся по дереву директорий через du | more, результат не изменился. Нет такого файла, который бы показал что он избыточного размера.
Что касательно newsyslog, я вообще не понял, каким образом он влияет на изменение раздела. Без сомнений, если бы я не использовал ротацию логов, у меня бы разделы уже давно бы полопались от переполнения. Но это касательно логов, а вот "то", что съедает пространство - так и не обнаружено.
Однако, может я как то не правильно заполнил конфиг newsyslog для php-fpm?

Код: Выделить всё

[11:07 root@WebSrv2 /var/run]# cat /etc/newsyslog.conf
# configuration file for newsyslog
# $FreeBSD: src/etc/newsyslog.conf,v 1.54.2.2.2.1 2012/08/05 23:54:33 kensmith Exp $
#
# Entries which do not specify the '/pid_file' field will cause the
# syslogd process to be signalled when that log file is rotated.  This
# action is only appropriate for log files which are written to by the
# syslogd process (ie, files listed in /etc/syslog.conf).  If there
# is no process which needs to be signalled when a given log file is
# rotated, then the entry for that file should include the 'N' flag.
#
# The 'flags' field is one or more of the letters: BCDGJNUXZ or a '-'.
#
# Note: some sites will want to select more restrictive protections than the
# defaults.  In particular, it may be desirable to switch many of the 644
# entries to 640 or 600.  For example, some sites will consider the
# contents of maillog, messages, and lpd-errs to be confidential.  In the
# future, these defaults may change to more conservative ones.
#
# logfilename          [owner:group]    mode count size when  flags [/pid_file] [sig_num]
/var/log/all.log			600  7	   *	@T00  J
/var/log/amd.log			644  7	   100	*     J
/var/log/auth.log			600  7     100  @0101T JC
/var/log/console.log			600  5	   100	*     J
/var/log/cron				600  3	   100	*     JC
/var/log/daily.log			640  7	   *	@T00  JN
/var/log/debug.log			600  7     100  *     JC
/var/log/kerberos.log			600  7	   100	*     J
/var/log/lpd-errs			644  7	   100	*     JC
/var/log/maillog			640  7	   *	@T00  JC
/var/log/messages			644  5	   100	@0101T JC
/var/log/monthly.log			640  12	   *	$M1D0 JN
/var/log/pflog				600  3	   100	*     JB    /var/run/pflogd.pid
/var/log/ppp.log	root:network	640  3	   100	*     JC
/var/log/security			600  10	   100	*     JC
/var/log/sendmail.st			640  10	   *	168   B
/var/log/utx.log			644  3	   *	@01T05 B
/var/log/weekly.log			640  5	   1	$W6D0 JN
/var/log/xferlog			600  3	   *	@T00  JC
/var/log/php-fpm/*.log			640  3     *    @T00  GJ
/var/log/nginx/*.log			640  3     *    @T00  GJ  /var/run/nginx.pid
/var/log/exim/*.log	mailnull:mail	640  3     *    @T00  GJ
/var/db/mysql/*.log	mysql:mysql	640  3     *    @T00  GJ  /var/db/mysql/WebSrv2.pid
Сразу оговорюсь, что если я указываю для /var/log/php-fpm/*.log пид процесса (/var/run/php-fpm.pid), то есть вместо записи

Код: Выделить всё

/var/log/php-fpm/*.log			640  3     *    @T00  GJ
записываю так

Код: Выделить всё

/var/log/php-fpm/*.log			640  3     *    @T00  GJ /var/run/php-fpm.pid
то после обновления в логи ничего не пишется. Без этой записи всё проходит успешно.
Your bunny wrote: its not a bug, this is a feature, actually... ;)

PYO
сержант
Сообщения: 185
Зарегистрирован: 2011-08-18 12:46:45

Re: PHP-FPM на FreeBSD

Непрочитанное сообщение PYO » 2013-06-14 10:33:07

Ему сигнал нужно слать 30:

Код: Выделить всё

/var/log/nginx/*.log         640  3     *    @T00  GJ  /var/run/nginx.pid    30
/var/log/php-fpm/*.log         640  3     *    @T00  GJ /var/run/php-fpm.pid     30

Аватара пользователя
Pattern
сержант
Сообщения: 180
Зарегистрирован: 2007-08-30 23:45:54
Откуда: Санкт-Петербург
Контактная информация:

Re: PHP-FPM на FreeBSD

Непрочитанное сообщение Pattern » 2013-06-14 10:37:58

Спасибо за подсказку, сейчас изменю. Посмотрим на результаты.
Прошу конечно прощения за нубство, а что даёт этот сигнал? Или ткните меня носом, где это можно почитать?
Просто не первый год уже настраиваю эту ротацию, с таки мне сталкивался...
Your bunny wrote: its not a bug, this is a feature, actually... ;)

PYO
сержант
Сообщения: 185
Зарегистрирован: 2011-08-18 12:46:45

Re: PHP-FPM на FreeBSD

Непрочитанное сообщение PYO » 2013-06-14 10:53:58

RTFM по nginx и php-fpm. Сигнал для переоткрытия логов.

Аватара пользователя
Pattern
сержант
Сообщения: 180
Зарегистрирован: 2007-08-30 23:45:54
Откуда: Санкт-Петербург
Контактная информация:

Re: PHP-FPM на FreeBSD

Непрочитанное сообщение Pattern » 2013-06-14 11:13:30

RTFM по nginx и php-fpm. Сигнал для переоткрытия логов.
Спасибо. Занырну сейчас в маны, посмотрю, что я упустил....

Переваривая в голове то, что написано в мане на счет разницы между du и df, решил всё таки обновить поиски такого файла.

Код: Выделить всё

[11:53 root@WebSrv2 /var]# du -h .
...
1.7G	.
[11:53 root@WebSrv2 /var]# df -h 
Filesystem    Size    Used   Avail Capacity  Mounted on
/dev/ada0a    4.8G    715M    3.8G    16%    /
devfs         1.0k    1.0k      0B   100%    /dev
/dev/ada0d    9.7G    2.7G    6.2G    31%    /var
/dev/ada0e     14G      6G    7.4G    45%    /usr
/dev/ada0f    4.8G     35M    4.4G     1%    /tmp
/dev/ada0g     15G    7.2G    7.0G    51%    /usr/home
Разница составляет 1ГБ. Полагаясь на мануал, это либо один файл порядка 1ГБ, либо куча мелких файлов, отжирающих в общем случае 1ГБ.

Код: Выделить всё

[11:53 root@WebSrv2 /var]# ps ax | grep -c php
23
Тем не менее, процессов поднято только 23 штуки. Попробовал найти нечто подобное

Код: Выделить всё

[11:55 root@WebSrv2 /var]# find . -size +500M
[11:56 root@WebSrv2 /var]# find . -size +400M
[11:57 root@WebSrv2 /var]# find . -size +300M
./log/nginx/access.gamai.log
[11:57 root@WebSrv2 /var]# find . -size +200M
./db/mysql/all_queries.log
./log/nginx/access.gamai.log
[11:57 root@WebSrv2 /var]# find . -size +100M
./db/mysql/all_queries.log
./log/nginx/access.gamai.log
[11:57 root@WebSrv2 /var]# find . -size +50M
./db/mysql/ibdata1
./db/mysql/all_queries.log
./db/clamav/daily.cld
./log/nginx/access.gamai.log
./log/nginx/access.gamai.log.1.bz2
./log/nginx/access.gamai.log.2.bz2
./log/nginx/access.gamai.log.0.bz2
[11:57 root@WebSrv2 /var]# find . -size +4M
./db/pkg/pkgdb.db
./db/sup/src-all/checkouts.cvs:RELENG_9_1
./db/sup/ports-all/checkouts.cvs:.
./db/mysql/ibdata1
./db/mysql/ib_logfile0
./db/mysql/ib_logfile1
./db/mysql/***/***.MYI
./db/mysql/***/***.MYI
./db/mysql/***/***.MYD
./db/mysql/***/***.MYI
./db/mysql/***/***.MYD
./db/mysql/***/***.MYD
./db/mysql/***/***.MYI
./db/mysql/***/***.MYI
./db/mysql/***/***.MYD
./db/mysql/***/***.MYD
./db/mysql/***/***.MYI
./db/mysql/***/***.MYD
./db/mysql/all_queries.log
./db/mysql/all_queries.log.1.bz2
./db/mysql/all_queries.log.0.bz2
./db/mysql/all_queries.log.2.bz2
./db/clamav/main.cvd
./db/clamav/daily.cld
./log/nginx/access.gamai.log
./log/nginx/error.gamai.log
./log/nginx/access.gamai.log.1.bz2
./log/nginx/access.gamai.log.2.bz2
./log/nginx/access.gamai.log.0.bz2
./log/php-fpm/portal.access.log.0.bz2
./mail/exim/gamai.ru/robot/dovecot.index.cache
./mail/exim/gamai.ru/forum/dovecot.index.cache
./.sujournal
Как в школьной задачке по математике: нет решений. В моем случае: файл(ы) не найден(ы).

Изменил конфигурацию newsyslog

Код: Выделить всё

[12:02 root@WebSrv2 /var]# cat /etc/newsyslog.conf 
# configuration file for newsyslog
# $FreeBSD: src/etc/newsyslog.conf,v 1.54.2.2.2.1 2012/08/05 23:54:33 kensmith Exp $
#
# Entries which do not specify the '/pid_file' field will cause the
# syslogd process to be signalled when that log file is rotated.  This
# action is only appropriate for log files which are written to by the
# syslogd process (ie, files listed in /etc/syslog.conf).  If there
# is no process which needs to be signalled when a given log file is
# rotated, then the entry for that file should include the 'N' flag.
#
# The 'flags' field is one or more of the letters: BCDGJNUXZ or a '-'.
#
# Note: some sites will want to select more restrictive protections than the
# defaults.  In particular, it may be desirable to switch many of the 644
# entries to 640 or 600.  For example, some sites will consider the
# contents of maillog, messages, and lpd-errs to be confidential.  In the
# future, these defaults may change to more conservative ones.
#
# logfilename          [owner:group]    mode count size when  flags [/pid_file] [sig_num]
/var/log/all.log			600  7	   *	@T00  J
/var/log/amd.log			644  7	   100	*     J
/var/log/auth.log			600  7     100  @0101T JC
/var/log/console.log			600  5	   100	*     J
/var/log/cron				600  3	   100	*     JC
/var/log/daily.log			640  7	   *	@T00  JN
/var/log/debug.log			600  7     100  *     JC
/var/log/kerberos.log			600  7	   100	*     J
/var/log/lpd-errs			644  7	   100	*     JC
/var/log/maillog			640  7	   *	@T00  JC
/var/log/messages			644  5	   100	@0101T JC
/var/log/monthly.log			640  12	   *	$M1D0 JN
/var/log/pflog				600  3	   100	*     JB    /var/run/pflogd.pid
/var/log/ppp.log	root:network	640  3	   100	*     JC
/var/log/security			600  10	   100	*     JC
/var/log/sendmail.st			640  10	   *	168   B
/var/log/utx.log			644  3	   *	@01T05 B
/var/log/weekly.log			640  5	   1	$W6D0 JN
/var/log/xferlog			600  3	   *	@T00  JC
/var/log/php-fpm/*.log			640  3     *    @T00  GJ    /var/run/php-fpm.pid    30
/var/log/nginx/*.log			640  3     *    @T00  GJ    /var/run/nginx.pid      30
#/var/log/exim/*.log	mailnull:mail	640  3     *    @T00  GJ
/var/db/mysql/*.log	mysql:mysql	640  3     *    @T00  GJ    /var/db/mysql/WebSrv2.pid
[12:03 root@WebSrv2 /var]# /etc/rc.d/newsyslog restart
Creating and/or trimming log files.
Ну и для чистоты эксперимента

Код: Выделить всё

[12:04 root@WebSrv2 /var/log/php-fpm]# /usr/local/etc/rc.d/php-fpm restart
Stopping php_fpm.
Waiting for PIDS: 53688.
Starting php_fpm.
[12:05 root@WebSrv2 /var/log/php-fpm]# /usr/local/etc/rc.d/nginx  restart
Performing sanity check on nginx configuration:
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
Stopping nginx.
Waiting for PIDS: 53718.
Performing sanity check on nginx configuration:
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
Starting nginx.
[12:06 root@WebSrv2 /var/log/php-fpm]# du -h -d 1 /var
4.0k	/var/.snap
4.0k	/var/account
 12k	/var/at
4.0k	/var/audit
2.6M	/var/backups
4.0k	/var/cache
8.0k	/var/crash
 12k	/var/cron
  1G	/var/db
4.0k	/var/empty
4.0k	/var/games
4.0k	/var/heimdal
612M	/var/log
143M	/var/mail
8.0k	/var/msgs
 88k	/var/named
4.0k	/var/preserve
104k	/var/run
4.0k	/var/rwho
3.3M	/var/spool
  4M	/var/tmp
 28k	/var/yp
1.9M	/var/qmail
1.8G	/var
[12:06 root@WebSrv2 /var/log/php-fpm]# df -h
Filesystem    Size    Used   Avail Capacity  Mounted on
/dev/ada0a    4.8G    715M    3.8G    16%    /
devfs         1.0k    1.0k      0B   100%    /dev
/dev/ada0d    9.7G    1.8G    7.1G    20%    /var
/dev/ada0e     14G      6G    7.4G    45%    /usr
/dev/ada0f    4.8G     35M    4.4G     1%    /tmp
/dev/ada0g     15G    7.2G    7.0G    51%    /usr/home
Сейчас размеры совпадают. Будем посмотреть на результаты.
Your bunny wrote: its not a bug, this is a feature, actually... ;)

Аватара пользователя
Pattern
сержант
Сообщения: 180
Зарегистрирован: 2007-08-30 23:45:54
Откуда: Санкт-Петербург
Контактная информация:

Re: PHP-FPM на FreeBSD

Непрочитанное сообщение Pattern » 2013-06-15 0:04:57

Спасибо всем отозвавшимся в решении проблемы. Бью челом. По ходу действительно виной проблемы была не верная настройка newsyslog. Правда не получилось у меня актуально снять данные, но по тем данным которые у меня зафиксированы можно понять, что система стабилизировалась.

Код: Выделить всё

[21:17 root@WebSrv2 /usr/home/pattern]# du -h -d 1 /var
4.0k    /var/.snap
4.0k    /var/account
 12k    /var/at
4.0k    /var/audit
2.6M    /var/backups
4.0k    /var/cache
8.0k    /var/crash
 12k    /var/cron
1.5G    /var/db
4.0k    /var/empty
4.0k    /var/games
4.0k    /var/heimdal
2.6G    /var/log
143M    /var/mail
8.0k    /var/msgs
 88k    /var/named
4.0k    /var/preserve
104k    /var/run
4.0k    /var/rwho
3.3M    /var/spool
  4M    /var/tmp
 28k    /var/yp
1.9M    /var/qmail
4.2G    /var
[21:17 root@WebSrv2 /usr/home/pattern]# df -h
Filesystem    Size    Used   Avail Capacity  Mounted on
/dev/ada0a    4.8G    715M    3.8G    16%    /
devfs         1.0k    1.0k      0B   100%    /dev
/dev/ada0d    9.7G    4.3G    4.7G    48%    /var
/dev/ada0e     14G      6G    7.4G    45%    /usr
/dev/ada0f    4.8G     36M    4.4G     1%    /tmp
/dev/ada0g     15G      7G    7.3G    49%    /usr/home
Как видно, не значительная разница, но есть. После ротации логов:

Код: Выделить всё

[0:25 root@WebSrv2 /usr/home/pattern]# du -h -d 1 /var
4.0k    /var/.snap
4.0k    /var/account
 12k    /var/at
4.0k    /var/audit
2.6M    /var/backups
4.0k    /var/cache
8.0k    /var/crash
 12k    /var/cron
720M    /var/db
4.0k    /var/empty
4.0k    /var/games
4.0k    /var/heimdal
351M    /var/log
143M    /var/mail
8.0k    /var/msgs
 88k    /var/named
4.0k    /var/preserve
104k    /var/run
4.0k    /var/rwho
3.3M    /var/spool
  4M    /var/tmp
 28k    /var/yp
1.9M    /var/qmail
1.2G    /var
[0:25 root@WebSrv2 /usr/home/pattern]# df -h
Filesystem    Size    Used   Avail Capacity  Mounted on
/dev/ada0a    4.8G    715M    3.8G    16%    /
devfs         1.0k    1.0k      0B   100%    /dev
/dev/ada0d    9.7G    1.2G    7.7G    14%    /var
/dev/ada0e     14G      6G    7.4G    45%    /usr
/dev/ada0f    4.8G     35M    4.4G     1%    /tmp
/dev/ada0g     15G    7.4G    6.9G    52%    /usr/home
Завязал узелок на память. Сейчас попробую ещё обратно всё перевести на сокеты и посмотреть результат спустя сутки.
Your bunny wrote: its not a bug, this is a feature, actually... ;)

Аватара пользователя
Pattern
сержант
Сообщения: 180
Зарегистрирован: 2007-08-30 23:45:54
Откуда: Санкт-Петербург
Контактная информация:

Re: PHP-FPM на FreeBSD

Непрочитанное сообщение Pattern » 2013-06-16 10:33:43

Да, с сокетами то же всё в порядке. Спасибо всем кто помог разобраться с данной проблемой.
SOLVED.
Your bunny wrote: its not a bug, this is a feature, actually... ;)