如何停止 Pulseaudio 使用大量内存?

如何停止 Pulseaudio 使用大量内存?

我安装的 Ubuntu Studio 17.04 似乎存在音频问题

其中之一是Pulseaudio,它似乎占用了我16GB机器上的大量内存,目前使用的内存为2.85GB,我见过超过3GB

请您以易于理解的步骤解释解决方案,我仍在学习 Linux。

有时它听起来也像是乱码,我需要流畅的音频来进行 DJ 制作工作。

答案1

你确定这是实际内存消耗,而不是虚拟内存消耗吗?根据https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/MemoryConsumption/,它为每个客户端在虚拟内存上保留 64 MB,但这实际上应该是“没问题的”,不会导致 OOM 情况。在我的 18.04 ubuntu 上,top 显示例如

%Cpu(s):  4,1 us,  1,5 sy,  0,0 ni, 93,2 id,  1,1 wa,  0,0 hi,  0,0 si,  0,0 st
KiB Mem : 16135328 total,  1088888 free,  8108764 used,  6937676 buff/cache
KiB Swap:  1003516 total,   961276 free,    42240 used.  6562996 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                   
[...]                                                                                
20428 delf       9 -11 2464944  13808  10264 S   4,6  0,1   3:05.72 pulseaudio

因此虚拟内存约为 2.5 GB,而使用 ps 测量的实际内存消耗百分比显示:

% ps -o pid,%mem,command ax | grep pulseaudio
 1811  0.0 /usr/bin/pulseaudio --daemonize=no
 7363  0.0 grep pulseaudio
20428  0.0 /usr/bin/pulseaudio --start --log-target=syslog

所以也许一切都很好..?:)

答案2

正如我所回答的这里, 如果你想减少虚拟内存大小pulseaudio 的:

找到你的 pulseaudio 守护进程配置(最有可能/etc/pulse/daemon.conf)并取消注释并更改设置enable-shm

enable-shm = no

然后重新启动机器,或者使用以下命令重新启动 pulseaudio

systemctl --user restart pulseaudio

这不会给您带来任何实际的内存节省,并且会导致难以察觉的性能开销,但虚拟内存使用量将会下降,您将获得内心的平静!

答案3

众所周知,Pulseaudio 在某些情况下会占用较高的 RAM(物理内存)。

尝试通过在行tsched=0末尾添加来禁用 PulseAudio 的基于计时器的调度。load-module module-udev-detect/etc/pulse/default.pa


或者,减少 PulseAudio 使用的通道数。您可以通过编辑文件/etc/pulse/daemon.conf并更改default-fragmentsdefault-fragment-size-msec值来实现此目的。

相关内容