成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux設備IO研究與數據庫性能調優

系統 Linux
本篇文章主要是教大家如何在Linux系統里對數據庫及設備IO庫進行調優,相信對于Linux的初學者來說會有很大的幫助!

本篇文章主要是教大家如何在Linux系統里對數據庫及設備IO庫進行調優,相信對于Linux的初學者來說會有很大的幫助!

數據庫系統是基于文件系統的,其性能和設備讀寫的機制有密切的關系。和數據庫性能密切相關的文件I/O操作的三個操作:

open               打開文件

write                寫文件

fdatasync        flush操作(將文件緩存刷到磁盤上)。

一、Open操作

open("test.file",O_WRONLY|O_APPDENT|O_SYNC))

系統調用Open會為該進程一個文件描述符fd。這里使用了O_WRONLY|O_APPDENT|O_SYNC打開文件:

1. O_WRONLY表示我們以"寫"的方式打開,告訴內核我們需要向文件中寫入數據;

2. O_APPDENT告訴內核以"追加"的方式寫文件;

3. O_DSYNC告訴內核,當向文件寫入數據的時候,只有當數據寫到了磁盤時,寫入操作才算完成(write才返回成功)。

4. 和O_DSYNC同類的文件標志,還有O_SYNC,O_RSYNC,O_DIRECT。

       (1) O_SYNC比O_DSYNC更嚴格,不僅要求數據已經寫到了磁盤,而且對應的數據文件的屬性(例如文件長度等)也需要更新完成才算write操作成功。可見O_SYNC較之O_DSYNC要多做一些操作。

       (2) O_RSYNC表示文件讀取時,該文件的OS cache必須已經全部flush到磁盤了;

       (3) 如果使用O_DIRECT打開文件,則讀/寫操作都會跳過OS cache,直接在device(disk)上讀/寫。因為沒有了OS cache,所以會O_DIRECT降低文件的順序讀寫的效率。

二、Write操作

write(fd,buf,6)

在使用open打開文件獲得文件描述符之后,我們就可以調用write函數來寫入數據了,write會根據前面的open參數不同,而表現不同。

三、Flush階段

fdatasync(fd) == -1

write操作后,我們還調用了fdatasync來確保文件數據flush到了disk上。fdatasync返回成功后,那么可以認為數據已經寫到了磁盤上。像這樣的flush的函數還有fsync、sync。

1. Fsync和fdatasync的區別等同于O_SYNC和O_DSYNC的區別。

2. Sync函數表示將文件在OS cache中的數據排入寫隊列,并不確認是否真的寫磁盤了,所以sync并不可以靠。

忽略文件打開的過程,通常我們會說“寫文件”有兩個階段,一個是調用write我們稱為寫數據階段(其實是受open的參數影響),調用fsync(或者fdatasync)我們稱為flush階段。Linux上的塊設備的操作可以分為兩類:

***類是使用C標準庫中的fopen/fread/fwrite 系列的函數,我們可以稱其為 buffered I/O。

具體的I/O path如下:

Application<->Library Buffer<->Operation System Cache<->File System/Volume Manager<->Device

library buffer是標準庫提供的用戶空間的buffer,可以通過setvbuf改變其大小。

第二類是使用Linux的系統調用的open/read/write 系列的函數,我們可以稱其為 non-buffered I/O。

Application<-> Operation System Cache <->File System/Volume Manager<->Device

