根据这个模式,我为一个有限的广播公司configuration了一个简单的直播服务: 实际的服务configuration 有一个“起源”服务器,我已经安装了NGINX和RTMP模块。 该服务器接收RTMPstream并将其转换为不同大小(360p,720p)的HLS。 networking服务器仅托pipe重现这些HLSvideo的网站。 我打算大幅增加广播公司,为了确保所有来源的正确处理,我想改进服务器configuration。 在networking上,我发现很less的信息,我假设这种configuration: 做服务configuration “原始”服务器将只接收RTMPstream。 两台或多台“边缘”服务器从原点提取数据并将其转换为HLS格式(多种分辨率)。 networking服务器仅托pipe重现这些HLSvideo的网站。 我的问题是:1.所有“边缘”服务器必须以多种分辨率将RTMPstream转换为HLS格式? 或者一个边缘服务器可以将RTMPstream转换为HLS 360p,而其他边缘服务器可以将RTMPstream转换为HLS 720p? 在RTMP-HLS转换之后,HLS 360p文件必须存储在存储HLS 720p文件的同一台服务器上? 从Web服务器播放video足以在边缘服务器和Web服务器之间引入平衡节点?
在过去的几个星期里,我们开始通过http服务越来越多的video,每个video从50到500mb不等,因为我们没有新的服务器来使用它,只是为了将其设置在我们的stream媒体服务器上。 这个盒子是相当不错的imho(在2ghz,4gb ram,4 x 300gb sas,15k rpm在hw RAID1中,运行Linux 2.6,ext3 fs和deadline调度程序,nginx作为web服务器),但是我们仍然在交付文件,主要是我怀疑是因为我们的iowait在10%到45%的范围内,util的大部分时间是90%左右,而cpu是20-30%左右。 从我读过的应该保持我们〜300-400mbps的stream量,但它不.. 在预算上,我们不能依赖CDN,但是如果需要,我们可以获得更多的处理能力,数据中心可以处理我们的stream量。 现在我们得到了一个新的服务器应该只做这个,但我不知道什么是最好的方式来设置它,现在的主要问题是: 什么raid级别更适合这个任务? 现在有4×300GB + 2×146GB,两个SAS在10K rpm,硬盘RAID,想要更多的空间,但冗余也是重要的 我将如何扩展它,lvm一个好主意? 它需要多lessram,现在它有16GB,但如果能给我们一个体面的提升,可以增加更多的任何提示呢? 决定在文件系统的XFS,什么反对/更适合这个? 我只能靠这台服务器多less钱? 任何其他意见,表示赞赏。 谢谢。
我有很多静态页面,包括html文件+ js(SCORM包)。 我有dynamic页面,也JS与静态页面JS交谈。 静态页面正在iframe中打开,我们从第三方获取它们(SCORM内容),所以没有可能的更改。 为了性能和集中的缘故,我们希望把所有的静态文件放在专用的服务器上,使用lighthttp。 问题:现在,dynamic页面中的js(通过Apache提供服务)没有权限与light-http托pipe页面交谈。 这两个域是相同的,端口是不同的。 任何build议如何做到这一点。
我几乎不知道有多台服务器一起工作。 现在我一直在玩从机架空间提供的云服务器。 当人们谈论这些“云”服务器的时候,它们听起来就像是很容易扩展一样。 现在很容易垂直缩放。 但我正在水平谈话。 我知道云服务器可以保存您的服务器的图像,并启动一个完全相同的图像的新服务器。 你如何使用多台服务器? 你如何确保你的应用程序的数据库完整性? 人们听起来很简单,就像你可以在这里添加一对夫妇,并在那里采取一对夫妇。 另外,云服务器可以从256MB扩展到16GB左右。 水平放大而不是垂直放大哪一点更好? 我可以想象有一个瓶颈是磁盘,水平扩展会更好,所以你可以有更多的磁盘。 但是,也许我错了,你应该垂直扩展,然后水平?
我最近发现了有关SQL Server可伸缩共享数据库技术,我想在vmware环境中进行testing。 我们的生产环境是基于SAN的,但是我们没有一个反映它的testing环境。 是否可以像使用SAN共享卷一样使用VMware共享磁盘? 然后,我可以在共享卷上指定多个vmware sql服务器,并对生产中build议的共享SAN卷设置进行类似的设置。 在此先感谢您的帮助
谢谢你们,任何想法/见解都会受到赞赏,因为这使我疯狂。 问题:在应用程序停止之前,只有大约3或4个用户可以同时使用服务器。 目前我们看到正常使用情况下CPU使用率的巨大峰值。 与真实用户相比,这比使用自动化脚本更容易复制,原因不明,但是脚本可能无法很好地模拟真实的使用情况。 我们的架构如下: 应用程序服务器(Tornado) – 单线程,具有asynchronousIO循环。 我们使用Tornado处理与长轮询相关的持久连接,并通过WSGI将所有基本的Web请求发送给Django。 Django ORM用于与数据库交互,尽pipe大多数SQL是手工编码的 MySQL数据库 Nginx提供静态媒体并将其他请求代理给Tornado 目前所有东西都安装在一个“Small”EC2实例上运行。 在机器之间分离服务器对性能没有明显的影响 有关服务器configuration的更多详细信息,请参阅EC2服务器规范: http : //aws.amazon.com/ec2/instance-types/ 。 注意:总而言之,这不是理想的和最可伸缩的设置,但它应该能够处理3个以上的用户! 运行顶部和查看日志显示以下内容: CPU峰值大部分归功于Tornado,每个活跃用户大约有25%的CPU使用率 低的“偷窃时间”,所以我们的CPU能力不会被EC2严重扼杀(再次) 数据库查询全部在0-200毫秒之间,当CPU没有峰值时,通常在峰值期间持续3秒或更长时间 内存使用率低,从不出现高峰 有些事情已经试图无济于事: configurationMySQL缓冲区大小,索引等。 我99%肯定这不是一个花园式的SQL /数据库优化问题 改善查询时间并以各种方式减less查询次数 将服务器放在单独的ec2实例上 多个应用程序服务器之间的代理(这显然是更大的可扩展性,但它不能解决每用户3个用户的问题) 升级EC2实例。 从“微”升级确实有帮助(由于CPU节stream问题),但只是稍微增加了我们的容量 部署在非EC2服务器(Slicehost)上 – 同样的问题 所有服务器都通过简单的testing用例单独进行了负载testing,并且都能够处理1000个同时连接
我有一个系统,有几个不同的文件和服务器连接到一个memcache服务器。 我想留在一台服务器,但保持增加memcache服务器的数量(高stream量期间)的选项。 我的想法是告诉memcache有两台服务器,而这两个url将(通过DNS)指向一台服务器。 在将来,如果我想我可以添加一个服务器和更改DNS,而无需更改许多地方的代码。 这是一个很好的做法吗? 有两个服务器连接,但它们都指向同一台服务器的性能成本? 任何其他想法如何实现Memcache容量的即时可扩展性而无需更改代码和部署?
我有一个Web服务端点,我正在build立人们将发布一个XML文件,它会真正得到冲击超过1K每秒的请求。 现在他们通过http post发送这些xml文件,但其中绝大多数会受到限制。 问题是,速度限制将由Web应用程序通过查找xml中的source_id来完成,如果超过每分钟x个请求,则不会进一步处理。 我想知道是否可以在处理的早些时候进行速率限制检查,从而保存了50K文件,将stream水线扔到我的networking服务器,并耗尽资源。 负载均衡器能否发出呼叫来validation费率使用情况? 如果这是可能的,我可以把source_id放在主机头文件中,这样即使XML文件也不必被parsing并加载到内存中。 是否有可能只看主机头,不加载整个50K的XML文件到内存? 我真的很感谢你的见解,因为这需要更多的关于整个TCP / IP协议栈的知识。
让我们考虑一下如下的情景: 一个基于LAMP堆栈并部署在共享主机上的小型networking博客。 突然它在一天之内变得stream行起来,并且每天得到百万次点击。 由于开发者没有考虑高stream量,导致服务器停机和崩溃。 什么是这种情况下的快速解决? BTW我知道云服务器我可能能够添加更多的内存或CPU,以避免像在亚马逊EC2。
我已经阅读了关于优化网站(清漆,caching…)的许多信息,所有这些看起来相当复杂。 我不知道云主机是否可以帮助我。 是否有自动缩放解决scheme? 简单是我的关键词。