文档章节

ext3的日志模式对数据库的影响

鉴客
 鉴客
发布于 2011/07/20 23:56
字数 1002
阅读 232
收藏 2

ext3ext2最大的区别就是ext3有日志,相信大家也知道ext3的日志模式有三种


◆data=journal日志模式

日志中记录包括所有改变文件系统的数据和元数据。它是三种ext3日志模式中最慢的,也是最安全的一种。每个变化需要写磁盘2次、日志写1次。所有新数据首先被写入日志,然后才被定位。意外发生过后,日志可以被重放,将数据与元数据带回一致状态。

◆data=ordered日志模式

仅 记录改变文件系统的元数据,且溢出文件数据要补充到磁盘中。这是缺省的ext3日志模式。文件数据的变化情况并不被记录在日志中,但它们必须做,而且由 ext3的daemon程序在与之相关的文件系统元数据变化前执行,即在记录元数据前要修改文件系统数据,这将稍微降低系统的性能(速度),然而可确保文 件系统中的文件数据与相应文件系统的元数据同步。

◆data=writeback日志模式

仅 记录改变文件系统的元数据,但根据标准文件系统,写程序仍要将文件数据的变化记录在磁盘上,以保持文件系统一致性。这是速度最快的ext3日志模式。因为 它只记录元数据的变化,而不需等待与文件数据相关的更新如文件大小、目录信息等情况,对文件数据的更新与记录元数据变化可以不同步,即ext3是支持异步 的日志。缺陷是当系统关闭时,更新的数据因不能被写入磁盘而出现矛盾,这一点目前尚不能很好解决。

ext3文件系统还涉及到如何cache中的数据刷到硬盘上。它是通过kupdate进程来实现定期刷的,默认是5秒检查一次,将超过30秒的脏数据刷到硬盘。在as 3.0中可以通过修改/proc/sys/vm/bdflush来达到目的。

而在as 4.0中可以通过修改/proc/sys/vm/dirty_writeback_centisecs和/proc/sys/vm/dirty_expire_centisecs来达到目的。

由于默认是ordered模式,在这种模式下面,如果一个IO先写数据文件,然后再写日志文件。假如说在写完数据文件之后,写日志文件之前时,系统发生crashed,则这部分数据将会丢失,这在数据库是绝对不允许的,不管是Oracle还是MySQL。所以对数据库的写来说,每一次写操作都会先写到pagecache中,然后通知kernelthread 将这个buffers刷到硬盘,然后再写将元数据写日志,最后才返回写成功的操作。这样对数据库来说写操作是明显不如写祼设备快。

所以说在采用Ext3跑数据库的情况下,将日志模式设为journal模式,性能反而应该会有所提升(没有测试过,理论上分析应该是这样) 因为在journal模式下数据库一个写操作,先是直接将数据和文件系统的变化写到日志中(绕开cache直接写,性能较好),然后将数据写到cache中,接着由kupdate进程将数据刷新到硬盘上。 相比之下,对DB来讲,它的性能应该比前面一种要快。

另外这里还提一下MySQL中的sync_binlog这个参数。如果将这个参数设为1,也就是说每次写binlog文件将同时刷到硬盘上面去,就像Oracle的写IO一样。如果将这个参数关闭,则它交给OS来管理,也就是每5秒检查一次,发现有30秒以前的老数据则刷到硬盘上。innodb_flush_log_at_trx_commit参数来也涉及到刷硬盘的问题。

本文转载自:http://logzgh.itpub.net/post/3185/467992

鉴客

鉴客

粉丝 954
博文 35
码字总数 1356
作品 0
长春
高级程序员
私信 提问
ext2、ext3与ext4的区别

ext2与ext3 Linux ext2/ext3文件系统使用索引节点来记录文件信息,作用像windows的文件分配表。索引节点是一个结构,它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置...

WXXGoodJob
2018/07/20
0
0
EXT文件系统特性介绍

ext2与ext3 Linux ext2/ext3文件系统使用索引节点来记录文件信息,作用像windows的文件分配表。索引节点是一个结构,它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置...

四京
2017/05/09
0
0
Linux系统环境 Ext3文件系统的使用介绍

Linux缺省情况下使用的文件系统为Ext2,ext2文件系统的确高效稳定。但是,随着Linux系统在关键业务中的应用,Linux文件系统的弱点也渐渐显露出来了;其中系统缺省使用的ext2文件系统是非日志...

范堡
2009/05/07
531
0
浅谈linux性能调优之四:文件系统的日志隔离

1.ext3文件系统在ext2的基础上添加了日志功能,如同数据库一样用日志来保证数据的一致性。 ext2:前写block,后写inode! ext3:增添了日志区(有利于数据一致性),先写inode! 等数据写到文件系统后...

我爱吃葱花
2014/08/11
66
0
linux ext2,ext3,ext4文件系统的区别(二)

Ext2: 是 GNU/Linux 系统中标准的文件系统,其特点为存取文件的性能极好,对于中小型的文件更显示出优势,这主要得利于其簇快取层的优良设计。其单一文件大小与文件系统本身的容量上限与文件...

chbo_yang
2018/06/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

elasticsearch查询20公里以内的数据并按距离升序排序data es写法

NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder();BoolQueryBuilder boolQueryBuilder=new BoolQueryBuilder();//这暂wei加入业务查询条件 queryBuilder.withQue......

为何不可1995
8分钟前
0
0
superset在线pip部署

1、安装依赖sudo yum install gcc libffi-devel python-devel python-pip python-wheel openssl-devel libsasl2-devel openldap-devel报错:没有可用软件包 python-pip。没有可用软件包 ......

阿伦哥-
13分钟前
1
0
photoshop简单使用

PS基本操作与图片格式 photoshop工具 组成 菜单项 工具栏 辅助面板 图片格式 jpg png gif 注: psd photoshop CC链接: https://pan.baidu.com/s/1LVa5R_btSjczLBwskCZidQ 提取码:sc3v 快捷...

studywin
15分钟前
0
0
springboot 整合pageHelper

今天跟大家聊聊springboot整合pageHelp,首先pageHelper是一个缓存式分页,分页步骤如下: 1 pom文件添加依赖 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelp......

gaofei123
15分钟前
1
0
《DNS攻击防范科普系列1》—你的DNS服务器真的安全么?

DNS服务器,即域名服务器,它作为域名和IP地址之间的桥梁,在互联网访问中,起到至关重要的作用。每一个互联网上的域名,背后都至少有一个对应的DNS。对于一个企业来说,如果你的DNS服务器因...

大涛学弟
16分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部