磁盘IO遇到瓶颈时内存Cache的策略


在内存中处理可以提高数据挖掘和分析的速率,以及其他动态数据处理使用。当在内存中的考虑,但是,看出来的数据保护,成本和瓶颈。

当你需要顶级数据库的速度,内存的处理提供了极大的低延迟。但可以在您的组织中真正使一个内存数据库的成本效益地使用?很难知道真正的商业价值投资是否会有回报的。

即使性能提升是合理的,是有可能充分保护重要的数据实时保存在内存中的数据损坏或丢失?可以在内存中的系统规模和跟上什么可能是指数级的数据增长?

有一个持续的供应商的种族来解决这些问题。厂商试图提供实际的内存处理的性能优势,更广泛的IT市场分析,互动决策和其他(近)实时使用情况下变得更加主流。

内存是最快的媒介

使用内存来加快I / O密集型应用程序的性能是不是一个新的想法; 它一直不错,在内存中处理数据的速度更快(10〜1000倍或更多),比等待比较长的I / O次数来读取和写入速度较慢媒体数据 - 闪存包括在内。

由于计算的早期,性能密集型产品已分配的内存作为数据缓存。大多数数据库被设计在内部使用尽可能多的内存越好。有些人甚至可能还记得设立的RAM磁盘用于临时数据在他们的家用电脑早在MS-DOS时代挤出更多的速度出瓶颈 的系统。

今天的内存处理需要这一概念发挥到了极致:采用主动内存(动态RAM)来保存当前正在运行的数据库代码和积极的数据结构,并保持持久的数据库在内存中。这些数据库忘了做关闭主板的任何慢游去跟外部媒体,而是优化其数据结构驻留在内存中处理。

从历史上看,每个服务器都可用存储密度和存储成本相对较高是限制因素,但今天有技术扩展内存处理的有效应用到更大的数据集。这些措施包括提高每台服务器的内存体系结构,内联/联机重复数据删除和压缩技术,使用额外的(相对便宜)CPU的能力,以榨取更多的数据到内存中,集群和网格工具,可以扩展出总有效内存占用。

内存继续得到更便宜和更密集。现在笔记本电脑的标准配备更多的可寻址的内存比曾经拥有整个大型机。今天,任何人都用信用卡可以便宜地从云计算供应商如租用高内存的服务器亚马逊网络服务,它最近刚刚推出了R3的服务器实例有一个令人印象深刻的244 GB的RAM,每个2.80美元每小时。那些有更深的口袋可以使用来自惠普(4 TB的内存购买机架式服务器的ProLiant DL980 G7)或6 TB戴尔(R920),或者他们可以升级到Oracle M6-32与32 TB。

内存是风靡一时的大型非结构化数据处理以及更传统的结构化的数据库应用程序。所谓商品服务器集群与128 GB的每个节点上的RAM可容纳在内存中实时查询工具的Hadoop集群。

Caching, analysis and transactions -- oh my!

在传统的事务型数据库中,只有热数据记录必须在内存中的表现举行,而更便宜的磁盘用于低成本的能力。数据库引擎早已被调谐用于此目的。今天有可能的情况下保持整个数据库在内存中是有意义的。这些范围从网络规模,分布式键值缓存存储和简明的分析数据库,实时“运营智能”电网。

在大型Web应用程序,数以千计的并发用户打一个Web服务器需要的“会话数据”,他们与网页交互每次服务器端的持久性。在这些情况下,一个集中的交易数据库可能是一个很大的瓶颈。可扩展的数据库产品,如Memcached的和Redis的客户提供快捷,在内存缓存的key-value类型的数据。

当整个结构化的数据库需要重复查询-在多种数据勘探,开采和分析-这是有利于承载整个数据库在内存中。专为柱状分析数据库的商业智能(BI)已经优化的数据存储格式,虽然经常在一些不太适合于大批量的事务性工作部分压缩状态。在比赛进行到产生更快的分析见解,适合在内存选项演变。

领导负责的SAP的HANA,向外扩展的内存中的数据库设计来承载关键的企业资源规划数据。它可以提供近实时分析BI金矿,并且它也可以用于其它数据。这可能需要几个小时才能运行在一个原始事务数据库报告可以在HANA秒内完成。它也变得越来越能够直接处理的交易,从而进一步增加其效用。

其他的柱状分析数据库厂商,如Teradata和惠普Vertica的,力争用尽可能多的内存成为可能,例如缓存在内存中压缩列数据。他们还支持那些仍然太大,任何性价比还是实用性完全在内存中的刀具数据集的分析。Vertica的,例如,在内存方法的混合,使快速数据加载至内存(最终上演到磁盘)与这两个磁盘上和内存中的数据近乎实时的访问。

Oracle有一个完整的内存产品为分析和快速的联机事务处理 (OLTP)在其高端的TimesTen /数据库云服务器设备,并且还增加了内存处理选项到其较传统的数据库软件阵容。

甲骨文混合列压缩(HCC)是如何压缩事务性数据,因为它的年龄,而实际上加速分析的一个很好的例子。去年秋天,甲骨文宣布与该数据保持在特殊的格式进行快速分析的同时加快了OLTP的一个内存中处理选项,并在内存中完成的交易行的进一步演变。

