Tag Archives: Web

浏览器针对单服务器连接数问题

在修改后的 《闲谈 Web 图片服务器》 一文中也提及了”IE 浏览器的连接数问题”,这也是个有趣的话题。值得补充记录一下。

Browser_connections.png

这个数据来自 Roundup on Parallel Connections ,这是一篇好贴,里面的每个线索几乎都值得一读(Opera 9 的连接数我做了修改)。以前经常看到某些优化 IE 或者优化 Firefox 的插件或工具,其工作原理也不过是针对这些相关的网络参数合理组合罢了。 好多朋友说 Opera 快,其实可能就是压缩和连接数两个做的更适合现在的网络吧。我不太相信内置解析器什么的真能比其它浏览器有什么质的领先。

其中 Firefox 3 的连接数目前还处于不确定中。对于网站维护人员,这是个非常值得重视的信息,我们总说蝴蝶效应,这恐怕就是最直接的例子了。一旦 IE 8 确定了新的默认连接数,并且短期内大量用户下载,有些网站如果不做调整的话,很可能会被击垮。

EOF

此文作者:, 位于 Web 分类 标签: , on .
转载须以超链接形式标明文章原始出处和作者信息及版权声明.

Squid 与 RAID – 对图片服务器一文的补充

对这篇《闲谈 Web 图片服务器》做了补充修正之后,在本期的《程序员》杂志上发表了。不过有朋友提出了一个问题:为什么说 Squid 不适合用 RAID 5 ?

大家都知道 RAID 在写性能上因为存在校验,这句话的主要意思还是 Squid Cache 盘/ Cache 目录的问题(而不是放置图片的 RAID 5 磁盘),在 Squid 满了的情况下,如果占用 Cache 盘,这个盘如果是 RAID 5 ,那肯定性能糟糕的一塌糊涂。另外一个原因是这部分其实不需要 RAID 来提高可靠性的,坏了完全可以 重新构建即可。

可惜我手边没有 Squid 服务器,要不倒是可以用数据来说话的。

参考文档: ()、 (),这两个参考信息其实比较旧的了

EOF

此文作者:, 位于 Web 分类 标签: , , on .
转载须以超链接形式标明文章原始出处和作者信息及版权声明.

闲谈 Web 图片服务器

现在很多中小网站(尤其是 Web 2.0 站点) 都允许用户上传图片,如果前期没有很好的规划,那么随着图片文件的增多,无论是管理还是性能上都带来很多问题。就自己的一点理解,抛砖引玉,以期能引出更具价值的信息。

事关图片的存储

把图片存储到什么介质上? 如果有足够的资金购买专用的图片服务器硬件或者 NAS 设备,那么简单的很;如果有能力自己开发单独存储图片的文件系统,那么也不用接着往下看了。

如果上述条件不具备,只想在普通的硬盘上存储,首先还是要考虑一下物理硬盘的实际处理能力。是 7200 转的还是 15000 转的,实际表现差别就很大。是选择 ReiserFS 还是 Ext3 ,怎么也要测试一下吧? 创建文件系统的时候 Inode 问题也要加以考虑,选择合适大小的 inode size ,在空间和速度上做取舍,同时防患于未然,注意单个文件系统下文件个数别达到极限。

独立,独立的服务器

无论从管理上,还是从性能上看,只要有可能,尽量部署独立的图片服务器。这几乎成为常识了(不过在我做过面向 Web 的项目之前就这个问题也被人笑话过)。具备独立的图片服务器或者服务器集群后,在 Web 服务器上就可以有针对性的进行配置优化。比如采用传说中更有效率的 Lighttpd

如果不想在几台机器间同步所有图片,只用 NFS 模式共享一下即可。注意软、硬连接可能带来的问题,以及 NFS 特定的传输速度。

独立,独立的域名

如果大部分 Web 页面必须要载入很多图片,那么需要注意 IE 浏览器的连接数问题(参见对该问题的测试)。

