Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: pcre_compile() failed: failed to get memory
On Fri, Apr 25, 2008 at 03:35:11PM +0300, Aleksej Novikov wrote:
> Hello Igor,
>
> Friday, April 25, 2008, 2:56:53 PM, you wrote:
>
> > On Fri, Apr 25, 2008 at 02:41:00PM +0300, Aleksej Novikov wrote:
>
> >> Hello ,
> >>
> >> Такая вот ерунда иногда бывает.
> >>
> >> # /etc/init.d/nginx restart
> >> * Checking nginx' configuration ...
> >> 2008/04/25 13:24:21 [emerg] 10995#0: malloc() 16384 bytes failed (12:
> >> Cannot allocate memory)
> >> 2008/04/25 13:24:21 [emerg] 10995#0: pcre_compile() failed: failed to get
> >> memory in "^.+\.(php)$" at "^.+\.(php)$" in /etc/nginx/nginx.conf:276262
> >> 2008/04/25 13:24:21 [emerg] 10995#0: the configuration file
> >> /etc/nginx/nginx.conf test failed
> >> * failed, please correct errors above
> >>
> >>
> >> Конфиг нереально больщой, в нём порядка 30.000 хостов.
>
> > Как выглядит типичный server ?
> server {
> listen xx.xx.xx.xx ;
> error_page 404 /;
> server_name www.aa.bb ww.bb;
>
> location / {
> root /foo/bar;
> index index.html index.phtml index.htm index.php4 index.php3
> index.php index.wml;
> allow all;
> }
>
>
> и <1% дополнительно
>
> location ~* ^.+\.(php)$ {
> root /foo/bar;
> rewrite .* http://aa.bb.cc/php_out.html break;
> }
>
> Bсего 54554 хоста.
> nginx/0.5.26
>
1) вынести root на уровень server.
2) вынести "error_page 404 /" на уровень http и описать явно там, где
нужна другая обработка.
3) вынести "index index.html ..." на уровень http и описать явно там, где
нужна другая обработка.
4) убрать "allow all".
> > Я иногда думаю как-то уменьшить потребление памяти в конфиге, но тут есть
> > два момента.
>
> > 1) Уменьшать имеет смысл для встроенных систем, но не исключено, что новый
> > код займёт больше места, чем сэкномленная память на небольшом конфиге.
>
> > 2) Что касается обычных систем, то не понятно, имеет ли это смысл, если,
> > например, у facebook'а в качестве стандартных серверов (коих порядка 10,000)
> > идут машины с 32G памяти. Я думаю, ещё пару лет и они станут стандартными
> > для всех, как сейчас 2-4G.
>
> Реальлно добавление RAM тупо решит проблему ?
Что показывает limits ?
--
Игорь Сысоев
http://sysoev.ru
|