Уважаемые господа - специалисты, подскажите пожалуйста такую вещь: Есть VPS на VIRTUOZZO с параметрами 512МБ рам, 433MHz, 5ГБ диск. При этом, при практически нулевой загрузке (0.1 - 0.3 за 15 мин.) часто в логах сообщиение: Jul 5 07:28:50 vpsg postfix/smtp[17887]: fatal: socket: Too many open files in system Jul 5 07:29:51 vpsg postfix/tlsmgr[13607]: fatal: accept connection: Too many open files in system Jul 5 07:29:52 vpsg postfix/smtp[18221]: fatal: open active 2F52ABC971A: Too many open files in system Jul 5 07:31:34 vpsg postfix/local[20168]: fatal: open active 3DB11BC971B: Too many open files in system Jul 5 07:31:35 vpsg master[20172]: fatal: master_spawn: exec /usr/lib/postfix/flush: Too many open files in system Jul 5 09:09:18 vpsg postfix/bounce[24423]: fatal: open file defer 4BDBFBC971E: Too many open files in system Jul 5 11:33:35 vpsg master[17468]: fatal: master_spawn: exec /usr/lib/postfix/local: Too many open files in system Jul 6 11:53:45 vpsg postfix/sendmail[7473]: warning: fork: Too many open files in system Jul 6 11:53:55 vpsg postfix/pickup[21759]: warning: open input file maildrop/22618BC971F: cannot open file: Too many open files in system Jul 7 14:01:14 vpsg postfix/cleanup[8001]: warning: mail_queue_enter: create file incoming/996522.8001: Too many open files in system Jul 7 18:40:00 vpsg postfix/pickup[15932]: fatal: scan_dir_push: open directory maildrop: Too many open files in system Jul 7 21:06:36 vpsg postfix/master[28314]: fatal: socket: Too many open files in system v Еще раз обращаю ваше внимание - загрузка никакая, фактически полный простой. vpsg:~# cat /proc/user_beancounters Version: 2.5 uid resource held maxheld barrier limit failcnt 33000: kmemsize 3574356 3793573 5457600 7621440 0 lockedpages 0 0 128 128 0 privvmpages 59299 129733 262144 262144 12 shmpages 666 1002 1152 1152 24 dummy 0 0 0 0 0 numproc 68 85 1024 1024 0 physpages 21974 59970 0 2147483647 0 vmguarpages 0 0 131072 2147483647 0 oomguarpages 21975 59970 131073 2147483647 0 numtcpsock 31 55 512 512 0 numflock 12 17 50 60 0 numpty 1 5 256 256 0 numsiginfo 0 61 256 256 0 tcpsndbuf 356480 530264 1048576 1048576 0 tcprcvbuf 0 316376 1048576 1048576 0 othersockbuf 188404 533976 1048576 1048576 0 dgramrcvbuf 0 17824 1048576 1048576 0 numothersock 123 140 1024 1024 0 dcachesize 383432 405818 1048576 1048576 0 numfile 941 1024 1024 1024 589 dummy 0 0 0 0 0 dummy 0 0 0 0 0 dummy 0 0 0 0 0 numiptent 10 61 1024 1024 0 vpsg:~# Как видно проблема с numfile? Пожалуйста, подскажите что сие значит? Может ли в этом быть виноват хостер (перегрузка физ. машины?) или стоит искать в софте впс?
Postfix по моей памяти открывает дофига сокетов, пайпов и прочего, так что в этом смысле он очень требовательный. Либо тюнить его настройки, либо договариваться с хостером на увеличение каких-либо характеристик. Учитывая, что это не единственный пункт, по которому не хватает ресурсов. ЗЫ, То есть ответ на прямой вопрос - хостер тут не причем.
Спасибо, понял, с постфиксом буду разбираться. Не думал что он реально столько файлов открывает . privvmpages 59299 129733 262144 262144 12 shmpages 666 1002 1152 1152 24 А вот эти ошибки - неужели памяти не хватает? Или это свап? Подскажите, пожалуйста, чем может быть вызвано и какие пути решения. Боюсь что при увеличении нагрузок (сейчас их практически нет) - это ошибки с privvmpages,shmpages вылезут боком
Выяснить "что, чего и как" может помочь только анализ запущенных процессов...
Текущее состояние: vpsg:~# ps auxfwww USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 1524 524 ? Ss Jul07 0:00 ini root 19736 0.0 0.0 1588 644 ? Ss Jul07 0:00 /sbin/syslogd root 19749 0.0 0.0 1528 480 ? Ss Jul07 0:00 /sbin/klogd -x postgrey 19781 0.0 0.3 10264 7944 ? Ss Jul07 0:00 /usr/sbin/postgrey --pidfile=/var/run/postgrey.pid --daemonize --inet=127.0.0.1:60000 --delay=60 root 19793 0.0 0.0 1896 732 ? S Jul07 0:00 /usr/sbin/inetutils-inetd root 19821 0.0 0.0 2592 1308 ? S Jul07 0:00 /bin/sh /usr/bin/mysqld_safe mysql 19887 0.0 1.1 129752 23528 ? Sl Jul07 0:00 \_ /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-locking --port=3306 --socket=/var/run/mysqld/mysqld.sock root 19888 0.0 0.0 1512 508 ? S Jul07 0:00 \_ logger -p daemon.err -t mysqld_safe -i -t mysqld root 20115 0.0 0.0 6084 1536 ? Ss Jul07 0:00 /usr/sbin/saslauthd -m /var/spool/postfix/var/run/saslauthd -r -a pam root 20119 0.0 0.0 6208 1896 ? S Jul07 0:00 \_ /usr/sbin/saslauthd -m /var/spool/postfix/var/run/saslauthd -r -a pam root 20122 0.0 0.0 6084 1536 ? S Jul07 0:00 \_ /usr/sbin/saslauthd -m /var/spool/postfix/var/run/saslauthd -r -a pam root 20126 0.0 0.0 6208 1896 ? S Jul07 0:00 \_ /usr/sbin/saslauthd -m /var/spool/postfix/var/run/saslauthd -r -a pam root 20127 0.0 0.0 6084 1536 ? S Jul07 0:00 \_ /usr/sbin/saslauthd -m /var/spool/postfix/var/run/saslauthd -r -a pam root 20138 0.0 0.0 3588 1504 ? Ss Jul07 0:00 /usr/sbin/sshd root 3941 0.0 0.1 14592 2120 ? Ss 09:34 0:00 \_ sshd: root@pts/0 root 3969 0.0 0.0 2684 1576 pts/0 Ss 09:34 0:00 \_ -bash root 26195 0.0 0.0 2176 868 pts/0 R+ 10:03 0:00 \_ ps auxfwww root 20204 0.0 0.2 8520 5892 ? Ss Jul07 0:00 /usr/bin/perl /usr/share/webmin/miniserv.pl /etc/webmin/miniserv.conf daemon 20220 0.0 0.0 1780 668 ? Ss Jul07 0:00 /usr/sbin/atd root 20230 0.0 0.0 1808 888 ? Ss Jul07 0:00 /usr/sbin/cron root 20341 0.0 0.3 11560 7628 ? Ss Jul07 0:00 /root/ispconfig/httpd/bin/ispconfig_httpd -DSSL 109 20344 0.0 0.3 11560 7636 ? S Jul07 0:00 \_ /root/ispconfig/httpd/bin/ispconfig_httpd -DSSL root 20342 0.0 0.0 2536 1212 ? S Jul07 0:05 /bin/bash /root/ispconfig/sv/ispconfig_wconf root 26193 0.0 0.0 1768 512 ? S 10:03 0:00 \_ sleep 10 root 20471 0.0 0.4 24388 9640 ? Ss Jul07 0:00 /usr/sbin/apache2 -k start -DSSL root 20475 0.0 0.0 1640 432 ? S Jul07 0:00 \_ /root/ispconfig/cronolog --symlink=/var/log/httpd/ispconfig_access_log /var/log/httpd/ispconfig_access_log_%Y_%m_%d www-data 22055 0.0 0.7 29028 15452 ? S 07:33 0:04 \_ /usr/sbin/apache2 -k start -DSSL www-data 11806 0.0 0.6 27852 14232 ? S 08:07 0:02 \_ /usr/sbin/apache2 -k start -DSSL www-data 18134 0.0 0.7 28564 14948 ? S 08:17 0:02 \_ /usr/sbin/apache2 -k start -DSSL www-data 18137 0.0 0.7 29076 15492 ? S 08:17 0:02 \_ /usr/sbin/apache2 -k start -DSSL www-data 18149 0.0 0.7 29264 15652 ? S 08:17 0:03 \_ /usr/sbin/apache2 -k start -DSSL www-data 18301 0.0 0.7 28984 15496 ? S 08:17 0:03 \_ /usr/sbin/apache2 -k start -DSSL www-data 25905 0.0 0.7 28648 15020 ? S 09:18 0:01 \_ /usr/sbin/apache2 -k start -DSSL www-data 25906 0.0 0.6 26996 13332 ? S 09:18 0:01 \_ /usr/sbin/apache2 -k start -DSSL www-data 25909 0.0 0.7 28656 15028 ? S 09:18 0:01 \_ /usr/sbin/apache2 -k start -DSSL www-data 25910 0.0 0.7 28808 15152 ? S 09:18 0:01 \_ /usr/sbin/apache2 -k start -DSSL proftpd 21665 0.0 0.1 8708 3420 ? Ss Jul07 0:00 proftpd: (accepting connections) 109 21675 0.0 0.0 2284 872 ? Ss Jul07 0:00 /home/admispconfig/ispconfig/tools/clamav/bin/freshclam -d -c 10 --datadir=/home/admispconfig/ispconfig/tools/clamav/share/clamav root 20172 0.0 0.0 4744 1636 ? Ss 09:57 0:00 /usr/lib/postfix/master postfix 20186 0.0 0.0 4756 1568 ? S 09:57 0:00 \_ pickup -l -t fifo -u -c postfix 20187 0.0 0.0 4788 1672 ? S 09:57 0:00 \_ qmgr -l -t fifo -u postfix 20209 0.0 0.0 4808 2028 ? S 09:57 0:00 \_ tlsmgr -l -t unix -u -c vpsg:~# vpsg:~# uptime 10:04:25 up 12:34, 1 user, load average: 0.00, 0.00, 0.00 vpsg:~# vpsg:~# cat /proc/user_beancounters Version: 2.5 uid resource held maxheld barrier limit failcnt 33000: kmemsize 2589019 3793573 5457600 7621440 0 lockedpages 0 0 128 128 0 privvmpages 60499 129733 262144 262144 12 shmpages 666 1002 1152 1152 24 dummy 0 0 0 0 0 numproc 50 85 1024 1024 0 physpages 27550 59970 0 2147483647 0 vmguarpages 0 0 131072 2147483647 0 oomguarpages 27867 59970 131073 2147483647 0 numtcpsock 13 55 512 512 0 numflock 9 17 50 60 0 numpty 1 5 256 256 0 numsiginfo 0 61 256 256 0 tcpsndbuf 4456 597104 1048576 1048576 0 tcprcvbuf 0 316376 1048576 1048576 0 othersockbuf 150376 533976 1048576 1048576 0 dgramrcvbuf 0 17824 1048576 1048576 0 numothersock 97 140 1024 1024 0 dcachesize 343826 405818 1048576 1048576 0 numfile 766 1024 2256 2256 589 dummy 0 0 0 0 0 dummy 0 0 0 0 0 dummy 0 0 0 0 0 numiptent 10 61 1024 1024 0 vpsg:~# (Сейчс хостер увеличил numfile с 1024 до 2256.) Пожалуйста, поделитесь личным опытом - какие ограничения numfile вы выставляете для своих клиентов, и сколько (обычно, в среднем, какая по вашему мнению норма) используетя?
Я vps'ы не предоставляю. Только отдельные аккаунты. Но у меня в том vps'е, где запусался postfix+mysql+apache... стоит тоже около 2000 тыс barier на numfiles. В Вашем случае в общем нужно систему настраивать. ( Попробуйте VSZ колонку сложить. Это получится примерно тот обьем памяти, который нужен системе в таком состоянии ) Общие рекомендации стандартны. Отключить все лишнbt сервисы и т.д. Например неужели у вас в системе одновременно используются и cron и atd? Обычно все-таки что-то одно. Тюнинг настроек apache, mysql дожен помочь уменьшить расход памяти. И + postfix и остальное. Обычное системное администрирование
Вставлю свои 5 копеек: обычно на VZVPS как можно больше сервисов стараются сконфигурировать так, чтобы они управлялись супер-демоном inetd/xinetd. Это уменьшает расход памяти, но с другой стороны приводит к увеличению нагрузки на систему ввода-вывода при активном использовании сервиса. Тем не менне подходить к этому вопросу надо без фанатизма, т.к. некоторые демоны не работают через inetd, хотя такая функциональность завлена в документации. Примером такого демона является courier.