关于服务器的问题

关于服务器的问题,第1张

Janus 是由Meetecho设计和开发的开源、通用的基于SFU架构的WebRTC流媒体服务器,它支持在Linux的服务器或MacOS上的机器进行编译和安装。由于Janus 是使用C语言进行编写的,因此它的性能十分优秀。Janus 的整体架构图如下图所示。

Janus 主要由三个部分组成,分别是Core、Plugin和Transport,下面是相关模块的介绍:

从整体架构上看,Janus支持众多传输协议,并且采用业务插件架构设计模式。因此,Janus流媒体服务器十分适合多种业务模型或业务经常变化的公司或项目使用。

网络接入服务器位于公用交换电话网与IP网的接口处,用户拨号通过交换机经用户线或中继线接入网络接入服务器。

NAS是一种接入网关。有时指RAS(远程接入服务器)或媒体网关。总之,它是一种在外部通信网络和内部网络之间的网关。通常的配置为一台控制调制解调器组的服务器。用户拨号至调制解调器,然后与接入服务器相连,该服务器验证用户身份并授权用户到内部网络的访问。用户通常使用TCP/IP通过PPP连接访问内部资源。除了那些在由接入服务器授权后允许访问因特网的用户之外,当用户拨号至因特网服务提供商时也使用这种相同的配置。

网络接入服务器的功能组成可归类为四大功能模块:

★ 接入功能模块

接入功能模块包括电话网侧的接口模块,分为PSTN的接口模块和ISDN的接口模块;还包括IP网侧的接口模块,包括LAN接口模块和同步专线接口模块,根据需要也可采用FR和ATM接口模块。

★ 通信协议模块

接入服务器中包含众多通信协议:电话网侧通信协议(PPP)、IP网侧通信协议(TCP/IP、UDP)、VPDN协议等。

★ 管理模块

网络接入服务器的管理控制模块包括3个功能模块:SNMP代理功能模块、Telnet服务器功能模块和远端拨号监控功能模块。通过3种不同的途径对网络接入服务器进行控制管理。

★ 接入认证、授权、计费和统计模块

网络接入服务器中包含网络接人认证与授权模块、计费模块和统计模块。

除了上述4个主要的功能模块外,还有一些其它的模块诸如VPDN模块、来电指示模块和系统控制模块。 名为“Network Access Server Requirements (网络接入服务器要求) (nasreq)”的IETF工作组已经为现代网络接入服务器定义了有关AAA(身份验证、授权、记帐)的新要求。该工作组考虑了如、智能身份验证方法和漫游等服务。它还开发了两个因特网RFC,它们提供了网络接入服务器的完整描述。

20190729 添加 TL;DR 章节,更新 conda r channel 国内镜像源
20190404 文章发布

我使用 Microsoft R Open(MRO) 已经有很长一段时间了,我向身边很多朋友推荐过 MRO,前些日子又和 思考问题的熊 聊起这个问题,于是想写几篇文章与大家分享一下我使用 MRO 的经验,包括 MRO 的介绍与无root权限时的安装方式、MRO 与 Base R 的区别、使用 MRO 中值得注意的问题。

在 2015 年 Microsoft 对外发布了 Revolution R Open 第一个正式版本对应 Base R 312,2016 年这个项目更名为 Microsoft R Open(MRO),目前的最新版本是 351。根据官方的介绍 MRO 是一个基于 Base R 的加强的 完全开源、免费 的 R 发行版,与原有的 Base R 完全适配,可以使用所有的 R 包和脚本。加强的地方主要体现在 性能 再生性 上,支持 Windows、Linux 和 macOS。值得注意的是 MRO 的数学库用了 Intel® Math Kernel Library(MKL) 仅支持 Intel 的 CPU,AMD 的机器用不了 MRO。

平常我们用 Base R 的时候就只会在单线程下运行,很少有人会去自己编译 R 然后链接上多线程的 BLAS/LAPACK 库。MRO 提供了一个基于 MKL 的多线程数学库,在进行矩阵运算的时候会自动并行。这意味着所有在 Base R 下开发的包含矩阵运算的包在 MRO 下不需要做特殊的修改就能获得并行能力,在多核心机器上会大幅节约程序运行时间,性能对比可以参考 这个 。MRO 实际上是通过对接对 CRAN 的每日备份的 Microsoft CRAN mirror 来保证可再生性的,你可以回溯到任意一个备份来安装旧版本的 R 包。实际上我并没有感受到太多的好处,这一部分特性可能企业应用会比较看重。除了加强的计算性能和可再生性,兼容性强且易用也是 MRO 的一大优势。官方提供了二进制安装包和一键安装脚本安装起来十分方便,MRO 作为 Base R 的完全兼容替代,可以搭配你喜欢的任意前端工具来使用,比如 VS Code,Jupyter,Rstudio 或者 Rstudio Server。

在自己的笔记本上安装以及有 root 权限的服务器上的安装方法请参照 官方安装指南 。这里我主要介绍两种在服务器上没有 root 权限时安装 MRO 的方法,一是通过 Conda,二是通过分析 rpm 包的安装脚本。软件在安装时需要 root 权限的原因基本都是需要往 root 权限的文件夹里面写一些可执行文件,链接库文件,配置文件等等,其实这些文件不一定非要写在 root 权限的默认文件夹里面,是完全可以通过配置环境变量等方法放在任意文件夹里的,这也就是 Conda 可以不用 root 权限安装很多软件的原理。

Conda 中的 Channel r 已经默认是 MRO 而不是 Base R 了,可以参见这篇 公告 ,可以通过 conda create -n mro_env r-essentials 来创建一个 MRO 的环境。如果你不想装那么多包也可以在 Miniconda 的基础上用 conda create -n mro_env mro-base 来最小化安装一个 MRO 的环境。 目前 r 这个 Channel 还没有国内镜像,只能从 anaconda 的官方镜像站拉取软件包,可能会有点慢。 r 的 Channel 在 TUNA 是有镜像的,只是没有在文档中体现出来。

另外附带一个简单的安装配置 Conda 的方法:

MRO 官网提供的的安装包里面包含 rpm 和 deb 的两套二进制文件, installsh 脚本会识别你的 *** 作系统并安装上正确的程序,安装 rpm 或者 deb 的包是需要 root 权限的,但是我们可以通过解析 rpm/deb 中的安装脚本并进行修改,手工的执行这一过程绕开往需要 root 权限的文件夹里写东西的过程。这种方法对于大多数的 rpm/deb 包都是有效的,也可以推广应用到你想装的其他包。但是一般情况下 conda 是能够满足需求的,没有必要采用这种手工的方式。

在终端输入:

如果回显中除了 Base R 正常启动时的回显还包括最后 Microsoft R Open 这一段就说明安装成功了。下一篇计划写一写 MRO 与 Base R 的区别和一些注意事项。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zz/12627950.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存