我有一个拥有大约64G内存和大约24G交换空间的系统。我意外地在我的程序中分配了大量的共享内存,令我惊讶的是它起了作用。以下是/dev/shm中的文件
-rw-r--r-- 1 user user 191G Aug 7 10:06 myShm
当我的RAM和交换加起来只占内存的一小部分时,系统如何管理191 to的共享内存?
我使用jsvc作为守护进程在centos5.5上安装了tomcat版本6。在运行了几个小时或几天之后,tomcat jsvc进程在那里休眠,并使用了%100的CPU资源,如顶部的命令输出屏幕所示。以下是输出屏幕的详细信息。
PID USER PR NI VIRT RES SHR S %CPU %MEM COMMAND
8670 root 18 0 33.3g 32g 10m S 100.0 51.5 jsvc
我已经将jvm的最大内存值设置为32G,而服务器机箱的内存为64G,所以不要对VIRT值感到惊讶。正如您在输出消息中看到的,进程状态是S,这意味着休眠。我的猜测是,jvm
我有一个6G的tsv文件。文件的内容是数字,最大的数字是57134205。该文件实际上是一个查找表,每行的第一个数字是键,该行的后续数字是映射到该键的值。在python dict的形式中,它类似于:
lookup1=1,2,3,4
lookup2=7,8
..。
因此,我认为这是一些琐碎的东西,并尝试逐行读取文件(我使用的是python 3.7):
R={}
with open(filename) as f:
for line in f:
l=list(map(int,line.split('\t')))
R[l[0]] = set(l[