最近,微软已经开始加强的SQL Server支持的内存的详细OLTP了。该Hekaton项目承诺允许管理员指定单个数据库表在内存而非磁盘,在那里他们将充分发挥作用,以主持,并与常规磁盘主办表进行交互透明。

在内存中的数据受到保护?

一个与内存数据库的第一个IT的关注是保护数据。动态随机存取记忆体(DRAM)可能是快,但如果你拔出插头,一切都完了。而且,即使它备份到永久性媒体,如何快速的把它恢复?毕竟,如果投资于内存的一点是它的实时竞争力的业务价值的贡献,总金额停机时间将是昂贵的。

一种常见的方法是使用本地磁盘或闪存的固态硬盘作为本地备份目标进行登录,坚持近期的数据更新(如果是本地中断,重新启动等)。不幸的是,这仅仅是不够的,如果主机服务器出现故障的硬盘或完全丧失。

如何充分保护的内存数据库,如SAP HANA的一个很好的例子是使用最近发布的惠普数据保护和的StoreOnce重复数据删除联邦的。数据保护拿起HANA的数据,因为它流出来,通过第三方应用程序编程接口改变“管”。那么它的目标备份到的StoreOnce全球去重存储。

如果有任何问题,HANA可以直接回收(或迁移)通过的StoreOnce重复从目标的Data Protector通过HANA的接口,无论是本地或远程站点。

铺设电网

财政房子已经长期使用的内存建立在应用程序向外扩展存储网格生成实时运营智能上大量的非常快速的数据流。格从产品的Tibco,横向扩展软件,匹维托和GridGain超越内存数据库功能,提供了更广阔的计算平台中的数据库操作,大数据处理和其他数据密集型计算任务都可以工作在接近实时。如果您正在构建自己的闪电般快速的内存中的应用程序,你可能已经在使用一个基于网格的方法。

网格平台旨在确保数据保护,灾难恢复和高可用性是内置的企业级功能。GridGain,例如,可以容忍多个节点故障,具有本地数据中心的复制,甚至支持就地升级,以零停机时间。

横向扩展提供了一个免费许可达到一定的规模,而GridGain最近开源的社区版。

结束一切,是吗?

在购买大内存系统,它的性能提升,需要深入了解实际需要的是什么样的性能和确切位置,目前的瓶颈出现。内存仍然不便宜,因为硬盘或闪存,并且还可能有其他的方式来获得所需的性能与更低的成本,精力和混乱。

如果你有一个MySQL的 或的MongoDB数据库,一是快速(且便宜)的选项从默认升级的基础数据库引擎的性能优化的,像Tokutek的“分形”索引技术。这当然是值得考虑的一个免费升级,不涉及到基础设施或应用程序出现任何中断。

尽管如此,内存将继续回落,在价格和增加每个服务器的密度。内存配置可能很快就会有更细粒度的服务器内存选项,包括处理器高速缓存,甚至非挥发性记忆体(闪存)的惊人数额。随着越来越多的内存选项,更多的数据处理将在内存中移动。

与此同时,数据的增长速度将超过在内存中的进步,所以总是会有需要在大尺度跨越便宜媒体舞台和一级数据。一个关键的IT能力 - 机遇 - 将继续在优化复杂的数据环境,动态地将其中的数据流以及数据驻留在最快的媒体管理。 

但在内存中向外扩展数据库的结构化数据,以及非结构化数据向外扩展的大数据的兴起,也强调在数据处理的更根本的转变。当数据变得更有活力,更流,多个集群托管和更多的“在线”,计算任务将越来越需要被动态路由到相关的实时数据,而不是回顾静态数据到计算为中心的主机。

换句话说,计算需要将流像数据,而数据将驻留在服务器上。以优化未来所需的管理和情报也许会成为下一个大的事情。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux磁盘IO是Linux内核的一部分,用于处理与磁盘的输入输出相关的操作。磁盘IO操作包括读取和写入数据到磁盘。在Linux中,磁盘IO操作主要涉及到两个重要的组件:页高速缓存(PageCache)和目录项缓存(dentry)。 页高速缓存是Linux内核引入的一种机制,用于优化磁盘IO的性能。它将磁盘抽象成一个个固定大小的连续页面,通常为4K。通过使用页高速缓存,Linux内核可以将磁盘上的数据加载到内存中,并在需要直接从内存中读取和写入数据,而无需频繁地进行磁盘操作。这种机制大大提高了磁盘IO的效率和性能。 目录项缓存是用于加速文件路径查找的一种缓存机制。在Linux中,每个文件都存在于某个目录中,当我们根据路径查找文件,内核需要遍历目录来找到相应的目录项。为了提高性能,Linux使用了目录项缓存,将目录项存储在缓存中,以减少对磁盘的读取次数。当需要查找文件,Linux首先在目录项缓存中查找对应的目录项,如果找到则直接返回,否则才需要从磁盘中读取目录数据并查找目标文件。这种机制可以有效地加速文件路径查找的过程。 综上所述,Linux磁盘IO涉及到页高速缓存和目录项缓存两个重要的机制,它们都是为了优化磁盘IO操作的性能和效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Linux内核io体系之磁盘io](https://blog.csdn.net/qq_23929673/article/details/103845249)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值