Python VIRT内存Usag

2024-04-25 21:39:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我在生产中有一个python应用程序(在CentOS 6.2/python 2.6.6上),它需要:

800M VIRT / 15M RES / 2M SHR

同一个应用程序运行在(Fedora 16/Python 2.7.2)“仅”需要:

56M VIRT / 15M RES / 2M SHR

这是个问题吗? 这种差异的解释是什么? 我想知道如果有这么多的虚拟内存,它会不会随时出错?在


Tags: 程序运行应用程序res差异virtcentosfedora虚拟内存
2条回答

应用程序做什么?它使用什么库?这些机器还有什么不同?很难给出一个笼统的答案。在

VIRT值指示进程以某种方式从操作系统请求了多少内存。但是Linux在这方面是懒惰的:在进程尝试使用它之前,内存不会实际分配给进程。在

RES值表示RAM中实际驻留的和进程当前使用的内存量。这不包括进程尚未触及或已交换到磁盘的页面。因为这两个过程的RES值都很小且相同,所以可能没有什么可担心的。在

@RaphDG公司 在top命令中,如果您看到VIRT显示如下内容

top
top - 10:11:51 up 38 days,  8:51,  2 users,  load average: 0.91, 0.99, 1.02
Tasks: 907 total,   1 running, 906 sleeping,   0 stopped,   0 zombie
Cpu(s): 17.7%us,  5.6%sy,  0.0%ni, 70.5%id,  0.0%wa,  0.0%hi,  6.2%si, 0.0%st
Mem:  264493616k total, 249584324k used, 14909292k free,   147780k buffers
Swap: 33554428k total,        0k used, 33554428k free, 230646508k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 4152 root  20   0 54.0g 5.5g  93m S 854.5  2.2  11863:55 java
20112 root  20   0 3234m 123m  11m S 29.6  0.0   0:42.23 java
59917 root  20   0 6691m 841m 5308 S  2.6  0.3 562:21.06 java
 8494 root  20   0 17788 1940  952 R  1.0  0.0   0:18.95 top

g是千兆位,m是兆位(不是字节)。800兆字节只有100兆字节

@RaphDG公司

看起来,top3.3.10版本已经不再使用g、m或g来显示这些值。 请安装最新版本(3.3.10),它将向您显示KiB中的值,如果没有显示在后缀中,则应该考虑KiB中的值(在VIRT列中) 在网上搜索将KiB转换成千兆字节并转换。在

顶部-版本 procps ng版本3.3.10 用法: 顶部-hv |-bcHiOSs-d secs-n max-u | u用户-p pid(s)-o字段-w[cols]

顶 顶部-15:39:20上升139天,23:58,1个用户,平均负载:1.86,2.16,2.23 任务:总共107个,3个运行,104个睡眠,0个停止,0个僵尸 Cpu:60.0%us,34.7%sy,0.0%ni,5.3%id,0.0%wa,0.0%hi,0.0%si,0.0%st

KiB内存:总计3883016,276344可用,2766720已用,839952 buff/缓存 KiB交换:总计630780个,586468个可用,44312个。610484可用内存

PID用户PR NI VIRT RES SHR S%CPU%MEM TIME+命令 11根20 0 0 0 S 0.7 0.0 200:30.37 rcu计划

相关问题 更多 >