2011-11-30 00:00:00
来 源
中存储
磁盘存储
不少项目管理员抱怨存储设备的性能不佳。其实根据笔者的了解,大部分项目的症结在于设计。存储项目的设计对于系统性能的影响很大。在实际工作中,我们给用户评估优化方案,往

如何考虑峰值对系统性能的影响?

在马路上,上班和下班的时候(一天大概3到4个小时左右)特别的堵。这是不是说政府就要扩大道路了?显然不是。政府并不会为这些偶然性的事件投入巨额的资金。存储系统每天或者每个月也会有特别忙的一段时间。如每天进行数据备份或者每个星期执行一些批量作业时,此时存储系统的使用就会达到峰值。我们在存储系统设计时,虽然不用将这些特殊的情况考虑进去,但是却需要关注,如何将这些特殊的作业对用户的影响降低到最地的程度。如在用户不繁忙的时候,执行这些特殊的作业,等等。

首先需要考虑执行的时机。对于大部分企业来说,上午8点到晚上8点,是作业的高峰时期(娱乐企业除外)。如果这些企业部署存储系统,那么对于数据的备份或者一些大批量的任务(如数据的导入导出)就要有针对性的避开这段时间。如可以在晚上12点之后对数据进行备份等等。

其次是考虑是否要启用并发访问机制。通常情况下,当有更高的并发处理能力的时候, 存储系统会获得更高的吞吐量。但是,并发访问,也意味了相关的资源(如存储设备的带宽)会成倍的使用。如果具有足够的资源,并发访问固然可以提高数据处理的能力。但是当资源不足时,这突然而到的信息流量很可能导致服务器崩溃。一般来说,笔者会建议使用异步I/O来获取更高的并发处理能力,而且这种方式可以有效避免上面谈到的这个问题。因为对于带宽来说,如果采取单线程的应用几乎都不能够有效的利用四块硬盘以上所带来的收益(此时硬盘的I/O没有没最大程度的利用)。此时采用异步的I/O往往是一个不错的选择。

第三,需要解决怎么样去操作的问题。条条道路同罗马。同一个任务,采取不同的方式,虽然得到的结果可能是相同的,但是由于中间过程不同,其时间或者对于性能的影响是不同的。在给客户解释这个问题时,笔者往往会以一个出租车的案例给客户做比喻。一个人打出租车,赶时间。这个出租车司机也比较有意思,问这个人:“你要走最近的路,还是要走时间最短的路?”有些情况下,路程虽然短,但并不表示时间少。有时候,大家都走近的路。反而容易导致拥塞,从而可能要花更多的时间到目的地。所以项目管理员来系统设计时,也要考虑到峰值所带来的拥塞问题。通常情况下,除了选择合适的时间之外,采取正确的方式,也能够在一定程度上降低拥塞问题,如选择一个不拥塞、但是相对较远的路,反而可能在更多的时间内到达目的地。

顺序访问与随机访问的差异化设计

存储系统的访问可以分为两种情况:顺序访问和随机访问。如果从系统调优的角度看,这两种访问方式对于系统的设计要求是不同的。在不考虑其他因素的情况下,增加带宽对顺序访问来说,能够比较明显的提高其访问性能。这主要是因为存储系统在顺序I/O方面更加有效率。而对于随机访问的方式来说,效果不会很明显。如果要提高随机访问的效率,那么就绪要改善存储设备的吞吐量以及更快的响应时间。如此的话,就会缩短用户所等待的时间。

另外这里还需要特别主要一点,读作业与写作业对于资源消耗的差异性。从理论上来将,写作业比读作业更加消耗系统的资源。为了保障数据的有效性,通常存储系统会对写入的数据采用一定的校验机制,如需要同时将冗余的信息写入到磁盘中等等。同时由于读的作业没有数据校验,为此读比写作业更加的节省资源。

不过这是理论上的分析,实际情况与这个有一定的差异。因为在写数据的时候,一般都不是直接写入到硬盘,而是写入到缓存。然后系统每隔一段时间再将这个数据写入到存储截至中。由于缓存的速度要比硬盘快的多,为此写作业的效率反而比读作业要高许多。读作业从另一方面来说,可能命中缓存(从缓存中读数据),也可能不命中缓存(直接从硬盘中读数据)。而对大部分随机的工作情形来说,读比写会有更高的响应时间,因为数据还是需要从磁盘里面抓取(随机访问的缓存命中率普遍比较低)。如果要达到比较高的随机读取吞吐量就需要更好的系统设计。如利用块以上的硬盘来设计磁盘阵列或者提高数据缓存的空间等等。

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。