我有一个外部两托架驱动器外壳(OWC Mercury Elite-AL Pro)通过 FireWire 800 连接到 Mac Mini(我的家庭媒体服务器)。我通过有线千兆位将媒体流式传输到家中的其他计算机。我有两个 1.5 TB 驱动器,我现在正在独立使用。媒体在一个上,我在晚上将文件镜像到另一个驱动器作为备份。但是当我接近填充驱动器时,我想将这两个驱动器放在一起,总共给我大约 3 TB,然后再购买另一个驱动器进行备份。外部机箱支持 RAID 0 和 JBOD,但我不清楚在这种情况下哪个更好。
RAID 0 是否会提供优于 JBOD 的流视频性能改进(可能同时提供多个流?
每个因素如何影响驱动器的 MTBF?
一般来说,我应该选择RAID 0、JBOD,还是保持它们独立?
我目前在 Centos 6.6 操作系统上运行 nginx/1.0.15。服务器具有以下规格:
问题
服务器有 1Gbit/s 的连接,但是它在 400-500 mbit/s 后达到顶峰和瓶颈。服务在大约 100 个连接时开始下降......并且服务器的速度急剧下降(尽管仍有 50% 的带宽可用)
NGINX 服务器严格用于提供静态 .mp4 文件。每个文件通常为 400-1200MB(平均 700MB)
我尝试了许多配置,几乎所有配置都给了我相同的结果..我非常沮丧..
服务器负载也永远不会超过 0.3。
我的配置中是否有任何明显错误或误导?任何事情都可能有所帮助。
配置
/etc/nginx/nginx.conf
user nginx;
worker_processes 9;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 51200;
use epoll;
}
worker_rlimit_nofile 600000;
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" …Run Code Online (Sandbox Code Playgroud) 如何在我们公司的网络上阻止 Spotify?不幸的是,它正在扼杀我们的带宽,而且影响非常严重。
我有一个 nginx 代理请求的图像上传服务。一切都很好。但有时,服务器已经拥有用户正在上传的图像。所以,我想早点回应并关闭连接。
在读取标头并与服务器核对后,我调用 Node 的response.end([data][, encoding][, callback])。
Nginx barfs 并返回空白响应:
[error] 3831#0: *12879 readv() failed (104: Connection reset by peer) while reading upstream
Run Code Online (Sandbox Code Playgroud)
我的猜测是 nginx 假设上游服务器发生了一些不好的事情,立即断开客户端连接而不发送上游服务器的响应。
有谁知道当 nginx 是代理时如何正确响应和关闭客户端的连接?我知道这是可能的:请参阅:在请求进入之前发送响应
这是nginx conf文件:
worker_processes 8; # the number of processors
worker_rlimit_nofile 128; # each connection needs 2 file handles
events {
worker_connections 128; # two connections per end-user connection (proxy)
multi_accept on;
use kqueue;
}
http {
sendfile on;
tcp_nopush on; # attempt to send HTTP response head …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用<video>标签功能。我用ffmpeg以下方式编码了我的文件:
ffmpeg -i 1.vob -f ogg -vcodec libtheora -b 800k -g 300 -acodec libvorbis -ab 128k out.ogv
我把这段文字放在index.html:
<video src="out.ogv" controls></video>
我已将此文件加载到nginx文档根目录并index.html在 Firefox 3.5 中打开。我看到了第一帧,看到了控件,但无法播放视频。即使在我的服务器上,这个视频也能很好地播放。
我应该如何编码视频以在浏览器中查看?
更新:
如果我从中间开始播放视频,一切正常。
H264 不适用于 lighttpd 1.5,但可以使用 1.4 有什么建议吗?
我需要支持以下格式的音频流设置:WMA、AAC 和 MP3。这些流必须与 Winamp 等桌面播放器兼容。Win Media Player 和 Flash Player 以及 iPhone、Android 等设备。
我正在寻找能够满足所有这些要求的单一服务器解决方案和单一编码器解决方案。有任何想法吗?
我们有一个服务器,它接收一些数据,充当 TCP 客户端,以某种方式处理它,并将处理后的数据提供给客户端,充当 TCP 服务器。它还将此数据存储在磁盘上,并可以从文件而不是实时流中提供服务。
问题是此服务必须在 24x7 模式下可用,不允许中断。现在它是通过有两台服务器来完成的,一台作为热备份 - 客户端保持与两台服务器的连接,如果主服务器发生问题,他们只需切换到备份。虽然这个解决方案已经运行了大约 15 年,但它有点不方便,并且在客户端上放置了很多故障转移逻辑。
最近人们开始谈论使用集群来确保该服务的可用性,但无论我多么努力地搜索,我都找不到任何允许透明 TCP 连接故障转移的集群解决方案,因此没有人会注意到服务器发生了一些事情. 周围有一些研究论文,但我找不到任何可行的实现。这是我认为它应该如何工作:
两个服务器都通过 TCP 接收数据。理想情况下,它应该看起来像与“外部”世界的单一连接,以节省带宽,更重要的是,确保两台服务器接收相同的数据流。
当客户端连接到集群 IP 时,它在单个连接中接收处理过的数据,但是两个服务器都应该看到这个连接并提供数据,只是只有一个流实际到达客户端,备份一个去/dev/null,可以这么说。
当服务器出现故障时(它在一段时间内不传输任何数据,比如 5 秒),客户端应该继续在同一个连接中接收同一个流。它需要发生得非常快,所以整体流延迟不超过大约 10 秒。
在这里,可靠性是最重要的。快速故障转移是下一个。开源 Linux 解决方案是首选,但如果存在商业和/或非 Linux 近乎完美的解决方案,我也想了解它们。施加大量限制或需要修改服务器应用软件的解决方案也是完全可以接受的。
Solaris 中是否有读取文件的命令,当它结束时以tail 的方式流式传输?我需要从头读取文件,它是一个二进制文件。
有关 Solaris 和 Linux 的信息将不胜感激。
我们的网站有许多大型 PDF 和 MP3 文件,我们希望将它们作为静态文件缓存在 Varnish 中。目前我们没有做太多特别的事情 - 只需删除vcl_recv和set resetp.ttl = 100w;中的 cookie vcl_fetch。
问题似乎是当这些文件之一被请求时(可能是旧浏览器)并且它不在 Varnish 缓存中。Varnish 从后端下载文件时会出现延迟。我的理解是在数据完全加载之前它不会开始交付给客户端。这可能需要 20 秒左右,有时 Adobe Acrobat 或 MP3 插件会混淆。
有没有办法既pass将内容直接而下载并为下一个匹配的客户端请求,将它保存在缓存中?