电子邮件系统MI索引文件存储优化研究

2020-09-11 09:16张大伟武九馨
山西电力 2020年4期
关键词:磁盘邮件速率

张 璐,张大伟,武九馨

(国家电网有限公司信息通信分公司,北京100761)

0 引言

随着互联网的不断发展,互联网上充斥着各式各样的服务和海量数据信息,为了更好地组织和管理这些海量数据,目前已经提出了各式各样的文件系统结构。但互联网上的数据信息大多以高频率的小文件形式展示出来,且在一般用户的信息存储访问中,对小文件的存储访问较多[1]。因此,对互联网上高频率的小文件读/写性能的研究有着重要的现实意义。

1 MI模块索引文件介绍

在分布式文件系统中,对于小文件来说,由于其不利于条带化,所以一般是采用将单个文件存储在单个数据服务器上的策略。但当小文件的数量达到一定程度之后,对小文件大量的重复访问,将会给数据服务器带来性能上的负担及I/O瓶颈问题[2]。

目前流行的分布式文件系统一般采用主从式(master/slave)架构。元数据管理服务器集中管理若干数据管理服务器,并负责保存文件索引信息,为用户提供统一的文件视图;数据服务器采用传统文件系统(如EXT4),以数据文件的形式管理用户文件。

因为传统文件系统在处理大文件的访问请求时性能较高,为了提高数据服务的存储访问性能,大多数分布式文件系统都在数据服务器上采用了大数据文件的设计,如在全局文件系统等已被广泛商用的分布式文件系统中,默认数据块大小均设置成64 MB。但这种设计仅适用于大文件的流式访问需求,面对小文件访问请求,尤其是随机均匀分布的小文件访问需求,必须优化分布式文件系统设计,否则性能得不到保证。原因是传统文件系统在处理小文件或者大文件中小数据量的访问请求时,性能较低,从而导致了整个分布式文件系统性能较低[3]。

基础邮件系统分为前端服务与后端服务两部分。前端服务部分主要提供Webmail、SMTP、POP3、IMAP4等标准协议和开放接口,同时提供垃圾邮件过滤与反病毒功能;后端服务主要提供用户认证、邮件检索、存储等功能。

图1为后端服务架构图。由图1可知,后端服务架构主要包括存储邮件列表、邮件索引、附件索引等。其中:存储邮件列表包括主题、发件人、收件人、发信时间;邮件索引指向邮件文件系统中具体的邮件文件;如果邮件包含附件,则还包括附件索引信息(附件数目、名称、大小、在邮件正文中的偏移量等)。

图1后端服务架构图

2 MI索引文件数据瓶颈及优化措施

在实际开展系统运维工作过程中,索引文件数据遇到的瓶颈主要有以下两方面:一是高I/O访问性能;二是重复数据碎片。

2.1 高I/O访问性能

存储服务器系统存在着大量的I/O并发数据访问,包括写数据访问和读数据访问。针对大规模数据的存储,要快速将大数据写入系统,频繁读入系统,将大量消耗存储资源。为了满足用户实时性请求和高并发的读负载,要求底层存储结构能够随着数据读取量的增加而保持高速的I/O访问性能。

邮件系统中,MI索引文件主要以EXT4文件形式存储小文件,每个索引文件为16 kB,这就对小文件的处理性能有了很高的要求。对于邮件系统来说,本身就具备“读多写少”的特点,针对此项特征,目前的小文件处理优化方案并没有改变主从式的整体架构,需要从数据服务器优化入手,通过减少索引时间来减少数据访问时间。

根据以上综述,由于此类业务系统前端缓存作用不大,到达后台文件系统的文件访问就会呈现热点特性。因此,我们计划采用基于SSD存储的热点小文件访问优化。

2.2 重复数据碎片

重复数据删除使得文件存储碎片化,导致读取文件时I/O随机访问增多,磁盘存储系统性能下降。传统的操作系统在存储文件时,总是尽可能地在磁盘上开辟一片连续的空间写入数据。然而应用重复数据删除技术之后,大量的文件共享相同的数据块,而拥有共享数据块的文件在磁盘空间上不再是连续存储,而是散落在磁盘的各个位置上。文件在磁盘上的非连续化存储会导致数据访问时磁头的随机移动,寻址时间增长,随着重复数据和数据流并发访问的增多,I/O读操作的性能将会严重下降。因此,需要避免重复数据碎片对I/O读操作造成的影响。采用碎片整理方式使索引文件重新组合,可提高寻址时间,提高命中率,进一步提高数据读操作的I/O性能。

3 实验对比提升存储访问性能

3.1 电子邮件系统存储介质

电子邮件系统中MI索引文件模块主要以EXT4文件形式存储小文件,这就对小文件的处理性能有了很高的要求。现阶段,MI索引文件是以SAN存储形式进行文件存储,当业务量较大出现业务拥堵时,会造成获取索引文件队列堵塞,无法正常获取业务数据,导致业务中断,无法正常开展业务。

3.2 提升I/O访问性能

鉴于电子邮件系统“读多写少”特点,针对有热点的数据访问情况,本文就存储介质访问性能优化做了3组试验进行读写速率测试。

方法一:对当前单一SAN存储测试磁盘的读写速率。

方法二:将4块存储容量为50 GB的SAN存储在逻辑上进行逻辑卷管理,在逻辑上集合之后,相当于一个大硬盘,对该存储进行磁盘的读写速率测试。

方法三:将SSD存储进行条带化处理(条带化技术是自动将I/O的负载均衡分布到多个物理磁盘上),进行磁盘的读写速率测试。

基于以上3种方法进行I/O性能测试,具体测试数据如表1所示。

通过上述3种方法可以看出:方法一,使用单一SAN存储,读、写速率很快,但就现有实际情况来说无法满足日益增长的业务需求;方法二,将4块50 GB存储进行逻辑卷管理后,读、写速率反而大不如前,此方法不适用;方法三,将SAN存储换成速度较快的SSD存储,并进行条带化处理,进行连续读、写速率测试后,4块存储的I/O访问性能反而更快,并且相对速率均衡,满足邮件系统MI索引小文件连续读写的性能要求。

表1 3种方法进行I/O性能测试得到的读写数据

3.3 数据碎片整理

除以上针对I/O性能进行优化之外,日常开展运行维护检修时,定期进行索引文件碎片整理也很重要。

碎片整理是在进行长时间索引文件寻址后,数据被打乱,增长寻址时间,为提高寻址准确率,在进行检修维护时,运维人员将数据进行整理排列,按照检修计划,定期开展碎片整理工作,保证索引文件寻址的快速和准确。

4 结束语

本文从实际工作出发,在工作过程中发现电子邮件系统索引文件模块存在I/O访问性能瓶颈,对此问题进行了分析,并提出相应的解决方案,分别从I/O性能优化和数据碎片整理进行优化,并且根据试验验证得出基于SSD存储条带化处理能够大大优化存储I/O性能,为信息通信业务有序正常开展提供了有力的支撑。

猜你喜欢
磁盘邮件速率
基于James的院内邮件管理系统的实现
来自朋友的邮件
它的好 它的坏 详解动态磁盘
创建虚拟机磁盘方式的选择
解决Windows磁盘签名冲突
一封邮件引发的梅赛德斯反弹
Windows系统下动态磁盘卷的分析与研究
莲心超微粉碎提高有效成分的溶出速率
Outlook和Foxmail邮件互导