录音/制作/创作 吉他 扩声技术 视频技术 作品展示 生活 信息 更多... | 音频应用专卖店

教你Linux系统怎么获得最小的延迟

( 7 )
 
[收藏]

1568
#1 17-4-7 13:02

教你Linux系统怎么获得最小的延迟

本帖最后由 小偷 于 17-4-7 18:10 编辑

一切的开端:Linux音频系统的调教
调教方法我是对wiki的翻译与搬运整理。论坛没有代码框,不能整理美观了,请到我的博客看看。:D

原文在我的博客 http://lado.me/2017/4/6/configure-the-linux-audio-system
关注Linux+音乐,大家一起撩骚吧。


以下命令默认用户名为 tee,需要自行替代为自己的用户名。
为了避免命令的差异,假设你的系统跟我以及大部分人使用的一样,都是使用systemd,都支持cpu调节成最大效能效能。
强烈建议所有的文件操作,都把原文件进行备份。
假如你遇到了问题,在最上方的About页面的邮箱联系我进行交流吧!
把自己添加到audio用户组
tee是我的用户名
sudo usermod -aG audio tee增加threadirqs到内核参数
我是在内核启动时,配置Grub修改。还有其他方式,详见Kernel parameters Wiki
sudo vim /etc/default/grub
在配置文件找到GRUB_CMDLINE_LINUX_DEFAULT,添加threadirqs参数,下面是例子。
GRUB_CMDLINE_LINUX_DEFAULT="quiet threadirqs"
重新生成grub.cfg文件
grub-mkconfig -o /boot/grub/grub.cfgCPU调频到最大效能
使用cpupower工具把governors设置为performance,即最大效能。
安装cpupower
  • Arch Linuxsudo pacman -S cpupower
  • Ubuntusudo apt-get install linux-tools-common linux-tools-$(uname -r)
修改cpupower配置文件,添加或修改governor这一行
sudo vim /etc/default/cpupowergovernor='performance'
最后启用cpupower的service
sudo systemctl enable cpupower提高文件系统性能
noatime选项能提高文件系统的性能
sudo vim /etc/fstab
noatime添加到options列,范例里/dev/sda2是我的根目录,/dev/sda4是我的home目录。
# # /etc/fstab: static file system information## <file system>        <dir>        <type>        <options>        <dump>        <pass># /dev/sda2UUID=45da8912-3dbc-4793-bff6-d28f868e35d8        /                 ext4              rw,relatime,data=ordered,noatime        0 1# /dev/sda4UUID=16436bfd-5b02-4da8-85ec-03c7ab7f0976        /home             ext4              rw,relatime,data=ordered,noatime        0 2增加最新请求的RTC中断频率
默认频率是64hz。先使用su命令,进入管理员权限才能操作。
echo 2048 > /sys/class/rtc/rtc0/max_user_freqecho 2048 > /proc/sys/dev/hpet/max-user-freq修改交换分区频率与inotify
交换分区频率是由swappiness定义的,默认是60,修改为10,在硬盘写入之前,系统会等待更久一些。
还有一个inotify用来发现app请求的文件修改,如果有大量的音频数据在操作,这个inotify需要调更高。
这两个设置都可以设置在做/etc/sysctl.d/99-sysctl.conf
sudo vim /etc/sysctl.d/99-sysctl.confvm.swappiness = 10fs.inotify.max_user_watches = 524288安装Linux-rt内核(可选)
注意!这个是可选的,lowlatency的内核也能获得较低的延迟。有的nVidia或AMD/ATI显卡驱动在rt内核会不工作。
如果你了解到你的显卡在rt内核上工作良好,或想一尝新鲜,继续吧。我的Intel显卡工作很良好。
  • Arch Linuxyaourt linux-rt
  • Ubuntusudo apt-get install linux-realtime linux-headers-realtime
