性能数据不稳定因素

http://blog.csdn.net/cyh201201/article/details/51821541

性能数据不稳定因素

Ceph 作为软件定义存储的代表之一,最近几年其发展势头很猛,也出现了不少公司在测试和生产系统中使用 Ceph 的案例,尽管与此同时许多人对它的抱怨也一直存在。特别是进行性能测试。我们在进行性能测试时经常会发现性能数据不稳定的现象,尤其是服务器使用的是带有cache的raid卡。比如在使用30个7.2K SATA盘搭建的ONEStor ceph集群 (使用HP Smart Array P840raid卡,cache缓存大小4G)测试4k randwrite时,单个客户端iops可以达到4k以上,低的时候单个客户端iops基本在1k左右,为此,我们就去寻找导致这种现象出现的主要原因。


1、 当性能数据达不到预期,而且数据跳到比较大的时候。首先要考虑的就是raid卡和硬盘是否有故障。一般服务器都有查看自己硬件状态的页面,首先要确定硬件都是完好的,我们才可以继续玩下去。另外,我们可以用ceph osd perf查看集群中是否有某些硬盘比较不给力。通过osd perf可以提供磁盘latency的状况,同时在运维过程中也可以作为监控的一个重要指标。

正常性能测试时使用osd perf查看的结果应该不会有差别:

如果发现某个硬盘或者某个节点下的所有硬盘延时很高,就需要考虑将该OSD剔除出集群。

2、 排除了硬件的故障以后,我们再来看看其他的影响。测试过程中发现在使用fio 4k randwrite进行性能测试时,使用iostat 查看硬盘使用情况,却时不时会有大量读存在,而且出现读的时候硬盘的使用率基本到100%。如果你的集群刚做完数据恢复,或者在虚拟文件系统中的/proc/sys/vm/drop_caches写入2或3来清除缓存,下一次进行randwrite性能测试时该现象是必现的。比如用iostat看到的:


那问题就好找了,原因就基本锁定在了drop_caches时清除的inodes上,首先来了解一下inodes。

       我们知道使用free 命令可以查看到内存的使用情况,包括了buffer和cache。 Linux内核会将它最近访问过的文件页面缓存在内存中一段时间,这个文件缓存被称为pagecache。

inode是linux/unix操作系统中的一种数据结构,包含了各文件相关的一些重要信息。在创建文件系统时,就会同时创建大量的inode。一般inode表会占用文件系统磁盘空间的1%。

理解inode,要从文件储存说起:

文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。

文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。,为了加快对索引节点的索引,linux又引入了inode缓冲区。就是把从硬盘读取到的inodes信息保存在缓存中。

我们可以用slabtop工具查看缓存中inodes的使用情况。内核的模块在分配资源的时候,为了提高效率和资源的利用率,都是透过slab来分配的。我们可以使用slabtop命令查看slab内存分配机制。这个应用能够显示缓存分配器是如何管理Linux内核中缓存的不同类型的对象。这个命令类似于top命令,区别是它的重点是实时显示内核slab缓存信息,例如:


如果看到的xfs_inode和radix_tree_node使用的太多或者刚被清除,这时候就要特别注意inodes的影响了。

如何判断是否有inodes的影响?在进行性能测试过程中尽量使用iostat 查看硬盘的使用情况。如果在进行随机写性能测试时,随机写性能比较低。可以使用iostat –x 1 查看硬盘信息,如果硬盘的util很高,同时又有大量的读存在,这时候基本说明系统正在从硬盘读取大量的inodes,硬盘资源很大部分被读inodes给占用了。

当然,触发它进行读取inodes的原因有很多:

1、使用了drop_caches的方式释放了inodes和dentry。就是在/proc/sys/vm/drop_caches里写入2或者3 都会drop inodes和dentry。

2、有过其他大量的读写操作,比如增删过硬盘、主机等只要有过大量数据恢复,数据恢复之后再进行性能测试就会触发需要重新读inodes。这时性能数据会很长时间维持在很低的状态,因为从缓存读inodes的命中率很低,甚至连续写几个小时或更长的时候都会性能很低。

3、内存使用太多。如果slab cache占用过多属于正常问题,并且当内存到达系统最低空闲内存限制的话,会自动触发kswapd进程来回收内存。

