HTOP 中的 VIRT 列是啥?内存开销?

Posted

技术标签:

【中文标题】HTOP 中的 VIRT 列是啥?内存开销?【英文标题】:what is VIRT column in HTOP? memory overhead?HTOP 中的 VIRT 列是什么?内存开销? 【发布时间】:2014-06-04 22:01:11 【问题描述】:

此 HTOP 输出中的 VIRT 列是什么意思?它以红色和粗体显示。

我正在运行一个具有 4 个节点 的弹性搜索集群并为海量数据编制索引。

1700 个索引,包含 3 个分片,一些包含 10 个小文档,另一些包含 500k 个小文档 1 个索引,3 个分片,6000 万个小文档

始终显示绿色健康。

这是一个具有 4GB RAM 和 2 个 CPU 的 DigitalOcean droplet。我将 heapsize 设置为 2gb(-Xms 和 -Xmx)

这是 RAM 内存的开销吗?

  1  [|||||                                9.4%]     Tasks: 26, 122 thr; 2 running
  2  [|||                                  4.3%]     Load average: 0.25 0.47 0.65
  Mem[||||||||||||||||||||||||||||||2592/3954MB]     Uptime: 2 days, 01:05:57
  Swp[                                    0/0MB]

  PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
 9629 root       20   0 16.2G 2516M 97360 S 12.0 63.6 27h02:30 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
21564 root       20   0 16.2G 2516M 97360 S  4.0 63.6  1:12.17 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
 9644 root       20   0 16.2G 2516M 97360 S  1.0 63.6 47:39.34 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
20451 root       20   0 25808  2020  1208 R  0.0  0.0 25:19.48 htop
 9654 root       20   0 16.2G 2516M 97360 S  1.0 63.6  5:43.32 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
 9651 root       20   0 16.2G 2516M 97360 S  0.0 63.6  6:34.53 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
 9653 root       20   0 16.2G 2516M 97360 S  1.0 63.6  1:46.23 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
21565 root       20   0 16.2G 2516M 97360 S  0.0 63.6  1:12.48 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
21563 root       20   0 16.2G 2516M 97360 S  0.0 63.6  1:11.12 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
21472 root       20   0 16.2G 2516M 97360 S  0.0 63.6  1:15.85 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
 9652 root       20   0 16.2G 2516M 97360 S  0.0 63.6  5:40.13 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
21562 root       20   0 16.2G 2516M 97360 S  0.0 63.6  1:10.93 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
 9631 root       20   0 16.2G 2516M 97360 S  0.0 63.6  1h19:18 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
 9632 root       20   0 16.2G 2516M 97360 S  0.0 63.6  1h19:19 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
 9633 root       20   0 16.2G 2516M 97360 S  0.0 63.6  7h19:13 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
 9850 root       20   0 16.2G 2516M 97360 S  0.0 63.6 18:16.00 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
 9634 root       20   0 16.2G 2516M 97360 S  0.0 63.6  1h29:54 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
 9722 root       20   0 16.2G 2516M 97360 S  0.0 63.6 50:24.42 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
 9703 root       20   0 16.2G 2516M 97360 S  0.0 63.6  4h25:50 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
 9704 root       20   0 16.2G 2516M 97360 S  0.0 63.6  4h26:01 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
 9662 root       20   0 16.2G 2516M 97360 S  0.0 63.6  1:19.60 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
 9669 root       20   0 16.2G 2516M 97360 S  0.0 63.6  0:08.13 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
 9665 root       20   0 16.2G 2516M 97360 S  0.0 63.6  6:39.74 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
  385 syslog     20   0  243M  1696   872 S  0.0  0.0  0:13.37 rsyslogd -c5
  397 syslog     20   0  243M  1696   872 S  0.0  0.0  0:05.58 rsyslogd -c5
 9640 root       20   0 16.2G 2516M 97360 S  0.0 63.6  0:24.60 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
 9647 root       20   0 16.2G 2516M 97360 S  0.0 63.6  0:10.90 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
 9635 root       20   0 16.2G 2516M 97360 S  0.0 63.6  0:38.98 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
  950 root       20   0 15988   664   488 S  0.0  0.0  0:21.99 /usr/sbin/irqbalance
 9645 root       20   0 16.2G 2516M 97360 S  0.0 63.6  0:19.28 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
 9700 root       20   0 16.2G 2516M 97360 S  0.0 63.6  0:10.25 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
