2009-06-12 3 views
0

의견을 보내거나 올바른 방향으로 나를 가리킬 수 있다면 감사하겠습니다. 3 개의 django 사이트가 데몬 모드로 실행 중일 때 원격 서버에서 터미널 명령을 실행할 수 없습니다. 하나 또는 두 개의 사이트에서 임베디드 모드를 사용할 때 문제가 없습니다. 명령을 입력 할 때 "bash : fork : 메모리를 할당 할 수 없습니다"라는 메시지 만 표시됩니다.Django, mod-wsgi 및 데몬 모드; 문제 "bash : fork : 메모리를 할당 할 수 없습니다"

시스템 : 가상 클라우드에 우분투 8시 4분 LTS의 원격 없는 SWAP 파일 만 512 RAM (무료, 상단과 PC의 보조가 사용하는 20 %의 메모리를 나타냄), 퍼티와 액세스, WinSCP에와 FTP, UFW 방화벽, 아파치 2.2.8, 사전 포크, 모드 - WSGI 2.3, 지금과 같은 주석 데몬과 SQLite는 DB,

의 .conf 파일을 설정;

하여 NameVirtualHost * : 80

HELME 가득

<VirtualHost *> 
    ServerAdmin [email protected] 
    ServerName wuest.h1.net 
    DocumentRoot /home/wuest/django/wuest/apache/ 
    DirectoryIndex index.html index.htm 

    ServerAlias wuest.h1.net www.wuest.h1.net 

    <Directory /home/wuest/django/wuest/apache/> 
     Options Indexes FollowSymLinks 
     AllowOverride AuthConfig 
     Order allow,deny 
     Allow from all 
    </Directory> 

    ErrorLog /home/wuest/django/wuest/log/error.log 
    LogLevel info 
    CustomLog /home/wuest/django/wuest/log/access.log common 

    WSGIDaemonProcess wuest.h1.net user=www-data group=www-data processes=5 threads=1 
    WSGIProcessGroup wuest.h1.net 


    WSGIScriptAlias//home/wuest/django/wuest/apache/django.wsgi 

    <Directory /home/wuest/django/wuest/apache/> 
     Order allow,deny 
     Allow from all 
    </Directory> 


</VirtualHost> 

어느 메모리 다음

<VirtualHost *> 
    ServerAdmin [email protected] 
    ServerName facts-pte.h1.net 
    DocumentRoot /home/pte/django/facts/apache/ 
    DirectoryIndex index.html index.htm 

    ServerAlias facts-pte.h1.net www.facts-pte.h1.net 

    <Directory /home/pte/django/facts/apache/> 
     Options Indexes FollowSymLinks 
     AllowOverride AuthConfig 
     Order allow,deny 
     Allow from all 

    </Directory> 

    ErrorLog /home/pte/django/facts/log/error.log 
    LogLevel info 
    CustomLog /home/pte/django/facts/log/access.log common 

    #WSGIDaemonProcess facts-pte.h1.net user=www-data group=www-data processes=5 threads=1 
    #WSGIProcessGroup facts-pte.h1.net 


    WSGIScriptAlias//home/pte/django/facts/apache/django.wsgi 

    <Directory /home/pte/django/facts/apache/apache/> 
     Order allow,deny 
     Allow from all 
    </Directory> 

</VirtualHost> 

wuest 다음과 같이

<VirtualHost *> 
    ServerAdmin [email protected] 
    ServerName helme.h1.net 
    DocumentRoot /home/helme/django/facts/apache/ 
    DirectoryIndex index.html index.htm 

    ServerAlias helme.h1.net www.helme.h1.net 

    <Directory /home/helme/django/facts/apache/> 
     Options Indexes FollowSymLinks 
     AllowOverride AuthConfig 
     Order allow,deny 
     Allow from all 

    </Directory> 

    ErrorLog /home/helme/django/facts/log/error.log 
    LogLevel info 
    CustomLog /home/helme/django/facts/log/access.log common 

    #WSGIDaemonProcess helme.h1.net user=www-data group=www-data processes=5 threads=1 
    #WSGIProcessGroup helme.h1.net 


    WSGIScriptAlias//home/helme/django/facts/apache/django.wsgi 

    <Directory /home/helme/django/facts/apache/> 
     Order allow,deny 
     Allow from all 
    </Directory> 


</VirtualHost> 

CHARLY 다음과 같이? Apaceh가 'worker'mpm으로로드 된 경우에도 동일한 문제가 발생합니까? 스왑 파일을 추가하는 것만 큼 간단합니까? postgresql을 설치할 때 더 많은 메모리 문제가 있습니까?

참고 : 저는 장고 프로젝트에서 일하는 freind의 원격 서버를 관리하는 고급 프로그래머 또는 관리자가 아닙니다.

도움을 주시면 감사하겠습니다. 종류의 점 Michael

답변

1

글쎄, 스왑 공간이없는 서버 (스왑은 일반적으로 파일이 아니라 리눅스의 하드 디스크 파티션)를 실행하는 것은 재앙의 방법입니다. 하나를 추가하면 문제가 거의 확실하게 해결됩니다.

기본적으로 사용 가능한 모든 RAM을 할당하기 위해 서버에서 실행 한 적이있는 것이 일반적입니다. 서버를 최대한 빨리 실행하려면 서버가 RAM에서 사용 가능한 작업을 수행하는 데 필요한 정보를 모두 또는 가능한 많이 확보하는 것이 바람직합니다.

가상 메모리의 개념을 설명하기 위해 512MB RAM의 서버는 쉽게 RAM을 소모하지만 운영 체제의 커널에는 일종의 예비가 있어야하므로 할당 할 수있는 메모리가 항상 있어야합니다 , 예를 들어 (귀하의 경우) 새 사용자가 bash과 같은 셸을 시작해야하는 경우에 로그인하십시오.

서버에서 스왑을 사용할 수있는 경우 모든 실제 메모리가 이미 사용 중이더라도 메모리를 할당 할 수 있습니다. 일반적으로 이것은 커널이 접근하지 못하는 정보 중 일부를 RAM에서 스왑으로 이동시켜 새로운 프로세스에 실제로 실제 메모리를 부여하게됩니다.

그러나 커널에 사용 가능한 가상 메모리가 없으면 (RAM이 꽉 차고 스왑이 가득 찼거나 누락 된 경우), 메모리 할당 요청을 거부하는 것 외에 다른 옵션이 없습니다. 그러면 로그인 할 수없는 상황이 발생합니다.

이런 일이 발생하지 않도록하려면 대부분의 경우 4GB를 초과 할 필요는 없지만 실제 메모리의 두 배 (이 경우 1GB)의 스와핑 공간을 만드는 것이 좋습니다.

관련 문제