我遇到了一个CentOS 7服务器的问题,我有一个ZFS池(当前)是与一个运行的KVM虚拟机(CentOS 6 guest)一起创build的。 Top是报告虚拟机正在使用我系统内存的大约50%(这是正确的 – 我已经configuration了32 GB总共16 GB),但是,免费报告使用中的活动内存大约为26 GB。 有一个额外的10 GB的RAM在使用的地方,我根本无法find,即使我已经限制ZFS只使用4 GB的弧。 顶部显示没有别的使用内存:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 10928 qemu 20 0 20.773g 0.015t 680 S 55.8 50.7 12148:34 qemu-kvm 530 root 20 0 59376 7940 7796 S 0.0 0.0 1:52.59 systemd-journal 1913 root 20 0 1063816 5820 3120 S 0.0 0.0 0:01.36 libvirtd 9005 root 20 0 135612 5344 4092 S 0.0 0.0 0:01.69 sshd 8637 root 20 0 135612 5336 4092 S 0.0 0.0 0:00.42 sshd 1 root 20 0 50960 4360 2152 S 0.0 0.0 0:12.09 systemd 11597 postfix 20 0 91636 3892 2892 S 0.0 0.0 0:00.00 pickup 1400 root 20 0 378052 3168 2076 S 0.0 0.0 0:04.18 NetworkManager 8651 root 20 0 115452 2140 1672 S 0.0 0.0 0:00.13 bash 9020 root 20 0 115352 2056 1632 S 0.0 0.0 0:00.00 bash
Free没有关于RAM在哪里的好信息(不,它不是文件系统caching,它被报告为正在使用中):
total used free shared buffers cached Mem: 31974 26534 5439 13 0 90 -/+ buffers/cache: 26444 5530 Swap: 1999 925 1074
我的ZFS数据显示ARC处于正常范围内:
5 1 0x01 85 4080 3000154942 1126206978029170 name type data hits 4 626600066 misses 4 531647209 demand_data_hits 4 324930179 demand_data_misses 4 239380938 demand_metadata_hits 4 246080774 demand_metadata_misses 4 33168747 prefetch_data_hits 4 55239743 prefetch_data_misses 4 256749089 prefetch_metadata_hits 4 349370 prefetch_metadata_misses 4 2348435 mru_hits 4 170996240 mru_ghost_hits 4 146648139 mfu_hits 4 412479249 mfu_ghost_hits 4 55201631 deleted 4 522830695 recycle_miss 4 688200803 mutex_miss 4 5494038 evict_skip 4 263172839174 evict_l2_cached 4 2293824808448 evict_l2_eligible 4 3235679258112 evict_l2_ineligible 4 711594439680 hash_elements 4 1003039 hash_elements_max 4 31494585 hash_collisions 4 453192154 hash_chains 4 298915 hash_chain_max 4 105 p 4 1899257344 c 4 4294967296 c_min 4 4194304 c_max 4 4294967296 size 4 4294703744 hdr_size 4 428382448 data_size 4 3463036928 meta_size 4 268575232 other_size 4 101467000 anon_size 4 2181120 anon_evict_data 4 0 anon_evict_metadata 4 0 mru_size 4 1823588352 mru_evict_data 4 1620893696 mru_evict_metadata 4 92227584 mru_ghost_size 4 2367817728 mru_ghost_evict_data 4 1721548800 mru_ghost_evict_metadata 4 646268928 mfu_size 4 1905842688 mfu_evict_data 4 1840373760 mfu_evict_metadata 4 17820160 mfu_ghost_size 4 1927131648 mfu_ghost_evict_data 4 1881784320 mfu_ghost_evict_metadata 4 45347328 l2_hits 4 124320745 l2_misses 4 404820103 l2_feeds 4 1128427 l2_rw_clash 4 52038 l2_read_bytes 4 474159669248 l2_write_bytes 4 246928839168 l2_writes_sent 4 541747 l2_writes_done 4 541747 l2_writes_error 4 0 l2_writes_hdr_miss 4 6389 l2_evict_lock_retry 4 1037 l2_evict_reading 4 3 l2_free_on_write 4 3709466 l2_abort_lowmem 4 1752 l2_cksum_bad 4 0 l2_io_error 4 0 l2_size 4 2306560512 l2_asize 4 2249048064 l2_hdr_size 4 33242136 l2_compress_successes 4 45560845 l2_compress_zeros 4 0 l2_compress_failures 4 7074167 memory_throttle_count 4 0 duplicate_buffers 4 0 duplicate_buffers_size 4 0 duplicate_reads 4 0 memory_direct_count 4 140693 memory_indirect_count 4 222279 arc_no_grow 4 0 arc_tempreserve 4 0 arc_loaned_bytes 4 0 arc_prune 4 36031794 arc_meta_used 4 831666816 arc_meta_limit 4 3221225472 arc_meta_max 4 10590063600
这是当前的ZFSconfiguration:
pool: pool state: ONLINE scan: scrub repaired 0 in 1h33m with 0 errors on Sat Dec 6 02:33:48 2014 config: NAME STATE READ WRITE CKSUM pool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 sda ONLINE 0 0 0 sdb ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 sdc ONLINE 0 0 0 sdd ONLINE 0 0 0 logs mirror-2 ONLINE 0 0 0 ata-INTEL_SSDSA2CW120G3_BTPR13600113120LGN-part3 ONLINE 0 0 0 ata-INTEL_SSDSA2CW120G3_BTPR152503LQ120LGN-part3 ONLINE 0 0 0 cache ata-INTEL_SSDSA2CW120G3_BTPR13600113120LGN-part4 ONLINE 0 0 0 ata-INTEL_SSDSA2CW120G3_BTPR152503LQ120LGN-part4 ONLINE 0 0 0 errors: No known data errors
看起来我有6+ GB的内存已经从系统中消失了,我不确定这里发生了什么。 任何人都可以点亮这个?
谢谢。
你有很多L2ARC …比你应该多。 这并不全是神奇的……有一些ZFS最佳实践应该成为devise的一部分。
L2ARC需要映射到真实的RAM中。 我记得的最佳做法是每个5GB的L2ARC〜1GB的RAM。 所以你有172GB的L2ARC …这个系统需要大小为〜34.5GB的RAM。 对于一个虚拟机来说,很大一部分显然会影响到这一点。
尝试使用没有L2ARC的系统,或者使用less量的这个系统。
在我的环境中,我在添加L2ARC设备之前优化了RAM wayyyy。 有人说,你甚至不应该走这条路,直到你有64GB的RAM或更多。 如果您有空闲的SSD并想要使用它们,请制作一个SSD池。