从测试的角度来看,目前性能测试数据乎高乎低基本原因就是读取inodes造成 的。(不排除还有其他原因),要让测试随机写时,尽量高的提升从缓存读取inodes的命中率,目前有如下方法:

1、 fio测试时尽量使用小块进行测试,目前来看如果使用100G的块,就不太受inodes的影响,性能数据比较高

2、 尽量不使用做过异常测试的集群进行性能测试

3、 随机写性能测试时使用iostat查看硬盘状态,如果此时有大量读,尽量让测试时间长一点 ,多写一会后停止fio后再重新测试。直到基本不出现读时再记录测试结果

4、 在/etc/sysctl.conf内核参数文件中配置

vm.vfs_cache_pressure = 50

该配置表示内核回收用于directory和inode cache内存的倾向;缺省值100表示内核将根据pagecache和swapcache,把directory和inode cache保持在一个合理的百分比;降低该值低于100,将导致内核倾向于保留directory和inode cache;增加该值超过100,将导致内核倾向于回收directory和inode cache。

5、 目前个人认为在 ceph代码和linux系统配置上这一块应该还存在很大的优化空间,需要具体分析其它提升方法

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据中心机房的规划设计是一个复杂且系统的工程,涉及多个方面的考虑。以下是一个全面的数据中心机房规划设计解决方案,包括需求分析、场地选择与规划、结构设计、电气与能源供应、冷却措施、机架配置、安全防护以及电力供应等方面的内容。 一、需求分析 在规划阶段,需要明确数据中心机房的需求,包括数据存储和处理的规模、数据安全和备份的要求、数据中心的可用性和可扩展性,以及数据中心的能源效率和可持续性等方面的考虑。 二、场地选择与规划 选址因素:机房的选址应考虑地质条件、周边环境、交通状况、电力供应等因素。选择靠近用户和主要业务区域的地理位置,可以降低网络延迟,提高数据传输速度。同时,确保机房处于一个安全、稳定的环境,远离潜在的灾害风险和不利的气候条件。 场地规划:包括数据中心的总平面布局、建筑结构、电力供应、空调系统、网络通信等方面的规划。机房的布局应合理利用空间,确保设备的安全和运行效率。 三、结构设计 稳定性与承重能力:机房的结构设计应考虑建筑结构的稳定性、承重能力、防火性能因素,确保机房能够承受设备重量和运行时产生的震动。 设备布局与扩展性:在结构设计时,应考虑设备布局的合理性和扩展性,以及人员出入和设备维护的便利性。 四、电气与能源供应 供电系统:机房的电气系统应包括供电电源、配电系统、UPS系统等,以确保数据中心的稳定供电。机房应具备两个独立的电力线路,以防止单点故障。 能源效率:在能源供应方面,应考虑数据中心能源效率的问题,采用合理的供电方式和节能措施,以降低能耗,提高能效。 五、冷却措施 根据机房的实际情况,可以选择合适的冷却措施,如机械制冷空调、水冷机组、间接空气冷却、自然空气冷却、绝热冷却等,以实现数据中心设施更低的PUE目标。 六、机架配置 机架的配置是机房空间利用的关键。需要了解机架的尺寸和数量,合理摆放机架,确保设备之间有足够的空间和通风。传统的IT机架尺寸是600*1000mm,一个100平米的机房空间可以容纳大约50个机架。 七、安全防护 机房的安全至关重要,需要采取一系列安全防护措施,如设置门禁系统、安装摄像头和监控设备、配备消防设施等,以确保机房的安全稳定运行。 综上所述,数据中心机房的规划设计是一个系统工程,需要综合考虑多个方面的因素。通过科学的规划和设计,可以确保机房的安全、高效、稳定运行,满足业务需求。
数据中心机房的规划设计是一个复杂且系统的工程,涉及多个方面的考虑。以下是一个全面的数据中心机房规划设计解决方案,包括需求分析、场地选择与规划、结构设计、电气与能源供应、冷却措施、机架配置、安全防护以及电力供应等方面的内容。 一、需求分析 在规划阶段,需要明确数据中心机房的需求,包括数据存储和处理的规模、数据安全和备份的要求、数据中心的可用性和可扩展性,以及数据中心的能源效率和可持续性等方面的考虑。 二、场地选择与规划 选址因素:机房的选址应考虑地质条件、周边环境、交通状况、电力供应等因素。选择靠近用户和主要业务区域的地理位置,可以降低网络延迟,提高数据传输速度。同时,确保机房处于一个安全、稳定的环境,远离潜在的灾害风险和不利的气候条件。 场地规划:包括数据中心的总平面布局、建筑结构、电力供应、空调系统、网络通信等方面的规划。机房的布局应合理利用空间,确保设备的安全和运行效率。 三、结构设计 稳定性与承重能力:机房的结构设计应考虑建筑结构的稳定性、承重能力、防火性能因素,确保机房能够承受设备重量和运行时产生的震动。 设备布局与扩展性:在结构设计时,应考虑设备布局的合理性和扩展性,以及人员出入和设备维护的便利性。 四、电气与能源供应 供电系统:机房的电气系统应包括供电电源、配电系统、UPS系统等,以确保数据中心的稳定供电。机房应具备两个独立的电力线路,以防止单点故障。 能源效率:在能源供应方面,应考虑数据中心能源效率的问题,采用合理的供电方式和节能措施,以降低能耗,提高能效。 五、冷却措施 根据机房的实际情况,可以选择合适的冷却措施,如机械制冷空调、水冷机组、间接空气冷却、自然空气冷却、绝热冷却等,以实现数据中心设施更低的PUE目标。 六、机架配置 机架的配置是机房空间利用的关键。需要了解机架的尺寸和数量,合理摆放机架,确保设备之间有足够的空间和通风。传统的IT机架尺寸是600*1000mm,一个100平米的机房空间可以容纳大约50个机架。 七、安全防护 机房的安全至关重要,需要采取一系列安全防护措施,如设置门禁系统、安装摄像头和监控设备、配备消防设施等,以确保机房的安全稳定运行。 综上所述,数据中心机房的规划设计是一个系统工程,需要综合考虑多个方面的因素。通过科学的规划和设计,可以确保机房的安全、高效、稳定运行,满足业务需求。
数据中心机房的规划设计是一个复杂且系统的工程,涉及多个方面的考虑。以下是一个全面的数据中心机房规划设计解决方案,包括需求分析、场地选择与规划、结构设计、电气与能源供应、冷却措施、机架配置、安全防护以及电力供应等方面的内容。 一、需求分析 在规划阶段,需要明确数据中心机房的需求,包括数据存储和处理的规模、数据安全和备份的要求、数据中心的可用性和可扩展性,以及数据中心的能源效率和可持续性等方面的考虑。 二、场地选择与规划 选址因素:机房的选址应考虑地质条件、周边环境、交通状况、电力供应等因素。选择靠近用户和主要业务区域的地理位置,可以降低网络延迟,提高数据传输速度。同时,确保机房处于一个安全、稳定的环境,远离潜在的灾害风险和不利的气候条件。 场地规划:包括数据中心的总平面布局、建筑结构、电力供应、空调系统、网络通信等方面的规划。机房的布局应合理利用空间,确保设备的安全和运行效率。 三、结构设计 稳定性与承重能力:机房的结构设计应考虑建筑结构的稳定性、承重能力、防火性能因素,确保机房能够承受设备重量和运行时产生的震动。 设备布局与扩展性:在结构设计时,应考虑设备布局的合理性和扩展性,以及人员出入和设备维护的便利性。 四、电气与能源供应 供电系统:机房的电气系统应包括供电电源、配电系统、UPS系统等,以确保数据中心的稳定供电。机房应具备两个独立的电力线路,以防止单点故障。 能源效率:在能源供应方面,应考虑数据中心能源效率的问题,采用合理的供电方式和节能措施,以降低能耗,提高能效。 五、冷却措施 根据机房的实际情况,可以选择合适的冷却措施,如机械制冷空调、水冷机组、间接空气冷却、自然空气冷却、绝热冷却等,以实现数据中心设施更低的PUE目标。 六、机架配置 机架的配置是机房空间利用的关键。需要了解机架的尺寸和数量,合理摆放机架,确保设备之间有足够的空间和通风。传统的IT机架尺寸是600*1000mm,一个100平米的机房空间可以容纳大约50个机架。 七、安全防护 机房的安全至关重要,需要采取一系列安全防护措施,如设置门禁系统、安装摄像头和监控设备、配备消防设施等,以确保机房的安全稳定运行。 综上所述,数据中心机房的规划设计是一个系统工程,需要综合考虑多个方面的因素。通过科学的规划和设计,可以确保机房的安全、高效、稳定运行,满足业务需求。
### 回答1: 要提高空间数据存储的性能,可以考虑以下几个方面: 1. 选择合适的存储介质和存储系统。不同的存储介质(如磁盘、固态硬盘等)和存储系统(如本地存储、云存储等)具有不同的写速度、容量和稳定性等特点,需要根据具体需求选择适合的存储方式。 2. 使用数据压缩和索引技术。数据压缩可以减少存储空间,提高数据写速度;索引技术可以加速数据查询和检索,提高数据访问效率。 3. 优化数据结构和算法。对于一些需要频繁访问和处理的空间数据,可以使用合适的数据结构和算法进行优化,提高数据的访问速度和处理效率。 4. 使用分布式存储和并行计算技术。将数据分散存储在多台计算机中,可以充分利用计算机集群的计算和存储资源,提高数据处理和存储的并发性和效率。 5. 定期清理和维护数据存储系统。定期清理无用数据、优化存储空间分配和整理碎片等操作,可以提高存储系统的稳定性和性能。 ### 回答2: 空间数据存储是指在计算机系统中存储和管理各种空间数据的过程。提高性能是指提升存储系统的写速度、数据处理能力和数据可靠性等方面的能力。 要提高空间数据存储的性能,可以从以下几个方面入手: 1. 数据压缩和编码:通过使用压缩算法和数据编码技术,可以减少空间数据占用的存储空间,从而提高存储效率和写速度。 2. 数据分区和索引:将空间数据划分为多个区域,并建立相应的索引结构,可以提高数据访问的效率和速度。 3. 存储结构的优化:使用适当的存储结构,如B树、哈希表等,可以提高数据的查找和访问性能。 4. 缓存和预技术:通过合理设置缓存策略和预算法,可以减少磁盘IO操作,提高数据取的速度和效率。 5. 并行处理和分布式存储:通过使用并行处理和分布式存储技术,可以提高系统的数据处理能力和吞吐量,从而提高整个存储系统的性能。 6. 数据备份和容错机制:建立合理的数据备份和容错机制,可以保证数据的可靠性和可用性,从而提升存储系统的稳定性和性能。 总之,提高空间数据存储的性能需要综合考虑多个因素,包括数据压缩和编码、数据分区和索引、存储结构的优化、缓存和预技术、并行处理和分布式存储以及数据备份和容错机制等,通过合理的技术选择和优化配置,可以有效地提高存储系统的性能。 ### 回答3: 空间数据存储的性能提高可以从以下几个方面进行考虑和实施: 1. 硬件设备优化:选择高性能的存储设备,例如固态硬盘(SSD)等,提高数据写速度和响应时间;增加存储设备的缓存容量,减少对磁盘的频繁访问。 2. 数据结构优化:通过使用合适的数据结构来存储空间数据,如R树、四叉树等,可以提高数据的查询和检索效率。 3. 数据压缩与索引:对存储的空间数据进行压缩可以减少存储空间的占用,提高数据写效率;同时使用适当的索引结构,例如KD树、B树等,可以加速对数据的查询操作。 4. 并行处理与分布式存储:利用并行计算和分布式存储技术,在多台计算机或节点上进行数据存储和计算,提高存储系统的整体性能和容量。 5. 缓存与预:合理利用缓存机制,将热点数据预先加载到内存中,减少磁盘IO的次数和延迟;同时进行数据取,提前将可能需要的数据加载到缓存中,减少取时间。 6. 数据分区与负载均衡:将存储数据进行分区,使每个分区的数据量均匀分布,避免出现热点和负载不均衡的情况;同时可以根据不同的数据特点,采用定制的负载均衡策略,将请求均匀分配到不同的存储设备或节点中。 7. 性能监控与优化:建立性能监控机制,及时收集和分析存储系统的性能指标,如写延迟、响应时间等,发现潜在的性能瓶颈和问题,并进行相应的优化和调整。 通过上述措施的综合应用,可以有效提高空间数据存储的性能,提升系统的稳定性和可靠性,满足用户对数据存储和查询的高效需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值