2017-11-07 14:12 GMT+08:00 Alexey Kardashevskiy <a...@ozlabs.ru>: > 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?
Please add dump_guest_core=off in your qemu command-line, "dump_guest_core" mean not dump guest memory and just dump qemu itself. Regards, Wanpeng Li