[pulseaudio-discuss] pulseaudio - high memory usage

Tanu Kaskinen tanu.kaskinen at linux.intel.com
Wed Jan 29 11:23:29 PST 2014


On Wed, 2014-01-29 at 09:28 +0530, Arun Raghavan wrote:
> On Wed, 2014-01-29 at 00:34 +0100, Thomas Meyer wrote:
> > Hi,
> > 
> > should pulseaudio actually use that much memory?
> > 
> > $ cat status
> > Name:	pulseaudio
> > State:	S (sleeping)
> > Tgid:	1972
> > Ngid:	0
> > Pid:	1972
> > PPid:	1
> > TracerPid:	0
> > Uid:	1000	1000	1000	1000
> > Gid:	500	500	500	500
> > FDSize:	64
> > Groups:	4 6 10 11 36 63 464 468 469 500 
> > VmPeak:	 2326912 kB
> > VmSize:	 2326912 kB
> > VmLck:	       0 kB
> > VmPin:	       0 kB
> > VmHWM:	 1843468 kB
> > VmRSS:	 1843468 kB
> > VmData:	 1987020 kB
> > VmStk:	     136 kB
> > VmExe:	      80 kB
> > VmLib:	   15592 kB
> > VmPTE:	    4164 kB
> > VmSwap:	     524 kB
> > Threads:	3
> > SigQ:	0/62970
> > SigPnd:	0000000000000000
> > ShdPnd:	0000000000000000
> > SigBlk:	0000000000000000
> > SigIgn:	0000000000381000
> > SigCgt:	0000000180004a43
> > CapInh:	0000000000000000
> > CapPrm:	0000000000000000
> > CapEff:	0000000000000000
> > CapBnd:	0000001fffffffff
> > Seccomp:	0
> > Cpus_allowed:	1
> > Cpus_allowed_list:	0
> > Mems_allowed:	1
> > Mems_allowed_list:	0
> > voluntary_ctxt_switches:	12348713
> > nonvoluntary_ctxt_switches:	4858656
> 
> Have you tried interpreting what those numbers actually mean? This might
> help: http://elinux.org/Runtime_Memory_Measurement
> 
> Note that our SHM usage can cause virtual memory size look large, and
> this is a red herring.

I don't know if I read the output correctly, it looks like PulseAudio
consumes nearly 2 gigs of memory? Can SHM alone cause that?

Thomas, you could try running pulseaudio in valgrind. The command to do
that:

valgrind --leak-check=full pulseaudio --realtime=no

To get a leak report, quit pulseaudio with "pactl exit".

--realtime=no is there because otherwise, at least on my machine,
pulseaudio gets easily killed due to excessive cpu use in realtime mode.
(That sounds like a bug, btw - shouldn't rtkit just demote the
scheduling mode back to normal, not outright kill pulseaudio?)

Getting useful reports probably requires installing debug symbols for
pulseaudio first.

I tried valgrind today myself (which I do way too seldomly), and I found
one memory leak in module-card-restore, which gets triggered when
changing card profiles. I pushed a fix for that to master. There's still
one memory leak in alsa-lib, which I expect to be triggered once per
loaded instance of module-alsa-card, so it's not very serious. I didn't
bother tracking down the bug in alsa-lib.

-- 
Tanu



More information about the pulseaudio-discuss mailing list