linux ram 权限,我如何将Linux二进制文件限制为有限的RAM数量?
我希望能夠限制已安裝的二進制文件只能使用一定數量的RAM.如果它超過它,我不希望它被殺死,只有那將是它可以使用的最大數量.一旦達到一定量的RAM,我希望這個過程能夠死掉,最好是在服務器開始大量交換之前.
我面臨的問題是我正在運行一個帶有PHP的Apache 2.2服務器和一些開發人員為我們編寫的自定義代碼.問題是,在代碼中的某個地方,他們啟動了一個PHP exec調用,啟動ImageMagick的’convert’來創建一個調整大小的圖像文件.
我不了解項目或代碼的大量細節,但需要找到一種解決方案,防止它們殺死服務器,直到找到優化代碼的方法.
我以為我可以用/etc/security/limits.conf和apache用戶設置限制來做這件事,但似乎沒有效果.這是我用過的:
www-data hard as 500
如果我理解正確,這應該將任何apache用戶進程限制到最大500kb,但是,當我運行一個會咀嚼大量內存的測試腳本時,實際上在我殺死之前它已達到1.5GB.以下是設置更改和系統重啟后’ps auxf’的輸出:
USER PID %cpu %MEM VSZ RSS TTY STAT START TIME COMMAND
root 5268 0.0 0.0 401072 10264 ? Ss 15:28 0:00 /usr/sbin/apache2 -k start
www-data 5274 0.0 0.0 402468 9484 ? S 15:28 0:00 \_ /usr/sbin/apache2 -k start
www-data 5285 102 9.4 1633500 1503452 ? Rl 15:29 0:58 | \_ /usr/bin/convert ../tours/28786/.….
www-data 5275 0.0 0.0 401072 5812 ? S 15:28 0:00 \_ /usr/sbin/apache2 -k start
接下來我想我可以用Apache的RlimitMEM設置來做到這一點,但得到的結果并沒有受到限制.這是我在apache.conf文件中的內容:
RLimitMEM 500000 512000
直到很多個小時之后,我才發現,如果這個過程實際上達到了這個數量,它會因OOM錯誤而消亡.
會喜歡任何關于如何設置這個限制的想法,以便其他東西可以在服務器上運行,并且所有這些都可以很好地一起玩.
總結
以上是生活随笔為你收集整理的linux ram 权限,我如何将Linux二进制文件限制为有限的RAM数量?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux内核5.3支持cpu,Linu
- 下一篇: 传奇英雄第几集八路军使用的弩?