第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Python子進(jìn)程。Popen“ OSError:[Errno 12]無(wú)法分配內(nèi)存”

Python子進(jìn)程。Popen“ OSError:[Errno 12]無(wú)法分配內(nèi)存”

溫溫醬 2019-11-26 10:52:22
python腳本使用sched模塊每60秒運(yùn)行一組類函數(shù):# sc is a sched.scheduler instancesc.enter(60, 1, self.doChecks, (sc, False))該腳本使用此處的代碼作為守護(hù)進(jìn)程運(yùn)行。doChecks的一部分調(diào)用的許多類方法使用子過(guò)程模塊來(lái)調(diào)用系統(tǒng)函數(shù),以獲取系統(tǒng)統(tǒng)計(jì)信息:ps = subprocess.Popen(['ps', 'aux'], stdout=subprocess.PIPE).communicate()[0]在整個(gè)腳本崩潰并出現(xiàn)以下錯(cuò)誤之前,它可以正常運(yùn)行一段時(shí)間:File "/home/admin/sd-agent/checks.py", line 436, in getProcessesFile "/usr/lib/python2.4/subprocess.py", line 533, in __init__File "/usr/lib/python2.4/subprocess.py", line 835, in _get_handlesOSError: [Errno 12] Cannot allocate memory腳本崩潰后,服務(wù)器上free -m的輸出為:$ free -m                  total       used       free     shared     buffers    cachedMem:                894        345        549          0          0          0-/+ buffers/cache:  345        549Swap:                 0          0          0服務(wù)器正在運(yùn)行CentOS 5.3。我無(wú)法在自己的CentOS盒子上或任何其他報(bào)告相同問(wèn)題的用戶上進(jìn)行復(fù)制。我已經(jīng)嘗試了許多方法來(lái)調(diào)試此問(wèn)題,如原始問(wèn)題中所建議的那樣:在Popen調(diào)用之前和之后記錄free -m的輸出。內(nèi)存使用沒(méi)有顯著變化,即,隨著腳本運(yùn)行,內(nèi)存不會(huì)逐漸耗盡。我在Popen調(diào)用中添加了close_fds = True,但這沒(méi)有什么不同-腳本仍然因相同的錯(cuò)誤而崩潰。建議在這里和這里。我檢查了這所建議雙方RLIMIT_DATA和RLIMIT_AS顯示(-1,-1)的rlimits 這里。一篇文章建議沒(méi)有交換空間可能是原因,但是交換實(shí)際上是按需提供的(根據(jù)Web主機(jī)),這在這里也被認(rèn)為是虛假的原因。進(jìn)程已關(guān)閉,因?yàn)檫@是使用.communicate()的行為,該行為由Python源代碼和此處的注釋支持。整個(gè)檢查都可以在GitHub上的第442行定義的getProcesses函數(shù)中找到。這由doChecks()從520行開(kāi)始調(diào)用。
查看完整描述

3 回答

?
冉冉說(shuō)

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超1個(gè)贊

swap可能不是以前建議的紅色鯡魚。之前的python進(jìn)程有多大ENOMEM?


在內(nèi)核2.6下,/proc/sys/vm/swappiness控制內(nèi)核將如何積極地進(jìn)行交換,并overcommit*歸檔內(nèi)核可以眨眨一下頭來(lái)分配多少內(nèi)存以及如何精確分配內(nèi)存。就像您的Facebook關(guān)系狀態(tài)一樣,這很復(fù)雜。


...但是交換實(shí)際上是按需提供的(根據(jù)Web主機(jī))...


但不是根據(jù)free(1)命令的輸出,該命令的輸出不顯示服務(wù)器實(shí)例識(shí)別的交換空間?,F(xiàn)在,您的Web主機(jī)肯定比我對(duì)這個(gè)主題了解更多,但是我使用的虛擬RHEL / CentOS系統(tǒng)報(bào)告了可用于來(lái)賓OS的交換。


改編Red Hat KB第15252條:


只要匿名內(nèi)存和系統(tǒng)V共享內(nèi)存的總和小于RAM量的3/4,那么Red Hat Enterprise Linux 5系統(tǒng)就可以在沒(méi)有交換空間的情況下運(yùn)行良好。....內(nèi)存小于或等于4GB的系統(tǒng) [建議]至少具有2GB的交換空間。


將您的/proc/sys/vm設(shè)置與普通的CentOS 5.3安裝進(jìn)行比較。添加交換文件。棘輪下來(lái)swappiness,看看你是否再活下去。


查看完整回答
反對(duì) 回復(fù) 2019-11-26
  • 3 回答
  • 0 關(guān)注
  • 2270 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)