首页 文章 精选 留言 我的

精选列表

搜索[网站开发],共10000篇文章
优秀的个人博客,低调大师

Oracle 开发“bpftune”,基于 BPF 的 Linux 系统自动调优工具

Oracle 开源了一个基于 BPF 的 Linux 参数自动调优工具 “bpftune”,这是一个自动配置器,可以监控 Linux 系统的工作负载并自动设置正确的内核参数值。 Linux 内核包含超过 1,500 个可调参数 ,bpftune 会随着系统的状态不断地自动调整多项参数,一切参数的更改都是轻量级且完全实时,无需重新启动设备即可生效。 其主要好处是: 使用 BPF(伯克利数据包过滤器)可观测性功能持续监控和调整系统行为。 由于可以使用 BPF 观察系统状态的更多细节,因此可以在细粒度级别调整系统行为。 目前bpftune 可以自动调整的参数: Congestion tuner: 自动调节拥塞控制算法的选择。 Neighbour table tuner: 在接近满载时通过增长表来自动调整 Neighbour table 的大小。 Route table tuner: 在接近满时通过增长表来自动调整路由表大小。 sysctl tuner: 监视 sysctl 设置,如果它与自动调整的 sysctl 值冲突,则禁用关联的调谐器。 TCP buffer tuner: 自动调整最大和初始缓冲区大小。 net buffer tuner: 自动调整与核心网络相关的可调参数。 netns tuner: 监控网络命名空间的添加和删除,有助于增强 bpftune 整体的命名空间感知能力。 Oracle Linux 用户可以使用 DNF 包管理器轻松安装 bpftune。bpftune 代码在 GPLv2 许可下开源,可从 GitHub 仓库获取。

优秀的个人博客,低调大师

Monibuca v4.6.3 发布 —— 开源 Go 语言流媒体开发框架

发布摘要 本次发布带来如下更新: 预览插件引入jessibuca pro demo 启动工程引入conf目录,添加若干常用配置示例 启动工程修改默认配置文件,增加https协议配置,以及hls、llhls 可以自定义favicon.ico 引擎中Stream增加Pause和Resume方法 引擎引入sync.Cond替代伪自旋锁 jessica插件引入对http/ws-h264/h265 裸流支持 录制插件在无法创建文件时日志中增加提示 ps插件修复一个单端口使用后无法重复使用的bug webtransport通过内置证书方式默认启动 gb28181 插件增加ptz的友好接口,已经录像的暂停快进快退接口 详细说明 预览插件更新 预览插件重大更新:引入jessibuca pro demo 本地流的预览更加方便,jessibuca pro demo无需使用本地ng部署,同时解决了公网页面无法访问本地流的问题。 增加更多协议演示 pro demo 中新增支持了HLS-265 其他协议演示可以点击协议切换下拉框选择 自动填入播放地址 在预览插件首页中http://localhost:8080/preview/ 点击某个流后,会自动跳转到预览地址,并且将播放地址自动填入地址栏中,点击播按钮即可播放 Webtrasnport协议体验也更简单 先默认启动了https以及Webtransport插件,本地只需要修改一下host配置127.0.0.1 local.monibuca.com。即可快速一键体验Webtrasnport协议播放 启动工程更新 增加若干常用配置示例 为了方便快速理解配置文件的格式,本次加入了几个常见配置: hls.yaml 配置了hls的纯转发模式,关闭了其他功能 https.yaml 配置https监听 rtmp.yaml 配置了纯rtmp转发,关闭了其他功能 rtmps.yaml 配置rtmps协议监听 rtsp.yaml 配置了rtsp远端按需拉流,无人订阅自动停止 文件位置在github.com/langhuihui/monibuca/conf 自定义favicon.ico 在启动工程目录下现在可以放置了一个favicon.ico文件,用于内置页面的图标显示,可以自行替换 修改默认的配置文件 global: http: listenaddrtls::8081 certfile:local.monibuca.com_bundle.pem keyfile:local.monibuca.com.key llhls: enable:false hls: enable:false monitor: enable:false 引擎更新 引擎中Stream增加Pause和Resume方法 这两个方法可以在需要暂停超时检测的时候使用,例如GB协议中录像播放用到的,详细见下文。 引擎引入sync.Cond替代伪自旋锁 伪自旋锁每个10ms检测一次数据是否可读,会增加协程唤醒的次数,虽然相比使用锁的消耗要小很多了,但和单线程模型的相比性能还是差了一些。因此经过尝试,发现sync.Cond可以解决这个问题。但是sync.Cond中也有锁,只不过可以通过一个欺骗的手段,让这个锁形同虚设,因此定义了一个什么也不干的锁给它用: typeEmptyLockerstruct{} func(EmptyLocker)Lock(){} func(EmptyLocker)Unlock(){} 空结构体在go里面不占用任何资源,并且多次调用sync.Cond的Broadcast并不会引起错误,不像WaitGroup的Done无法多次调用。 经过替换后,性能提升大概10~20%。 插件更新 jessica插件引入对http/ws-h264/h265 裸流支持 具体可以在preview插件中体验 record插件增加文件创建失败的提示 部分机器有写入权限,导致录制文件创建失败,之前没有加错误提示。 修复ps插件在单端口调用后没有删除调用者 单端口为了判断是否已经在拉流了,所以有一个map来存放已经拉的流,流结束后没有从map中删除,导致再次拉流失败。 webtransport通过内置证书方式默认启动 由于webtransport协议必须使用https和证书才能使用,所以为了方便体验,将local.monibuca.com证书内置嵌入到了插件中,无需配置即可使用。唯一需要做的就是将127.0.0.1 local.monibuca.com写入host中。 gb28181 插件增加ptz的友好接口,已经录像的暂停快进快退接口 这里感谢@ogofly的贡献,提供了更多友好的http接口