19171 root       20   0 86232  2316  1364 S  0.0  0.1  0:10.56 sshd: root@pts/0
 9648 root       20   0 16.2G 2516M 97360 S  0.0 63.6  0:09.37 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
 9639 root       20   0 16.2G 2516M 97360 S  0.0 63.6  0:32.61 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
 9642 root       20   0 16.2G 2516M 97360 S  0.0 63.6  3:04.59 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
 9643 root       20   0 16.2G 2516M 97360 S  0.0 63.6  0:37.35 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
 9649 root       20   0 16.2G 2516M 97360 S  0.0 63.6  0:55.92 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
 9650 root       20   0 16.2G 2516M 97360 S  0.0 63.6  0:15.67 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
 9706 root       20   0 16.2G 2516M 97360 S  0.0 63.6  0:51.00 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
 9705 root       20   0 16.2G 2516M 97360 S  0.0 63.6  0:38.98 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
 9667 root       20   0 16.2G 2516M 97360 S  0.0 63.6  0:08.34 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
 9646 root       20   0 16.2G 2516M 97360 S  0.0 63.6  0:10.10 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
 9668 root       20   0 16.2G 2516M 97360 S  0.0 63.6  0:07.83 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
 9666 root       20   0 16.2G 2516M 97360 S  0.0 63.6  0:08.01 /usr/bin/java -Xms256m -Xmx1g -Xss256k -
  398 syslog     20   0  243M  1696   872 S  0.0  0.0  0:01.40 rsyslogd -c5
  632 root       20   0 50044  1648  1036 S  0.0  0.0  0:02.10 /usr/sbin/sshd -D
    1 root       20   0 24300  1644   740 S  0.0  0.0  0:01.80 /sbin/init

我可以购买更多机器,但我不知道哪个更好:另一台机器 VS 更多 RAM。

