首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用高速缓存时磁盘I/O较高?

使用高速缓存时磁盘I/O较高?
EN

Server Fault用户
提问于 2012-02-16 23:08:13
回答 2查看 5.4K关注 0票数 9

几天前,我注意到磁盘I/O等待和磁盘活动下降(这很棒)。然后,我还注意到我的缓存是满的(*)和碎片。然后我刷新了缓存。之后,磁盘延迟和磁盘活动跳到了以前的水平(这很糟糕)。

IOtop显示,jbd2 2/sda2 2-8和冲水-8:00总是位于磁盘使用的顶端。这是一个戴尔R210,硬件RAID 1 (H200),有大量的空闲内存(总共16 GB,其中大约8 GB是缓冲区/缓存)。

(*)缓存是用于PHP的APC操作码缓存,这减少了对PHP脚本执行的磁盘访问。高速缓存是完整的和支离破碎的,因为它包含了来自开发实例的文件。当我注意到这一点时,我把它们过滤掉了。

问题是:为什么磁盘I/O在理论上应该减少时会增加?下面是穆宁的一些图表。2月6日至8日缓存已满。

在我按@赛博86的方式注释掉apc.mmap_file_mask后的更改

几天后https://serverfault.com/a/362152/88934

EN

回答 2

Server Fault用户

回答已采纳

发布于 2012-02-17 12:18:18

如果使用文件支持的内存映射(例如apc.mmap_file_mask=/tmp/apc.XXXXXX),则可能会看到I/O的升高。

尝试将apc.mmap_file_mask设置为使用共享内存(例如/apc.shm.XXXXXX)或将其设置为/dev/zero (匿名内存)。将设置未定义的默认值保留为使用匿名内存。

通常,mmapped文件是一件很棒的事情:

  • 与完全存储内存相比,less文件通常需要较少的内存。
  • 与将某些内容保存到文件相比,mmapped文件需要更少的磁盘I/O (因为写入可以聚合在一起)。

然而,与纯粹在内存中存储一些东西相比,它们确实会产生额外的I/O --因此,当文件不断更改时,就会产生额外的I/O。不使用your文件的缺点是缺乏持久性--您的缓存将无法在重新启动后存活下来,因为它只存储在内存中。

因此,有人可能认为,当缓存正在填充和稳定时,它正在经历最大的变化,必须不断地写入磁盘;一旦缓存满了,每个对象的ttl就会减慢缓存中数据的翻转速率,从而减少更改和减少磁盘写入。

票数 10
EN

Server Fault用户

发布于 2012-02-21 10:33:20

几天后,我想带些图表回来。这一变化大大改善了这种情况。它减少了所有的东西,除了IO服务时间(我认为这是因为不再有简单的小型PHP文件读取,这是很便宜的)。

服务器负载(已经很低了,所以我还没有发现更改)。

票数 4
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/361032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档