我在VPS上运行了一个python脚本,并且我遇到了脚本不断被杀死的问题。
我已经在2GB内存服务器配置中遇到了这个问题,然后升级到4GB,它似乎解决了这个问题(至少在2-3天内--但现在又发生了),但是如果我检查内存图,我看到的服务器负载是内存的最大20%,但它仍然被杀死了。
cmd的输出"grep grep /var/log/syslog“如下:
May 8 07:42:04 ubuntu kernel: [307104.437195] Out of memory: Killed process 28187 (python3) total-vm:4503732kB, anon-r
我想要做的是让python遍历所有的RSS提要标题,并让终端只打印包含特定单词的标题。
import feedparser
d = feedparser.parse('http://rss.cnn.com/rss/edition_technology.rss')
print d['feed']['title']
print 'number of entries: '
print len(d['entries'])
for post in d.entries:
print post.title +
所以我有一些脚本,我的记忆力有问题。
如何在python脚本中“清理内存”或做类似的事情?
在一个循环中,我没有任何麻烦,但是假设在2000年的循环执行中,我有一个bug。
> Out of memory: Kill process 9158 (python) score 798 or sacrifice child
> Killed process 9158 (python) total-vm:2239864kB, anon-rss:1768792kB,
> file-rss:0kB
或者是在小vps上
> [3533150.960369] Out of memory
我有以下Python代码:
import os, psutil
import numpy as np
process = psutil.Process(os.getpid())
print(process.memory_info().rss)
def append(x):
x.append(np.random.normal(size=(1000,1000)))
a = []
append(a)
append(a)
append(a)
print(process.memory_info().rss)
a = [i[:10] for i in a]
print(process.memo
我一直试图将R中的一些代码转换为Python来绘制一条曲线,但遇到了几个错误,主要是将函数rss (残差平方和)应用到Beta2s,在原始R代码中,该函数是通过sapply()完成的。我尝试过使用map(),但是它在Matplotlib中不能很好地运行,因为我得到了它does not support generators as input的错误。我已经做了list(map()),得到了'int' object is not iterable的错误。会很感激你的帮助!
以下是R中的代码:
rss <- function(Beta0,Beta1,Beta2){
r <
在中,包含在所有条目中。但是它在Python模块中不能作为item元素使用。此代码:
import feedparser
rss_object = feedparser.parse("http://cyber.law.harvard.edu/rss/examples/rss2sample.xml")
for entry in rss_object.entries:
print entry.pubDate
导致错误AttributeError: object has no attribute 'pubDate',但我可以成功地执行print entry.d
看起来python3.5并没有完全释放内存中任何被删除的对象,这可能是因为python内部维护了某种类型的内存池以供重用,然而,我不想重用它们,我想释放它们以便为linux上运行的其他程序提供可用的内存。
>>> psutil.Process().memory_info().rss / 2**20
11.47265625
>>> d = {x:x for x in range(10**7)}
>>> psutil.Process().memory_info().rss / 2**20
897.1796875
>>> del
我有一个简单的脚本,试图按如下方式强调concurrent.futures库:
#! /usr/bin/python
import psutil
import gc
import os
from concurrent.futures import ThreadPoolExecutor
WORKERS=2**10
def run():
def x(y):
pass
with ThreadPoolExecutor(max_workers=WORKERS) as pool:
for _ in po
对于这里包含的数据:
我有以下Python代码:
import xml.etree.ElementTree as ET
import urllib.request
rss1 = "http://www.playonline.com/ff11us/polnews/news.xml"
f = urllib.request.urlopen(rss1)
objects = ET.fromstring(f.read().decode())
print([el.attrib.get('title') for el in objects.findall('*/item