前几天有个朋友在线上问我,”一些大网站,图片服务器为什么都用另外一个域名? 比如yahoo.com 图片服务器用了 yimg.com 的域名?” ,粗糙一点的答案:除了管理方便,便于CDN 同步处理,上面说的 IE 连接数限制也是个考虑因素吧(其他原因我也不知,有请 Yahoo!的同学发言) 【还有一个我没考虑到的是 Cookie 的因素,参加楼下高春辉的留言】

雅虎 Web 优化 14 条

关于雅虎 YSlow 工具倡导的 优化 14 条规则,建议每个 Web 维护人员必须倒背如流,当然也应该辩证来看–介绍这 14 条规则的页面本身也只能得到 70 多分…其中的第九条和上面说的独立域名之间多少有些矛盾。实际情况要根据自己的 Benchmark 与具体需求而确定了。

有效利用客户端 Cache

很多网站的 UI 设计人员为了达到某些视觉效果,会在一些用户需要频繁访问的页面模块上应用大量的图片。这样的情况,研究表明,对于用户粘度比较高的站点, 在Web 服务器上对这一类对象设置 Expires Header 就是十分有必要的,大量带宽就这么节省下来,费用也节省了下来。顺便说一下,对于验证码这样的东西,要加个简单的规则过滤掉。

服务器端的 Cache

在国内,CDN 也是有钱才能玩得起。而类似 Amazon S3 这样的一揽子存储服务,国内还没有出现。所以,充分利用服务器端的 Cache 也是有必要的。Squid 作为反向代理服务器,缓冲图片效果应该说尚可,新浪技术团队贡献的 Ncache 据评测,效果更佳。

服务器端做Cache的好处是显而易见的,一个数据对象的请求时间会控制在 100ms 以内,否则的话,至少要几百个 ms 甚至更长。

高解析图片问题

如果网站存在大量高解析度的图片,那么有必要考虑部署 IIPImage 或者类似的软件。

运营问题

很多比较有规模的网站对于用户上传的图片不做任何处理,结果页面上还能看到很多 BMP 格式的图片(个人觉得任何网站出现 BMP 格式的图片都是可耻的)…这完全是运营上的策略之误了。找个程序员投入一点时间写个图片处理模块,对那些”截屏”得来的图片做个转换,投入成本可能远比存储上的开销小,而用户再访问该图片,质量未必能有什么损失,浏览速度无疑好多了。哪种处理方式更让人接受,不言而喻。

EOF

图片处理工具的选择

可能大多数网站都是选择 ImageMagick 做为基础库,不过这里也有一篇 GraphicsMagick 1.2 vs ImageMagick 6.3.6 Benchmark Report,如果图片处理量巨大,性能问题又怎能不考虑?

Lighttpd 的 ModCache 模块非常值得推荐。

Updated: 对于创业团队来说,推荐又拍云服务,用了都说好。

不要在国内注册域名

最近一次域名转移的经历实在把我恶心透了。如果有可能,千万不要再在国内注册域名了。

1) 费用贵! 在国内注册一个域名起码要 100 多 RMB,国外很多注册商都不超过 10 美元,现在人民币升值,美元贬值呢,而且大多都有折扣代码,还要更便宜。国内如果通过代理走,有的时候是能便宜一点的。但是有后顾之忧–我在后面会写出来. 有得朋友因为没有信用卡而不能境外支付,那就办理一个好啦,现在信用卡发放就和卖白菜差不多。

2) 服务差 先是技术服务差,对比一下国外的域名服务,国内的限制非常多。管理面板里的功能少的可怜。其次是售后服务差,经常在规则里下拌儿。很多域名注册商都没有正规的呼叫中心,电话经常打不通,打通了等半天,好不容易和人接上话后,敷衍你几句了事。

3) 不安全 去年国内的几个域名注册商就出过好几次技术故障,还有些朋友时不时的域名被劫持一下。另外,国内的”非理性”因素太多,说不上什么时候你的域名可能被强制停掉也说不定。

虽然之前,我曾经推荐过几位朋友在国内注册算了,”省事”,现在看起来,我错了。

EOF