On 07/11/17 17:02, Wanpeng Li wrote: > Hi Alexey, > 2017-11-07 13:46 GMT+08:00 Alexey Kardashevskiy <a...@ozlabs.ru>: >> On 07/11/17 01:08, Paolo Bonzini wrote: >>> On 06/11/2017 13:18, Wanpeng Li wrote: >>>> 2017-11-06 20:02 GMT+08:00 Paolo Bonzini <pbonz...@redhat.com>: >>>>> On 06/11/2017 12:59, Fam Zheng wrote: >>>>>>>> Could you point out the patchset for the fix? >>>>>>> Between 447b0d0b9ee8a0ac216c3186e0f3c427a1001f0c and >>>>>>> 092aa2fc65b7a35121616aad8f39d47b8f921618. >>>>>> Not sure how these relate to the core size, but I've tested upstream >>>>>> (ec7a8bf0b8f7dc7288fe8745464ee8217528cc6c) and with dump-guest-core=off >>>>>> the core >>>>>> file is 363M, still significantly larger than rss (~73M). >>>>>> >>>>>> What is bloating the core file? >>>>> >>>>> My guess would have been fragmented heap. The core file, unlike the >>>>> RSS, includes all the mmaped memory (e.g. from shared libraries) that >>>>> has never been used. >>>>> >>>>> For example, all the Ceph/Gluster/PulseAudio/SPICE/whatever libraries >>>>> are included in the core file but likely are not in the RSS. >>>> >>>> Do you mean not use Memory API will avoid the fragmented heap? >>> >>> The high memory usage from the memory API causes excessive >>> fragmentation. Alexey's work should help reducing memory usage and thus >>> the fragmentation. >> >> Since centos6 does not have this issue and centos7 does, I'd suggest >> MALLOC_ARENA_MAX&co >> https://www.gnu.org/software/libc/manual/html_node/Memory-Allocation-Tunables.html > > Thanks for the inputs. What's the recommend glibc.malloc.arena_max > value from you? :)
I have no idea, you have to try different values as you are the one who is unhappy about the sizes :) I do not normally mess with this as things should just work with the defaults whatever they are. > >> >> glibc changed some defaults between rhel/centos 6 and 7 if I recall >> correctly, and these arenas now create big anon mappings per thread, these >> are not really touched (so they do not use resident memory) but may appear >> in these dumps, dunno. >> >> btw do you configure the machine to make "kill -11" produce qemu core dumps? > > Yeah, some tuning in /etc/libvirt/qemu.conf, max_core="unlimited", > dump_guest_core=0 dump_guest_core=0 should mean "no dumps", no? Do you know how to enable this without libvirt? -- Alexey