关于不同应用程序存储IO类型的描述
介绍
存储系统作为数据的载体,为前端的服务器和应用程序提供读写服务。存储阵列某种意义上来说,是对应用服务器提供数据服务的后端“服务器”。应用服务器对存 储系统发送数据的“读”和“写”的请求。然而,不同的应用程序对存储的数据访问类型有所不同。本文描述典型的不同应用程序的存储IO类型。帮助读者了解不同应用程序存储IO类型的同时,提供的数据也可以为存储模拟和压力测试的数据参考。
更多信息
IO类型描述:
描述不同应用的存储IO类型之前,先要描述存储中的定义IO的几个术语:
- IO大小(IO Size):IO Size是应用程序发起,经过操作系统的磁盘子系统,向存储系统发送的读写请求的单位大小。不同的应用程序所发送的IO大小都不相同,例如对于数据库应用,它在数据读写的时候IO Size是8KB,而在事务日志的写入的时候可能是512Bytes-64KB不等。所以,通常所说的IO Size都是一个平均的概念。即某一款应用在一段时间内的平均IO大小。
- 读写比例(Read/Write):读写比例比较容易理解,就是应用程序读数据和写数据分布。这个在规划存储的时候也至关重要,因为存储系统中的保护级别(RAID)的不同,对写有损失。例如RAID-5单次写入需要分别对数据位和校验位进行2次读和2次写。所以说,如果用RAID-5作为写入比例较高的应用,显然会对性能有很大影响。
- 顺序与随机读写比例(Random/Sequential):顺 序和随机读写取决与应用的获取数据的方式。通常情况下,如果数据的读取和写入是在连续的磁盘空间上,可以认为是顺序读写。如果应用读取的数据分布在不同磁 盘空间,且无固定的顺序,则视为随机读写。由于传统的机械磁盘(闪存盘不再讨论之列)读写数据需要盘面的转动和磁头的移动,这使得随机读写的效率在物理磁 盘层面要远小于顺序读写。通常存储系统都都会利用缓存来减少这部分的延迟,减缓因为磁头的移动而带来的性能损失。随机读写的代表的是OLTP的数据库文件,顺序读写的代表则是数据的事务日志。
应用程序存储IO类型:
下面的表中描述的不同的应用程序对应的IO大小、读写比例、随机和顺序比例。表中的比例为一个通用的参考值,比例接近真实各种应用的IO类型。当然不能包含全部的应用类型因为根据不同生产环境,数值也会有很大的差异。这里的数据提供一个参考,可以用于使用压力测试工具,例如IOMeter(IOMeter用法可以参考文章:Iometer学习笔记),模拟不同应用的IO负载。
应用类型 |
IO大小 |
读写比例 |
随机与顺序读写比例 |
Web File Server |
4KB、8KB、64KB |
95%读/5%写 |
75%随机/25%顺序 |
Web Server Log |
8KB |
100% Write |
100%顺序 |
OS Paging |
64KB |
90%读/10%写 |
100%顺序 |
Exchange Server |
4KB |
67%读/33%写 |
100%随机 |
Workstation |
8KB |
80%读/20%写 |
80%随机/20%顺序 |
Media Streaming |
64KB |
98%读/2%写 |
100%顺序 |
OLTP - Data |
8KB |
70%读/30%写 |
100%随机 |
OLTP - Log |
512bytes - 64KB |
100%写 |
100%顺序 |
关于不同应用程序存储IO类型的描述的更多相关文章
- .net工具类 获取枚举类型的描述
一般情况我们会用枚举类型来存储一些状态信息,而这些信息有时候需要在前端展示,所以需要展示中文注释描述. 为了方便获取这些信息,就封装了一个枚举扩展类. /// <summary> /// ...
- SQLServer 取 字段名称 类型 字段描述 等
https://www.cnblogs.com/w2011/archive/2013/01/04/2844143.html SELECT 字段名= convert(varchar(100), a.na ...
- C# 枚举类型的描述信息获取
新建一个控制台方法,写好自己的枚举类型: 如图: 在里面添加获取描述的方法: 具体源码: 链接:http://pan.baidu.com/s/1nv4rGkp 密码:byz8
- io类型
非阻塞io from socket import * import time s=socket(AF_INET,SOCK_STREAM) s.bind(('127.0.0.1',8080)) s.li ...
- 数据一致性和io类型
版权声明:本文由高剑林原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/106 来源:腾云阁 https://www.qclo ...
- java中io类型及成熟io框架
就io本身而言,概念上有5中模型:blocking I/O, nonblocking I/O, I/O multiplexing(select and poll), singal driven I/O ...
- 获取枚举类型的描述description
using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; usin ...
- 浅谈RAID写惩罚(Write Penalty)与IOPS计算
介绍 通常在讨论不同RAID保护类型的性能的时候,结论都会是RAID-1提供比较好的读写性能,RAID-5读性能不错,但是写入性能就不如RAID-1,RAID-6保护级别更高,但写性能相对更加差,RA ...
- 【转载】RAID写惩罚(Write Penalty)与IOPS计算
浅谈RAID写惩罚(Write Penalty)与IOPS计算 Character is what you are in the dark. 暗处最能反映一个人真正品格. ---------Apri ...
随机推荐
- Spring入门2. IoC中装配Bean
Spring入门2. IoC中装配Bean 20131125 前言: 上一节学习了Spring在JavaProject中的配置,通过配置文件利用BeanFactory和ApplicationConte ...
- zoj3765
题解: splay维护 注意是gcd 代码: #include<bits/stdc++.h> using namespace std; #define Key_value ch[ch[ro ...
- Linux文件操作及管理
---恢复内容开始--- 一.Linux系统的结构 1.Linux是一个倒树型结构,最大的目录名称为“/”(根目录) 2.Linux系统的二级目录 /bin ##binary二进制可执行文件, ...
- device-independent bitmap (DIB) 设备无关位图
设备无关位图即独立于设备的位图(DIB)与"Device-Dependent Bitmaps (DDB) 设备相关位图"相比,它不再依赖于具体的设备,从而更适合在不同的计算机之间传 ...
- 使用DaoCloud持续构建docker镜像,自动化部署
我们学会了在主机上安装部署docker,也学会了构建自己的docker镜像和容器,启停也都会用了,下一步就需要持续构建发布docker的技能了. 我们希望能在代码提交后,有个远程服务能自动开始构建项目 ...
- Freemaker的java.beans.IntrospectionException: type mismatch between read and write methods
引言:freemaker在特定的spring以及jdk下的问题解决路径. 环境描述 spring 3.1.1, jdk1.8u80, freemake 2.3.19 错误信息描述: 严重: Excep ...
- Python源码分析(二) - List对象
python中的高级特性之一就是内置了list,dict等.今天就先围绕列表(List)进行源码分析. Python中的List对象(PyListObject) Python中的的PyListObje ...
- Android Dialog 创建上下文菜单
Android Dialog中的listview创建上下文菜单 listView.setOnCreateContextMenuListener(new OnCreateContextMenuListe ...
- iOS内存管理(objective-c)
移动app开发中,由于移动设备内存的限制,内存管理是一个非常重要的话题.objective-c的内存管理,不仅是面试当中老生常谈的一个必问话题,也是日常项目开发中,特别需要重视的环节.对于笔者这种以j ...
- django-xhtml2pdf的使用(加入图片,指定字体,设置样式)
新博客地址:http://muker.net/django-xhtml2pdf.html 这里仅仅讨论直接利用html生成pdf这种最常见也最简单的情况. 1.要利用html生成带中文的pdf要指定中 ...