此外,我們可以通過設置open的O_DIRECT 標志來實現Direct I/O (或者叫Raw I/O ),即繞過OS Cache,直接讀取Device ( that's what we want^o^ ), 等于將OS cache換成自己管理的cache。不過,Linus在郵件列表中建議不這么做,而是使用posix_fadvice, madvice。中表明Direct I/O比buffered I/O的性能高很多。

在MySQL中,參數Innodb_flush_method(Linux)可以設定為:Fdatasync、O_DSYNC、O_DIRECT。我們看看這個三個參數是如何影響程序MySQL對日志和數據文件的操作:


Open log Flush log Open datafile Flush data
Fdatasync
fsync()
fsync()
O_DSYNC O_SYNC
 

 
fsync()
O_DIRECT
 
fsync() O_DIRECT Fsync()

 fdatasync被認為是安全的,因為在MySQL總會調用fsync來flush數據。使用O_DSYNC是有些風險的,有些OS會忽略該參數O_SYNC 。

我們看到O_DIRECT和fdatasync和很類似,但是它會使用O_DIRECT 來打開數據文件。有數據表明,如果是大量隨機寫入操作,O_DIRECT 會提升效率。但是順序寫入和讀取效率都會降低。所以使用O_DIRECT需要謹慎。

mysql   innodb 對應相關參數:

innodb_flush_method有三個值,分別是fdatasync,O_DSYNC和O_DIRECT,其中fdatasync是默認值。

它們控制了InnoDB刷新日志和數據的模式。

fdatasync:InnoDB使用fsync()函數去更新日志和數據文件。

O_DSYNC:InnoDB使用O_SYNC模式打開并更新日志文件,用fsync()函數去更新數據文件。

O_DIRECT:InnoDB使用O_DIRECT模式打開數據文件,用fsync()函數去更新日志和數據文件。

我們看到O_DIRECT和fdatasync和很類似,但是它會使用O_DIRECT 來打開數據文件。有數據表明,如果是大量隨機寫入操作,O_DIRECT 會提升效率。但是順序寫入和讀取效率都會降低。所以使用O_DIRECT需要謹慎。

【編輯推薦】

  1. 新Linux內核耗電量顯著增加
  2. 四招教你打造輕型Linux桌面環境
  3. Linux十大妙用:充當Windows修復工具
  4. Ubuntu 11.04 Launcher中顯示Pidgin的未讀信息數
  5. Ubuntu 11.04將于4月28日發布 或進軍手機及平板領域
責任編輯:馮宇 來源: Linux社區
相關推薦

2011-07-08 16:02:54

HBase

2023-04-03 10:25:00

數據庫性能調優

2010-03-10 11:29:47

MySQL數據庫性能調

2010-05-04 17:08:24

Oracle數據庫

2019-08-13 08:32:14

MySQL數據庫性能調優

2010-04-07 13:32:39

Oracle調優

2022-05-10 10:02:51

openGauss性能調優數據庫

2014-09-22 13:31:46

Linux

2011-04-18 13:46:24

數據庫設計

2011-08-15 18:09:46

查詢性能調優索引優化

2018-01-15 15:35:15

數據庫性能調優案例

2017-07-21 08:55:13

TomcatJVM容器

2011-04-18 13:12:01

數據庫索引

2011-04-18 13:23:46

數據庫查詢

2011-04-18 13:36:32

數據庫游標

2011-05-24 09:45:41

Oracle數據庫系統調優

2013-03-20 17:18:07

Linux系統性能調優

2019-07-08 14:05:53

數據庫JVMSQL

2012-06-20 11:05:47

性能調優攻略

2010-11-30 11:26:49

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕电影在线观看 | 久久精品欧美一区二区三区麻豆 | av网站免费| 一级在线观看 | 午夜电影网 | 亚洲视频免费观看 | 亚洲国产一区二区三区在线观看 | 91高清在线 | 欧美人成在线视频 | 美日韩免费视频 | 精品国产免费一区二区三区演员表 | 日韩中文字幕在线播放 | 美女中文字幕视频 | av在线一区二区三区 | 日本手机在线 | 成人妇女免费播放久久久 | av网站免费 | 国产精品久久久久久久久久久免费看 | 成人三区四区 | 一级黄色毛片a | 国产激情亚洲 | 国产一区二区成人 | 91国产视频在线观看 | 成人综合视频在线观看 | 欧美影院久久 | 欧美精品一区二区三区蜜桃视频 | 在线观看黄色大片 | 亚洲欧美视频一区二区 | 99精品欧美一区二区蜜桃免费 | 国产高清在线精品 | 精品一区二区久久久久久久网站 | 日韩欧美在线播放 | 久久久精品久 | 一区二区三区欧美大片 | 亚洲视频一区在线观看 | 91精品国产一区二区在线观看 | 黄色片在线免费看 | 国产精品美女久久久av超清 | 免费一区二区 | 色视频在线播放 | 久久精品国产一区老色匹 |