更新:一个进程的第一行和最后一行 pmap

 root@es2:~# pmap -d 3589
 3589:   /usr/bin/java -Xms256m -Xmx1g -Xss256k -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -Delasticsearch -Des.foreground=yes -Des.path.home=/root/elasticsearch -cp :/root/elasticsearch/lib/elasticsearch-1.1.1.jar:/root/elasticsearch/lib/*:/root/elasticsearch/lib/sigar/* -Xmx2g -Xms2g -Des.node.name=es2 -Des.node.data=true -Des.node.master=false org.elasticsearch.bootstrap.Elasticsearch
 Address           Kbytes Mode  Offset           Device    Mapping
 0000000000400000       4 r-x-- 0000000000000000 0fd:00000 java
 0000000000600000       4 r---- 0000000000000000 0fd:00000 java
 0000000000601000       4 rw--- 0000000000001000 0fd:00000 java
 000000000188d000     132 rw--- 0000000000000000 000:00000   [ anon ]
 0000000775a00000 2118400 rw--- 0000000000000000 000:00000   [ anon ]
 00000007f6ec0000   37696 rw--- 0000000000000000 000:00000   [ anon ]
 00000007f9390000  111040 rw--- 0000000000000000 000:00000   [ anon ]
 00007f6cb0132000    4872 r--s- 0000000000000000 0fd:00000 _8d.fdt
 00007f6cb05f4000    5792 r--s- 0000000000000000 0fd:00000 _8d_es090_0.tim
 00007f6cb0b9c000    6208 r--s- 0000000000000000 0fd:00000 _8c.fdt
 00007f6cb11ac000    6548 r--s- 0000000000000000 0fd:00000 _a0.fdt
 00007f6cb1811000    7648 r--s- 0000000000000000 0fd:00000 _a0_es090_0.tim
 00007f6cb1f89000    5356 r--s- 0000000000000000 0fd:00000 _78.fdt
 00007f6cb24c4000    6236 r--s- 0000000000000000 0fd:00000 _78_es090_0.tim

 ....
 .......
 ....      (huge text)
 ....
 ......
 ..

 00007f703dc6e000       4 rw--- 0000000000007000 0fd:00000 librt-2.15.so
 00007f703dc6f000      84 r-x-- 0000000000000000 0fd:00000 libgcc_s.so.1
 00007f703dc84000    2044 ----- 0000000000015000 0fd:00000 libgcc_s.so.1
 00007f703de83000       4 r---- 0000000000014000 0fd:00000 libgcc_s.so.1
 00007f703de84000       4 rw--- 0000000000015000 0fd:00000 libgcc_s.so.1
 00007f703de85000    1004 r-x-- 0000000000000000 0fd:00000 libm-2.15.so
 00007f703df80000    2044 ----- 00000000000fb000 0fd:00000 libm-2.15.so
 00007f703e17f000       4 r---- 00000000000fa000 0fd:00000 libm-2.15.so
 00007f703e180000       4 rw--- 00000000000fb000 0fd:00000 libm-2.15.so
 00007f703e181000     904 r-x-- 0000000000000000 0fd:00000 libstdc++.so.6.0.16
 00007f703e263000    2044 ----- 00000000000e2000 0fd:00000 libstdc++.so.6.0.16
 00007f703e462000      32 r---- 00000000000e1000 0fd:00000 libstdc++.so.6.0.16
 00007f703e46a000       8 rw--- 00000000000e9000 0fd:00000 libstdc++.so.6.0.16
 00007f703e46c000      84 rw--- 0000000000000000 000:00000   [ anon ]
 00007f703e481000   10988 r-x-- 0000000000000000 0fd:00000 libjvm.so
 00007f703ef3c000    2048 ----- 0000000000abb000 0fd:00000 libjvm.so
 00007f703f13c000     608 r---- 0000000000abb000 0fd:00000 libjvm.so
 00007f703f1d4000     140 rw--- 0000000000b53000 0fd:00000 libjvm.so
 00007f703f1f7000     180 rw--- 0000000000000000 000:00000   [ anon ]
 00007f703f224000      88 r-x-- 0000000000000000 0fd:00000 libz.so.1.2.3.4
 00007f703f23a000    2044 ----- 0000000000016000 0fd:00000 libz.so.1.2.3.4
 00007f703f439000       4 r---- 0000000000015000 0fd:00000 libz.so.1.2.3.4
 00007f703f43a000       4 rw--- 0000000000016000 0fd:00000 libz.so.1.2.3.4
 00007f703f43b000      96 r-x-- 0000000000000000 0fd:00000 libpthread-2.15.so
 00007f703f453000    2044 ----- 0000000000018000 0fd:00000 libpthread-2.15.so
 00007f703f652000       4 r---- 0000000000017000 0fd:00000 libpthread-2.15.so
 00007f703f653000       4 rw--- 0000000000018000 0fd:00000 libpthread-2.15.so
 00007f703f654000      16 rw--- 0000000000000000 000:00000   [ anon ]
 00007f703f658000       8 r-x-- 0000000000000000 0fd:00000 libdl-2.15.so
 00007f703f65a000    2048 ----- 0000000000002000 0fd:00000 libdl-2.15.so
 00007f703f85a000       4 r---- 0000000000002000 0fd:00000 libdl-2.15.so
 00007f703f85b000       4 rw--- 0000000000003000 0fd:00000 libdl-2.15.so
 00007f703f85c000    1748 r-x-- 0000000000000000 0fd:00000 libc-2.15.so
 00007f703fa11000    2048 ----- 00000000001b5000 0fd:00000 libc-2.15.so
 00007f703fc11000      16 r---- 00000000001b5000 0fd:00000 libc-2.15.so
 00007f703fc15000       8 rw--- 00000000001b9000 0fd:00000 libc-2.15.so
 00007f703fc17000      20 rw--- 0000000000000000 000:00000   [ anon ]
 00007f703fc1c000      52 r-x-- 0000000000000000 0fd:00000 libjli.so
 00007f703fc29000    2044 ----- 000000000000d000 0fd:00000 libjli.so
 00007f703fe28000       4 r---- 000000000000c000 0fd:00000 libjli.so
 00007f703fe29000       4 rw--- 000000000000d000 0fd:00000 libjli.so
 00007f703fe2a000     136 r-x-- 0000000000000000 0fd:00000 ld-2.15.so
 00007f703fe4c000      32 r--s- 000000000005a000 0fd:00000 lucene-codecs-4.7.2.jar
 00007f703fe54000      16 r--s- 0000000000085000 0fd:00000 localedata.jar
 00007f703fe58000       8 r--s- 0000000000012000 0fd:00000 zipfs.jar
 00007f703fe5a000      12 r--s- 0000000000032000 0fd:00000 sunjce_provider.jar
 00007f703fe5d000      16 r--s- 000000000003b000 0fd:00000 sunpkcs11.jar
 00007f703fe61000     556 rw--- 0000000000000000 000:00000   [ anon ]
 00007f703feec000      72 rw--- 0000000000000000 000:00000   [ anon ]
 00007f703fefe000     220 rw--- 0000000000000000 000:00000   [ anon ]
 00007f703ff35000      40 rw--- 0000000000000000 000:00000   [ anon ]
 00007f703ff3f000     148 rw--- 0000000000000000 000:00000   [ anon ]
 00007f703ff64000     580 rw--- 0000000000000000 000:00000   [ anon ]
 00007f703fff5000      32 rw-s- 0000000000000000 0fd:00000 3279
 00007f703fffd000      12 ----- 0000000000000000 000:00000   [ anon ]
 00007f7040000000     268 rw--- 0000000000000000 000:00000   [ anon ]
 00007f7040043000       4 r--s- 0000000000008000 0fd:00000 lucene-memory-4.7.2.jar
 00007f7040044000       8 r--s- 000000000000f000 0fd:00000 pulse-java.jar
 00007f7040046000       4 r--s- 0000000000007000 0fd:00000 java-atk-wrapper.jar
 00007f7040047000       4 r--s- 0000000000002000 0fd:00000 dnsns.jar
 00007f7040048000       4 rw--- 0000000000000000 000:00000   [ anon ]
 00007f7040049000       4 r---- 0000000000000000 000:00000   [ anon ]
 00007f704004a000       8 rw--- 0000000000000000 000:00000   [ anon ]
 00007f704004c000       4 r---- 0000000000022000 0fd:00000 ld-2.15.so
 00007f704004d000       8 rw--- 0000000000023000 0fd:00000 ld-2.15.so
 00007fff9dcbe000     132 rw--- 0000000000000000 000:00000   [ stack ]
 00007fff9ddfe000       8 r-x-- 0000000000000000 000:00000   [ anon ]
 ffffffffff600000       4 r-x-- 0000000000000000 000:00000   [ anon ]
 ffffffffff600000       4 r-x-- 0000000000000000 000:00000   [ anon ]
 mapped: 17052740K    writeable/private: 2523144K    shared: 13562836K
 root@es2:~#

【问题讨论】:

***.com/questions/561245/… 有帮助吗? 16.2G 是相当惊人的——你能包括 pmap 的输出吗?如果您尝试使用 32 位 VM 怎么样? 感谢您的快速回答。我已经在众多进程之一中使用 pmap 进行了更新。 htop 中的红色表示千兆字节。 serverfault.com/questions/740210/htop-res-virt-colors 【参考方案1】:

我不会再担心 VIRT 的事情了。

Virtual Memory Usage from Java under Linux, too much memory used

我怀疑首页是为 vsyscall 目的而分配的(请参阅What are vdso and vsyscall?)。这意味着虽然您的进程映射了 16Gb 范围的虚拟内存,但它在物理内存方面肯定没有使用类似的东西。进入 RES 条目。

关于你需要更多的机器还是更多的内存......它很慢吗?您需要对瓶颈所在的位置进行更多取证,但那里的 htop 捕获似乎没有太大压力。

【讨论】:

它不慢,一直显示健康。但是加粗的红色文字吓到了我。所以,这只是虚拟保留内存。不用担心,谢谢

以上是关于HTOP 中的 VIRT 列是啥?内存开销?的主要内容,如果未能解决你的问题,请参考以下文章

Htop 在“VIRT”中为“vagrant ssh”说“530G”

LInux查看CPU状态

系统状态类_top

glibc 应用程序一直占用未使用的内存,直到退出前

如何解释来自 htop 的内存使用信息

如何从 /proc/meminfo 计算系统内存使用量(如 htop)