在6节点cassandra集群上,堆大小配置为31g。当我运行nodetool info时,我看到了下面的内容
Nodetool info -
[root@ip-10-216-86-94 ~]# nodetool info
ID : 88esdsd01-5233-4b56-a240-ea051ced2928
Gossip active : true
Thrift active : false
Native Transport active: true
Load : 53.31 GiB
Generation No : 1549564460
Uptime (seconds) : 734
Heap Memory (MB) : 828.45 / 31744.00
Off Heap Memory (MB) : 277.25
Data Center : us-east
Rack : 1a
Exceptions : 0
Key Cache : entries 8491, size 1.12 MiB, capacity 100 MiB, 35299 hits, 44315 requests, 0.797 recent hit rate, 14400 save period in seconds
Row Cache : entries 0, size 0 bytes, capacity 0 bytes, 0 hits, 0 requests, NaN recent hit rate, 0 save period in seconds
Counter Cache : entries 5414, size 1.22 MiB, capacity 50 MiB, 5387 hits, 10801 requests, 0.499 recent hit rate, 7200 save period in seconds
Chunk Cache : entries 6164, size 249.5 MiB, capacity 480 MiB, 34840 misses, 177139 requests, 0.803 recent hit rate, 121.979 microseconds miss latency
Percent Repaired : 0.0%
Token : (invoke with -T/--tokens to see all 8 tokens)
使用和分配的堆内存Map到我在jconsole上看到的内容。但对于非堆内存,jconsole显示188mb,而info命令显示277mb,为什么不匹配?
1条答案
按热度按时间7gcisfzg1#
Non-Heap Memory
在jconsole和Off Heap Memory
nodetool展示的是完全不同的东西。jconsole中的非堆内存是jvm非堆内存池的总和。jvm通过
MemoryPoolMXBean
. 从jdk 8开始,这些池包括:元空间
压缩类空间
代码缓存
因此,非堆池显示jvm用于类元数据和编译代码的内存量。
nodetool从cassandra的列family metrics中获取堆外内存统计信息。这是所有打开表的bloom筛选器、索引摘要和压缩元数据的总大小。
看到了吗
nodetool tablestats
详细的统计数据。