自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

在 Linux 中限制Python程序所能使用的最大內(nèi)存

開發(fā) 前端
如果程序開發(fā)不當,可能會出現(xiàn)占用過多內(nèi)存的情況。特別是在Docker里面,如果Python程序占用太多內(nèi)存,可能會導致Docker容器死掉。

[[390136]]

如果程序開發(fā)不當,可能會出現(xiàn)占用過多內(nèi)存的情況。特別是在Docker里面,如果Python程序占用太多內(nèi)存,可能會導致Docker容器死掉。

為了限制Python程序所能使用的最大內(nèi)存,我們可以使用Python自帶的resource模塊。

首先獲取系統(tǒng)默認的內(nèi)存soft上限和hard上限:

  1. import resource 
  2. soft, hard = resource.getrlimit(resource.RLIMIT_AS) 

其中的resource.RLIMIT_AS實際上就是數(shù)字5,表示內(nèi)存資源。而soft限制是一個可以調(diào)節(jié)的內(nèi)存使用上限,hard是一個一旦設定就很難動態(tài)調(diào)整的內(nèi)存使用量上限。

在我的電腦上運行效果如下圖所示:

一開始soft和hard的值是一樣的。并且它們的單位不是比特。而是比比特還小的單位。我的電腦是8GB內(nèi)存,而8 * 1024 ^ 6 正好約等于這里的hard和soft的值。

接下來,設置當前運行的這個Python程序能夠使用的最大內(nèi)存:

  1. resource.setrlimit(resource.RLIMIT_AS, (最大上限, hard)) 

其中最大上限是一個整數(shù)。假設我想限制當前程序最多可以使用500MB的內(nèi)存,那么這里的最大上限可以設置為:

  1. 0.5 * 1024 ^ 6 = 576460752303423488 

所以設置為:

  1. resource.setrlimit(resource.RLIMIT_AS, (576460752303423488, hard)) 

那么當前Python程序使用的內(nèi)存超過500MB以后,程序就會拋出MemoryError。

 

最后,這些代碼只能在Linux系統(tǒng)上正常工作。Windows和Mac上可能會有問題。

 

責任編輯:武曉燕 來源: 未聞Code
相關推薦

2021-01-14 22:23:16

Python開發(fā)內(nèi)存

2021-01-15 06:54:54

Python內(nèi)存程序

2010-09-25 09:56:46

JVM最大內(nèi)存

2018-03-16 14:04:45

Linux大內(nèi)存頁虛擬內(nèi)存管理

2021-09-05 06:00:47

電腦內(nèi)存Windows

2020-11-26 10:25:09

FedoraPodmanLinux

2009-09-07 09:20:34

2019-12-16 10:43:38

Linux內(nèi)存消耗進程

2017-02-06 18:42:37

Linuxgdb程序

2009-10-22 13:06:00

Linux磁盤管理

2018-10-08 10:02:52

LinuxWondershape網(wǎng)絡帶寬

2020-06-22 07:58:02

Linux命令時間限制

2018-05-31 11:58:06

Linux進程Early OOM

2017-11-01 13:42:13

LinuxDOSFreeDOS

2017-03-14 18:48:06

Android性能優(yōu)化內(nèi)存優(yōu)化

2024-08-02 14:52:00

2010-03-10 10:40:38

Python插件

2020-02-09 17:23:17

Python數(shù)據(jù)字典

2020-06-17 14:10:01

Python內(nèi)存程序

2010-11-08 10:07:23

SQL Server內(nèi)
點贊
收藏

51CTO技術棧公眾號