쉘 스크립트에 메모리 제한을 적용하는 방법은 무엇입니까? 가 ZEND_MM_HEAP있습니다. 이로

폴더에 XML 파일이 포함되어 있지만 데이터베이스에서 파일을 처리하는 PHP 스크립트가 있습니다.

현재 서버에서 PHP 버전 5.3.10을 실행 중이며 루프 내에서 트리거 된 메모리 문제에 대한 버그 보고서ZEND_MM_HEAP있습니다.

이로 인해 PHP가 메모리를 제대로 확보하지 못하여 오류와 스크립트 충돌이 발생합니다.

 zend_mm_heap is corrupted

일부 솔루션 이 있지만 서버 설정에 액세스 할 수 없습니다.

이를 처리하기 위해 루프를 처리하기 위해 다음 bash 스크립트를 준비했습니다. PHP 스크립트는 XML 파일을 처리하는 것만 담당합니다.

#!/bin/bash

# Check for files to process
# If files are present, call
# the PHP script

DIR="/path/to/dir/with/files"
while [ "$(ls -A $DIR)" ]; do
        php /path/to/php/script/myscript.php
done

내 목표는 이제이 bash 메모리 할당 (메모리 및 가상 메모리)을 제한하여 문제가 발생하면 시스템이 중단되는 것을 방지하는 것입니다.

내 질문은 :
이 쉘 스크립트에서 사용하는 메모리를 특정 양으로 제한하는 방법은 무엇입니까?



답변

다음을 수행하여 Bash 스크립트로 메모리 사용량을 제한 할 수 있습니다.

메모리 사용량을 kb (이 예에서는 2GB)로 제한하십시오.

ulimit -m 2048000

가상 메모리 사용 제한 :

ulimit -v 2048000

가상 메모리 제한을 하드 제한으로 설정하면이 제한을 초과 할 때 프로세스가 종료됩니다.

ulimit -H -v

나는 이것이 당신이 원하는 것을 할 수 있다고 생각합니다.


답변