我的服务器中运行了一个solr服务器。服务器有14Gb RAM。
当我查看New Relic图表时,服务器中使用的内存量似乎在3Gb左右:
当我执行htop
命令时,我得到了不同的结果:
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
17063 root 20 0 33.4G 12.5G 11.3G S 451. 88.8 1h17:59 java -jar start.jar
17430 root 20 0 33.4G 12.5G 11.3G R 97.8 88.8 2:30.47 java -jar start.jar
17456 root 20 0 33.4G 12.5G 11.3G R 96.4 88.8 1:07.96 java -jar start.jar
17457 root 20 0 33.4G 12.5G 11.3G R 94.0 88.8 1:33.25 java -jar start.jar
17459 root 20 0 33.4G 12.5G 11.3G R 82.1 88.8 2:34.93 java -jar start.jar
17431 root 20 0 33.4G 12.5G 11.3G R 69.8 88.8 3:35.84 java -jar start.jar
17065 root 20 0 33.4G 12.5G 11.3G S 0.9 88.8 0:05.35 java -jar start.jar
17067 root 20 0 33.4G 12.5G 11.3G S 0.9 88.8 0:05.40 java -jar start.jar
17069 root 20 0 33.4G 12.5G 11.3G S 0.9 88.8 0:05.37 java -jar start.jar
17072 root 20 0 33.4G 12.5G 11.3G S 0.9 88.8 0:05.37 java -jar start.jar
17075 root 20 0 33.4G 12.5G 11.3G S 0.9 88.8 0:05.37 java -jar start.jar
17077 root 20 0 33.4G 12.5G 11.3G S 0.9 88.8 0:05.33 java -jar start.jar
17066 root 20 0 33.4G 12.5G 11.3G S 0.9 88.8 0:05.42 java -jar start.jar
17068 root 20 0 33.4G 12.5G 11.3G S 0.9 88.8 0:05.46 java -jar start.jar
17073 root 20 0 33.4G 12.5G 11.3G S 0.9 88.8 0:05.25 java -jar start.jar
17074 root 20 0 33.4G 12.5G 11.3G S 0.9 88.8 0:05.33 java -jar start.jar
17070 root 20 0 33.4G 12.5G 11.3G S 0.5 88.8 0:05.27 java -jar start.jar
17076 root 20 0 33.4G 12.5G 11.3G S 0.5 88.8 0:05.42 java -jar start.jar
17071 root 20 0 33.4G 12.5G 11.3G S 0.5 88.8 0:05.37 java -jar start.jar
17078 root 20 0 33.4G 12.5G 11.3G S 0.5 88.8 0:01.42 java -jar start.jar
为什么htop
说这个过程消耗了11.3Gb?
free
cmd:
total used free shared buffers cached
Mem: 14779804 14258740 521064 360 10628 12114752
-/+ buffers/cache: 2133360 12646444
Swap: 0 0 0
New Relic java进程内存使用情况:
我的进程真正使用了多少内存?为什么New Relic为整个服务器显示3Gb,为java进程显示13Gb?
答案 0 :(得分:1)
您可以在New Relic论坛
找到相关信息对于单个进程,New Relic的Linux服务器监视器(LSM)不是以root用户身份运行的。由于Linux使用copy on write virtual memory scheme且非root用户对进程间共享的内存信息的访问权限有限,因此对于LSM查询的每个进程,将重新计算进程间共享的内存。结果是在受影响的进程的New Relic用户界面中反映出意外大的总内存使用量。 您在系统概述选项卡中看到的总内存使用情况由Linux内核报告,该内核可以完全访问有关进程之间共享内存的信息,此数字应准确反映计算机上使用的实际总内存。