write through设置不当导致读写速度很慢

简介:

  

    今天在跑性能的时候,发现4台存储中有一台存储的性能特别慢,其他都能达到90MB/s,就它一个只有几M/s。单独测试它,发现只有50MB/s,如下图

clip_image006

     另外三台存储单独测试,能达到100MB/s,正常值

clip_image008

而且这里还发现一个情况,4台存储都在运行时,其他三台存储load average均很小。但是第4台存储压力较大,如下图

image

   1、首先怀疑第4台存储上的程序不对,查看日志,发现

chunk_0000000000024D77_00000002.ufs - crc error

    显示是crc错误,怀疑是硬盘坏了,但是查看所有的硬盘信息,均是online且正常

   2、其次怀疑客户端压力太大(2客户端),但是把客户端压力降下来之后,性能还是很差

排错无法进行下去了,喝口水先。。。。回来后,用megacli查看磁盘组信息,忽然发现如下图

clip_image004

注意“current cache policy”一栏,writethrough。。。再到另外3台存储上看缓存策略,如下

clip_image002

终于看到曙光了,修改缓存策略。如下两个图

clip_image010

clip_image012

修改成功后,用dd查看,发现速度果然达到100MB/s。。。。

clip_image014

  总结:由此可见,WB和WT策略对于读写的性能是多么大,应该是之前建RAID的时候没有设置好导致的。也难怪,直写磁盘当然没有中间加个缓存速度快了。希望后人引以为戒啊。。。。





本文转自 taojin1240 51CTO博客,原文链接:http://blog.51cto.com/taotao1240/686205,如需转载请自行联系原作者

目录
相关文章
|
7月前
|
存储 文件存储
<文件操作> 文件的打开与关闭,顺序读写,随机读写,二进制文件,读取结束的判定,文件缓冲区
<文件操作> 文件的打开与关闭,顺序读写,随机读写,二进制文件,读取结束的判定,文件缓冲区
42 1
有 3 个进程 P1、P2、P3 协作解决文件打印问题。P1 将文件记录从磁盘读入内存的缓冲区 1,每执行一次读一个记录 ;P2 将缓冲区 1 中的内容复制到缓冲区 2 中,每执行一次复制一个记录 ;
有 3 个进程 P1、P2、P3 协作解决文件打印问题。P1 将文件记录从磁盘读入内存的缓冲区 1,每执行一次读一个记录 ;P2 将缓冲区 1 中的内容复制到缓冲区 2 中,每执行一次复制一个记录 ;
|
7月前
|
缓存 数据库 NoSQL
【后端面经】【缓存】33|缓存模式:缓存模式能不能解决缓存一致性问题?-02 Write Through + Write Back
【5月更文挑战第10天】`Write Through`是一种缓存策略,写操作仅需写入缓存,缓存负责更新数据库。异步版本可能丢失数据,而同步变种先写数据库再异步刷新缓存,减少丢数据风险。`Write Back`模式数据先写入缓存,过期时才写入数据库,可能导致数据丢失,但若使用Redis并确保高可用,可部分解决一致性问题。在特定条件下,如使用SETNX命令,能缓解一致性挑战。
85 0
【后端面经】【缓存】33|缓存模式:缓存模式能不能解决缓存一致性问题?-02 Write Through + Write Back
|
SQL 开发框架 .NET
一个超级大的文件如何更快读
# 一个超级大的文件如何更快读 问题起因 ![](https://img2023.cnblogs.com/blog/2415052/202306/2415052-20230608110517159-989018809.png) 一个有千万的数据的txt文件如何发挥IO的全部性能更快的读和写。 ## 方案一 使用ChatGPT4的方案 在C#中,我们可以使用多线程来处理大量的数据并将其写入数据库。在处理大数据时,我们需要将任务分解为多个子任务,这样我们可以在不同的线程中并行执行它们以提高性能。 这里是一种可能的解决方案,使用了`Task Parallel Library (TPL
92 0
一个超级大的文件如何更快读
|
消息中间件 关系型数据库 Shell
记录贴:sentry磁盘占用过大如何清理?
记录贴:sentry磁盘占用过大如何清理?
1222 0
|
计算机视觉 索引 Windows
视频操作_01视频读写:视频读写+读取视频+保存视频
在OpenCV中我们要获取一个视频,需要创建一个VideoCapture对象
193 0
|
存储 编译器 C语言
缓冲区刷新在 C++ 中意味着什么?
缓冲区刷新是将计算机数据从临时存储区域传输到计算机的永久内存。例如,如果我们对文件进行任何更改,我们在一台计算机屏幕上看到的更改会临时存储在缓冲区中。
179 0
|
SQL 存储 缓存
浅析缓存读写策略
随着我们业务量的增长,系统面对的压力也陡然上升,大量的读写请求到数据库往往会伴随着各式各样的问题,可能仅仅是一条慢SQL,就有可能拖垮整个系统服务。通常这个时候,我们除了做数据库的读写分离架构,还会对数据库进行分库分表。但是可能有些一成不变或者极少时间触发变更的数据,像类目、类目属性等,大量的针对类目维度的读数据库也会给数据库带来各种压力,通常会以NoSql数据库与关系型数据库互相搭配的方式,以用来更好的服务与我们的业务发展。
274 0
浅析缓存读写策略
|
存储 Apache 数据库
高效读取大文件,再也不用担心 OOM 了!(上)
最近阿粉接到一个需求,需要从文件读取数据,然后经过业务处理之后存储到数据库中。这个需求,说实话不是很难,阿粉很快完成了第一个版本。
高效读取大文件,再也不用担心 OOM 了!(上)