Tôi có một đoạn mã PHP, trong khi một thư mục chứa các tệp XML, sẽ xử lý chúng trên cơ sở dữ liệu.
Hiện tại, máy chủ đang chạy phiên bản PHP 5.3.10 và có một báo cáo lỗi về các vấn đề bộ nhớ được kích hoạt ZEND_MM_HEAP
trong vòng lặp.
Điều này khiến PHP không giải phóng bộ nhớ đúng cách, do đó dẫn đến lỗi và sự cố về tập lệnh:
zend_mm_heap is corrupted
Một số giải pháp được tìm thấy, nhưng tôi không có quyền truy cập vào cài đặt máy chủ.
Để giải quyết vấn đề này, tôi đã chuẩn bị tập lệnh bash sau để xử lý vòng lặp, để tập lệnh PHP chỉ chịu trách nhiệm bằng cách xử lý tệp 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
Mục tiêu của tôi bây giờ là giới hạn phân bổ bộ nhớ bash này (bộ nhớ và bộ nhớ ảo), do đó ngăn nó treo hệ thống nếu có sự cố.
Câu hỏi của tôi là:
Làm thế nào tôi có thể giới hạn bộ nhớ được sử dụng bởi tập lệnh shell này ở một mức cụ thể?
export USE_ZEND_ALLOC=0
.