当前位置

服务器磁盘文件统计数据,准备购置高速硬盘

James Qi 在 2011年4月3日 - 17:50 提交
内容摘要: 前一阵子新换了3台服务器,都是配置的16核(4路4核)CPU、16G内存,算是很强大了,不过配置的硬盘只是2个1T普通7200转台式机硬盘,根据这些天的观察,在添加数据、更新模板的时候,用ios......

  前一阵子新换了3台服务器,都是配置的16核(4路4核)CPU、16G内存,算是很强大了,不过配置的硬盘只是2个1T普通7200转台式机硬盘,根据这些天的观察,在添加数据、更新模板的时候,用iostat查看会遭遇明显的IO瓶颈,在cpu、内存富余很多的情况下,磁盘的利用率长期100%。

  我们把MySQL和Web(包括Squid和Apache)服务的数据放在两块不同的硬盘上,先以为只是MediaWiki网站全文检索时MySQL的MyISAM数据库大文件频繁读写使硬盘应付不过来,后来根据仔细观察,发现MySQL的全文检索本身性能不好,在处理大量数据的时候容易使CPU卡住,同事调试了Sphnix来做全文检索可以轻易对付一个网站目前平均每分钟2次的搜索量。不过在Drupal网站新建全文索引表的过程中,确实还是遇到明显的硬盘瓶颈,平均每秒只能生成5条左右,当网站数据量在数十万以上时需要耗费以几十小时来记的时间,这个过程中硬盘处于繁忙状态,无法多个网站同时生成。

  后来又在MediaWiki模板更新中也感觉硬盘处理不过来,今天详细统计了目前几个主要服务(Squid, Apache, MySQL)的磁盘使用情况,列表如下:

服务器编号 服务名称 占用空间 文件数量 文件平均大小 备注说明
17 Squid 92G 10M 9.2K 数量大于Apache下静态文件,原因不明?
Apache 47G 3.6M 13K 目前全为MediaWiki网站
MySQL 105G 23K 4.6M 有其它几台服务器上的冗余数据,暂未删除
22 Squid 18G 1.5M 12K 只缓存MediaWiki网站,不缓存Drupal网站
Apache 105G 6.9M 15K 大部分MediaWiki(约92G/2.8M=13K),小部分Drupal(约13G/0.25M=51K,还有更多页面暂未生成静态缓存文件)
MySQL 43G 9.8K 4.4M 有一个暂复制到23上使用
23 Squid 7.7G 0.47M 16K  
Apache 56G 2.8M 19K 目前全为MediaWiki网站
MySQL 12G 4.6K 2.6M 有一个暂从22复制过来使用

  从上面的统计来看,Squid和Apache下存在数以百万、千万记的缓存文件,在目前的硬盘下肯定难以对付随机性很大的访问,需要用更好的专用磁盘来处理。

  上周就考虑过更换或者添加磁盘的事情,鉴于主板不直接支持SCSI、SAS磁盘以及RAID阵列,就考虑用万转的SATA磁盘或者固态硬盘,万转SATA硬盘可选的不多,主要就是WD的迅猛龙(以前的猛禽升级版),固态硬盘虽然型号多、速度快,但容量小、价格高、寿命短,主要是发烧友放在个人机器中用,我们觉得暂时还不适合用在服务器上。

  今天已经在淘宝上订货,6块WD3000HLFS(容量300G,2张单碟150G,缓存16M,传输120MB/s,读取寻道4.2ms,写入寻道4.7ms,平均无故障140万小时),每块430元,价格共2580元,准备在3台服务器中每台添加2块这种每分钟10000转的硬盘,让服务器的整体性能有个大的提高。以后如果还需要更多的硬盘还可以继续添加。

  不过对于Squid、Apache和MySQL这3种服务如何放置在2块新硬盘以及2块以前的7200转硬盘上,还没有完全确定,初步的想法是:Squid、系统及备份、Apache、MySQL的数据各放置在一块硬盘上,前面两个放在7200转上,后面两个放在10000转上,具体还需要与同事以及一些朋友交流后再定。看到这里的网友如果有好的建议欢迎留言,谢谢!

评论

-- 发自IP地址: 192.168.0.133 (位置 | 谁是)

访问最多的应该是MySQL文件,我们已经将MyISAM的key buffer加到到4G了,但肯定还是有一些需要访问磁盘的。另外,上面写的Squid, Apache下的小文件数量太多、占用空间也很大,我们16G的内存也难以满足。后面除了增加高速硬盘外,也在想其他办法,确实要设法避免io瓶颈。谢谢关注!

James Qi / 祁劲松

-- 发自IP地址: 59.173.8.114 (位置 | 谁是)

我们以前就是这样做过,MySQL, Squid, Web都放置在不同的机器上,但其中任何一个环节出现问题或者瓶颈,也都影响最终的用户访问。后来改为根据不同的网站(我们有比较多的网站)进行分割,而某个网站的不同功能(MySQL, Squid, Web等)进行合并到一台配置好的服务器上。
在访问量不大、数据量不大、功能不复杂的情况下,哪一种方式都可以,而出现密集访问大数量网站的时候,就都会遇到瓶颈,正在设法通过硬件、软件的办法来解决。

James Qi / 祁劲松

-- 发自IP地址: 59.173.8.114 (位置 | 谁是)

前几年做mediawiki的时候,很早就有人给我们推荐过nginx,但我们这边人手有限,忙于现在的各种事情,没有测试、实施,现在用drupal其实也可以搭配nginx,但暂时也没有时间精力顾得过来。谢谢这位朋友的留言建议,后面我们再来安排。

James Qi / 祁劲松

-- 发自IP地址: 110.72.137.43 (位置 | 谁是)

我一直有关注您的博客。。我发现您的多数网站,都是以大量的数据来获取流量,因此需要很好的服务器,以及解决其中的技术问题。如果不想被这些技术问题烦扰,倒是可以考虑不做那么庞大的数据库内容,转而提供优质的内容,以较小的数据来获取更多的流量。很多个人站长,他们的数据不过千条左右,都能获取不错的流量及收入。之前的留言我有提过的,如果您做英文产品的介绍和评论相关的网站,收入应该很客观,做几千个网页就ok, 虽然你邮编库的数据有几十万,但搜索的人少,不如做热门产品搜索的人多。。

-- 发自IP地址: 59.173.8.114 (位置 | 谁是)

谢谢关注及留言。您说的那种方式与我现在的方式是两种做法,就我个人而言比较喜欢做数量多、让很多人来浏览、同时也能有不错收入的网站,我不太喜欢只围绕收入和产品来做网站。
各人的看法和选择不同,都有自己的道理,呵呵。
我们以前也做过数量少而内容精的网站,也会遇到一些发展中的问题。现在是希望把网页数量做庞大,而每个页面也都把内容设法尽量展示得好一些,这个过程也有很多问题需要解决。
多多交流!

James Qi / 祁劲松