优秀的个人博客,低调大师

Monibuca v4.6.1 发布—— 开源 Go 语言流媒体开发框架

通过官网下载二进制文件 或者 git clone https://github.com/langhuihui/monibuca 获得最新版 1 新增LL-HLS支持 该协议为苹果公司推出的低延迟HLS协议,本次更新新增了对该协议播放支持。 同rtsp库一样,采用了第三方库来实现:「github.com/bluenviron/gohlslib」 1.1 使用方法 通过访问形如http://localhost:8080/llhls/live/test/index.m3u8来播放。 其中「live/test」为streamPath,可以替换成实际的值 1.2 插件配置 在llhls下可以配置http配置,用于修改端口号。插件配置方式可以参考文档 1.3 源码说明 llhls相关代码位于「github.com/Monibuca/plugin-hls」 的 「llhls.go」 中。hls和llhls两个插件共用一个代码仓库,因此引入hls时也同时引入了llhls插件。 2 新增HLS.js测试页面 HLS.js测试页面是将hls.js的编译后的代码嵌入到了hls插件仓库中,以方便调试hls流使用。 2.1 访问地址 http://localhost:8080/hls/index.html 该页面也可以用于测试llhls 3 新增对RTMPS协议支持 该协议为RTMP协议的衍生协议,是在TCP基础上增加了TLS安全加固,原理类似HTTPS。 该协议支持是rtmp插件的增强。需要通过配置TLS端口来开启该功能。 3.1 配置 rtmp: tcp: listenaddrtls::4443 3.2 推流测试 ffmpeg-isource-fflvrtmps://localhost:4443/live/test 如果配置成443端口,则可以省略端口号 3.3 对外推拉流 已经支持,既可以在配置pull或者push中使用rtmps的远程地址 4 其他更新内容 4.1 优化了HLS纯转发模式的资源消耗 ❝ 当只需要将HLS拉流转发时,可以使用纯转发模式 纯转发模式由于不需要解析HLS协议中的TS格式,因此对资源消耗比较小。 通过配置HLS插件的 「relaymode: 1」开启❞ 4.2 修复了当开启时光回溯功能时的内存泄漏 具体原因是,在进行时间戳判断时忽略了当时间戳超过最大值时的情况,导致ringbuffer无限扩大 ❝ 所谓时光回溯功能,是指可以缓存较多的数据,以订阅当前画面更早一些的画面 通过配置「publish」配置中的「buffertime」来开启时光回溯 订阅流时需要指定订阅模式,即需要在订阅时加参数?mode=2 如果需要修改参数名称(有时可能会有冲突,可以通过配置submodeargname 来改变❞ 4.3 WebRTC插件测试页面运行URL中带有参数 为了更方便测试WebRTC功能,允许在访问测试页面时,带上参数 4.3.1 推流测试页面 「http://localhost:8080/webrtc/test/publish?streamPath=live/test」 可以推送到「live/test」。不传该参数则推送到「live/webrtc」 测试房间功能是也可以带上token参数 4.3.2 播放测试页面 「http://localhost:8080/webrtc/test/subscribe?streamPath=live/test」 可以订阅「live/test」的流。不传该参数则订阅「live/webrtc」 4.4 Stream中增加NeverTimeout属性 该属性设置成true可以是的流不再判断超时,保持流永远存活,其目的是有些流并不会产生AudioTrack和VideoTrack,比如纯转发流,或者Room的用于广播消息的流,此时可以在发布成功后,对流设置这个属性

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册