Zuu*_*uul 11 bash ram resource-limiting
我有一个 PHP 脚本,虽然文件夹包含 XML 文件,但会将它们处理到数据库中。
目前,服务器运行的是 PHP 5.3.10 版本,并且有一个关于循环内触发的内存问题的错误报告ZEND_MM_HEAP。
这会导致 PHP 无法正确释放内存,从而导致错误和脚本崩溃:
zend_mm_heap is corrupted
Run Code Online (Sandbox Code Playgroud)
找到了一些解决方案,但我无权访问服务器设置。
为了解决这个问题,我准备了以下 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
Run Code Online (Sandbox Code Playgroud)
我现在的目标是限制这个 bash 内存分配(内存和虚拟内存),从而防止它在出现问题时挂起系统。
我的问题是:
如何将这个 shell 脚本使用的内存限制为特定数量?
Oct*_*ves 13
您可以通过 Bash 脚本限制内存使用,执行以下操作。
按 kb 限制内存使用量(本例中为 2GB):
ulimit -m 2048000
Run Code Online (Sandbox Code Playgroud)
限制虚拟内存使用:
ulimit -v 2048000
Run Code Online (Sandbox Code Playgroud)
将虚拟内存限制设置为硬限制,以便在超过此限制时将杀死进程:
ulimit -H -v
Run Code Online (Sandbox Code Playgroud)
我认为这可以做你想做的。