disk io 与 GFS2 使用

第一,先探讨一个问题,一个写IO的流程,什么样就算完成一次IO操作了。

"Disk Caches,磁盘高速缓存。
将磁盘上的数据缓存在内存中,加速文件的读写。实际上,在一般情况下,read/write是只跟缓存打交道的。(当然,存在特殊情况。下面会说到。)
read就直接从缓存读数据。如果要读的数据还不在缓存中,则触发一次读盘操作,然后等待磁盘上的数据被更新到磁盘高速缓存中;

write也是直接写到缓存里去,然后就不用管了。后续内核会负责将数据写回磁盘。

既然磁盘高速缓存提供了有利于提高读写效率的缓存机制,为什么又要使用O_DIRECT选项来绕开它呢?

一般情况下,这样做的应用程序会自己在用户态维护一套更利于应用程序使用的专用的缓存机制,

用以取代内核提供的磁盘高速缓存这种通用的缓存机制。"

https://www.cnblogs.com/woainilsr/p/3590765.html

第二,GFS2使用了磁盘高速缓存了吗?

GFS2像其它文件系统一样是使用了高速缓存的。

2.5.2. VFS Tuning Options: Research and Experiment

Like all Linux file systems, GFS2 sits on top of a layer called the
virtual file system (VFS). You can tune the VFS layer to improve
underlying GFS2 performance by using the sysctl(8) command. For example, the values for dirty_background_ratio and vfs_cache_pressure may be adjusted depending on your situation. To fetch the current values, use the following commands:

# sysctl -n vm.dirty_background_ratio
# sysctl -n vm.vfs_cache_pressure

The following commands adjust the values:

# sysctl -w vm.dirty_background_ratio=20
# sysctl -w vm.vfs_cache_pressure=500

You can permanently change the values of these parameters by editing the /etc/sysctl.conf file.

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/global_file_system_2/s1-usage-gfs2#s2-vfstuning-gfs2

综合上面两个问题,GFS2使用了高速缓存,当拔掉正在写数据的机器的网线时,虚拟IP漂到其它机器上了。不过拔掉网线的机器仍然在写数据,新接管的机器也在写数据。

当重新插上网线后,两个节点上的数据就不一致了。这只是分析的结论,需要测试验证。

FYI:

写的两种方式:Write Through和Write back

http://www.sohu.com/a/251445316_467784

对磁盘写方式的查看方法:

# hdparm -W /dev/sda

/dev/sda:
 write-caching =  1 (on)
# hdparm -W0 /dev/sda

/dev/sda:
 setting drive write-caching to 0 (off)
 write-caching =  0 (off)
# hdparm -W /dev/sda

/dev/sda:
 write-caching =  0 (off)

https://linuxconfig.org/improve-hard-drive-write-speed-with-write-back-caching

原文地址:https://www.cnblogs.com/longchang/p/11096241.html

时间: 2025-01-17 18:20:20

disk io 与 GFS2 使用的相关文章

Resolving SQL Server Disk IO bottlenecks

网上看到这篇文章挺不错的,直接翻译过来.在尝试诊断SQL Server性能时,不要仅仅依赖某个单一的诊断数据,比如CPU的使用率.SQL Server磁盘性能,就得出结论却忽略的问题的根源.实际上,使用单一的度量经常会得出一个错误的诊断.在SQL Server中CPU.IO和内存的使用是相互依赖.在我们采取"knee-jerk"修正行动(添加内存.提升磁盘吞吐量或者更改配置设置)之前,我们需要先查看整体情况.服务器级别"进程X运行缓慢,你能修复它吗?"作为DBA,你

zabbix 自动发现 监控 硬盘读写 disk io

直接 上配置: 1.配置文件 cat userparameter_harddisk.conf #discovery hard diskUserParameter=custom.vfs.discovery.diskname,/opt/app/zabbix-agent/scripts/check_harddisk.sh diskname_discovery#disk status# See https://www.kernel.org/doc/Documentation/ABI/testing/pr

Disk IO Performance

1,Physical Disk vs. Logical Disk Windows可以在一个Physical Disk上划出若干个逻辑分区,每一个逻辑分区是一个Logical Disk.对于分配在同一个Physical Disk上的Logical Disks,其读写操作共享Physical Disk的IO带宽.Windows给每一个Logical Disk分配一个盘符,App通过盘符来读写数据. 关于Disk Performance,有两组counter:Logical Disk 和 Physic

Performance Monitor4:监控SQL Server的IO性能

SQL Server的IO性能受到物理Disk的IO延迟和SQL Server内部执行的IO操作的影响.在监控Disk性能时,最主要的度量值(metric)是IO延迟,IO延迟是指从Application创建IO请求,到Disk完成IO请求的时间延迟.如果物理Disk不能及时完成IO请求,跟不上请求负载的速度,那么SQL Server就容易出现性能问题.SQL Server内部在执行一些特定的操作时,会和Disk做读写交互,这也会影响物理硬盘响应SQL Server的IO请求的性能,使查询进程处

Cacti监控磁盘IO(rhel)

1.检查net-snmp是否支持IO监控 snmpwalk -v 1 -c public 监控机的IP UCD | more 执行如上命令,如果返回类似如下数据,则表示支持disk io的监控,否则需要重新编译增加diskio-module模块. 1. UCD-DISKIO-MIB::diskIOIndex.1 = INTEGER: 1 2. UCD-DISKIO-MIB::diskIOIndex.2 = INTEGER: 2 3. UCD-DISKIO-MIB::diskIOIndex.3 =

小蚂蚁学习mysql性能优化(完结)--硬件方面优化--CPU和DISK优化

数据库硬件方面优化 如何选择CPU? 是选择单核更快的CPU还是选择核数更多CPU? mysql有一些工作只能使用单核CPU mysql对CPU核数的支持并不是越多越快 建议:mysql5.5使用的服务器不要超过32核.还是建议单核频率更快的cpu. Disk IO优化 常用RAID级别简介 RAID0:也成为条带,就是把多个磁盘链接成一个硬盘使用,这个级别IO最好. RAID1:也成为镜像,要求至少有两个磁盘,每组磁盘存储的数据相同. RAID0+1:就是RAID1和RAID0的结合.同时具备

linux 监控CPU memory disk process 脚本

#!/bin/bash # #This is a monitor system CPU Memory process disk IO disk zone statistixs scripts. # # ##CPU usage rate /bin/date>> /mnt/system_info.log echo -e "\n" >> /mnt/system_info.log ##CPU usage rate echo -e "\033[31mCPU us

cacti 监控磁盘IO需要注意的地方

监控linux机器的磁盘IO,使用cacti官方社区模板diskio http://docs.cacti.net/usertemplate:data:host_mib:diskio 具体用法不讲,有一个bug,监控64位linux机器时,数据不准确,原因是diskio.xml文件中统一定义了counter32的数据 <interface>         <name>Get Disk IO Information</name>         <index_ord

linux 系统监控、诊断工具之 IO wait

1.问题: 最近在做日志的实时同步,上线之前是做过单份线上日志压力测试的,消息队列和客户端.本机都没问题,但是没想到上了第二份日志之后,问题来了: 集群中的某台机器 top 看到负载巨高,集群中的机器硬件配置一样,部署的软件都一样,却单单这一台负载有问题,初步猜测可能硬件有问题了. 同时,我们还需要把负载有异常的罪魁祸首揪出来,到时候从软件.硬件层面分别寻找解决方案. 2.排查: 从 top 中可以看到 load average 偏高,%wa 偏高,%us 很低: 充分说明这个问题是由于 IO