여유 RAM이 60% 이상인데 간단한 PHP 파일을 실행할 수 없습니다.

여유 RAM이 60% 이상인데 간단한 PHP 파일을 실행할 수 없습니다.

.php로컬 환경에서 간단한 파일을 실행하려고 합니다 .
(Ubuntu 15.10 - Intel® Core™ i7-4600U CPU @ 2.10GHz × 4 - 64비트 - 8GB RAM)

스크린샷

따라서 사용 가능한 RAM이 60% 이상인데 왜 항상 다음과 같은 오류가 발생하는지 알 수 없습니다.

Erreur : Allowed memory size of 4244635648 bytes exhausted (tried to allocate 4294967674 bytes).

나는 이 비슷한 문제에 대한 해결책을 따르려고 노력했습니다.링크. 하지만 내 문제가 해결되지 않습니다.

감사해요

답변1

PHP에는 단일 스크립트가 사용할 수 있는 메모리 양을 제한하는 설정이 있습니다. 해당 값을 초과하는 경우 시스템의 총 RAM 용량은 중요하지 않습니다.

콘솔에서 실행 중인 경우 영향을 미치는 파일은 /etc/php5/cli/php.ini일 가능성이 높으며 다음과 같은 줄이 있습니다.

memory_limit = XXXXXXX

제한을 완전히 제거하려면 다음과 같이 변경하십시오.

memory_limit = -1

그러나 다른 사람들이 언급했듯이 스크립트는 이미 4GB 이상의 RAM을 사용하려고 합니다. 어쩌면 당신이 하고 있는 일을 다시 생각해보거나 일종의 끝없는 루프와 같은 원인이 되는 코드에서 버그를 찾아야 할 수도 있습니다. 대부분의 PHP 스크립트, 심지어 CLI 스크립트도 가장 어려운 작업의 경우에도 256MB 미만을 사용해야 합니다. PHP는 2GB 파일을 메모리에 로드하고 변수에서 작업하거나 전체 데이터베이스를 배열로 덤프하도록 설계되지 않았습니다. 나와 함께 일했던 많은 프로그래머들은 그런 종류의 실수를 저지른다. 대신 해당 스토리지를 가장 잘 작동하는 위치에 두십시오. DB에 두고 한 줄씩 작업하거나 파일 시스템에 두고 동일한 작업을 수행하십시오.

그리고 이것이 웹 스크립트이고 CLI에서 실행 중인 것이 아닌 경우 적어도 4GB 이상에서는 memory_limit 설정을 엉망으로 만들고 싶지 않을 것입니다. 여러 클라이언트에 서비스를 제공하는 웹 서버에는 좋지 않은 생각입니다.

관련 정보