更新grub配置
sudo grub-mkconfig -o /boot/grub/grub.cfg 其他的可选项
最大化PCI声卡的延迟时间,等等。具体见WIKI
使用Quickscan脚本检查设置
这个脚本是perl语言写成的,需要先安装perl。如果没有git也需先安装git。
  • Arch Linuxsudo pacman -S perl git
  • Ubuntusudo apt-get install perl git-all
获取脚本并运行
git clone git://github.com/raboof/realtimeconfigquickscan.gitcd realtimeconfigquickscanperl ./realTimeConfigQuickScan.pl
在运行结果中看有没有not good的,如果只有RT内核检测是not good,你也不需要RT内核,就完满成功啦!
参考一下我的检测结果:
== GUI-enabled checks ==Checking if you are root... no - goodChecking filesystem 'noatime' parameter... 4.10.6 kernel - good(relatime is default since 2.6.30)Checking CPU Governors... CPU 0: 'performance' CPU 1: 'performance' CPU 2: 'performance' CPU 3: 'performance'  - goodChecking swappiness... 10 - goodChecking for resource-intensive background processes... none found - goodChecking checking sysctl inotify max_user_watches... >= 524288 - goodChecking access to the high precision event timer... readable - goodChecking access to the real-time clock... readable - goodChecking whether you're in the 'audio' group... yes - goodChecking for multiple 'audio' groups... no - goodChecking the ability to prioritize processes with chrt... yes - goodChecking kernel support for high resolution timers... found - goodKernel with Real-Time Preemption... not found - not goodKernel without real-time capabilities foundFor more information, see http://wiki.linuxaudio.org/wiki/ ... time_kernelChecking if kernel system timer is high-resolution... found - goodChecking kernel support for tickless timer... found - good== Other checks ==Checking filesystem types... ok.ok.




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
观众反应

810
#2 17-4-7 14:05
linux做音乐的朋友用的极少。不过看这些指令似乎mac也兼容。楼主不如实验一下mac下是否生效,然后标题改成mac相关会有更多朋友收益。

1125
#3 17-4-7 14:06
选用Linux环境,人为开启hard模式 ,无编程能力者慎重。

1568
#4 17-4-7 15:22
dreamz3 发表于 17-4-7 14:05
linux做音乐的朋友用的极少。不过看这些指令似乎mac也兼容。楼主不如实验一下mac下是否生效,然后标题改成m ...

我以为mac向都是可以直接上手使用呢,应该osx不需要这些吧?另像kxstudio这类Linux发行版已经调校过,上述已经生效,也是不错的选择呢

1568
#5 17-4-7 15:25
本帖最后由 小偷 于 17-4-7 15:36 编辑
鉴定完毕 发表于 17-4-7 14:06
选用Linux环境,人为开启hard模式 ,无编程能力者慎重。

私以为编程能力还是不太需要的,更需要的是基础英语以及非常重要的阅读能力。另外像kxstudio这类的Linux发行版,也非常容易上手。Linux对新接触者不友好更多是使用习惯吧,毕竟习惯就是一切。

810
#6 17-4-8 08:53
小偷 发表于 17-4-7 15:22
我以为mac向都是可以直接上手使用呢,应该osx不需要这些吧?另像kxstudio这类Linux发行版已经调校过,上 ...

理论上来说是系统都需要。直接上手就不一定最佳状态了。

1568
#7 17-4-8 09:24
dreamz3 发表于 17-4-8 08:53
理论上来说是系统都需要。直接上手就不一定最佳状态了。

这些命令都是linux通用,就怕osx的系统策略有什么冲突,还期望有其他朋友分享osx的经验呢

810
#8 17-4-8 12:12
小偷 发表于 17-4-8 09:24
这些命令都是linux通用,就怕osx的系统策略有什么冲突,还期望有其他朋友分享osx的经验呢

我也觉得应该是通用。看你的帖子提醒我了,mac系统大家都觉得好,但默认状态下还真未必就是为延迟最优化的,没准调整后能达到更好状态。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

搜索