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

把數據庫該干的活交給OS可行嗎

數據庫 其他數據庫
實際上早期的數據庫也是十分依賴于操作系統的,我大學畢業后使用過的第一個數據庫RMS就是一個基于openVMS的記錄管理系統,其底層依賴于操作系統的基礎IPC能力構建。后來隨著數據庫變得越來越復雜,需要支持的底層OS平臺越來越多,數據庫產品逐漸把一些以前OS干的事情由自己獨立來干。

?這兩天在思考前幾天一個朋友提到的一個問題,現在的OS越來越強大了,能不能把一些數據庫該干的事情交給OS去做,這樣數據庫的內核可以大大的簡化。這個觀點讓我想起了十多年前Linux是否需要提供o_direct這個文件IO選項給開發者的討論。當時Linus Torvalds說了那句十分著名的話—“In short, the whole "let's bypass the OS" notion is just fundamentally broken. It sounds simple, but it sounds simple only to an idiot who writes databases and doesn't even UNDERSTAND what an OS is meant to do”。他甚至認為繞過OS強大的VMM設計去處理IO是傻瓜才會干的事情,因為Linux已經為數據庫類的應用提供了強大的能力。

實際上早期的數據庫也是十分依賴于操作系統的,我大學畢業后使用過的第一個數據庫RMS就是一個基于openVMS的記錄管理系統,其底層依賴于操作系統的基礎IPC能力構建。后來隨著數據庫變得越來越復雜,需要支持的底層OS平臺越來越多,數據庫產品逐漸把一些以前OS干的事情由自己獨立來干。2012年的一次測試,讓我對數據庫與OS融合后的能力有了深刻的體會。當時在一臺Oracle公司的T4-8上,服務器+Solaris操作系統+Oracle 11g的組合跑出了驚人的高性能。不用做復雜的調優,僅僅裝好數據庫,簡單調整一下數據庫參數,就取得了那次測試最佳的成績。后來我和參加測試的老外聊了聊,他說在這個組合里,Oracle的一些并發控制相關底層調用得到了全面優化,操作系統幫助Oracle的閂鎖與鎖操作的并發能力得到了極大的提升。

實際上開頭提的這個問題應該不是問題了,現在的Linux與90年代剛剛進入我們視野的時候已經不可同日而語了,那時候的Linux可以很好的支撐WEB應用,但是對數據庫的底層支持還比較弱。而現在Linux的能力已經得到了巨大的強化,無論是Redis,MongoDB還是ClickHose,這些新生代的數據庫產品無一例外的充分利用了操作系統底層的能力,從而簡化了很多傳統數據庫自己要做的復雜控制。外加在存儲引擎上使用了大量的開源技術,使得數據庫研發的門檻大大降低了。包括我們耳熟能詳的開源數據庫MySQL和Postgresql,它們在存儲引擎上也充分利用了操作系統的能力。充分利用OS FILE CACHE的能力來緩沖數據,從而提升IO性能,通過使用帶日志的文件系統來消除數據庫double write的開銷,這一切都是數據庫向OS能力借力的有效例證。

不過通用關系型數據庫面臨的場景十分復雜,在某些特殊的高負載場景下,OS的自動優化能力還是無法滿足數據庫的需求。2007年引發的關于o_direct的討論就是一個十分典型的例證。當時數據庫廠商需要自己來控制IO,而不是使用OS提供的能力。

圖片

在一個DBA的眼里,Linus的言論似乎是有些武斷了,針對復雜的通用關系型數據庫來說,數據庫自己管理自己的緩沖,在有些時候比完全依賴于OS提供的文件緩沖能力,要高效的多。數據庫有自己的一些更為復雜的判斷熱數據的方法,因此在shared buffer中合適AGEOUT頁面,清理哪些頁面,數據庫管理系統可能更清楚。

不過對于大多數業務應用來說,OS提供的FILE CACHE已經能夠很好的幫助我們提升性能了。在目前的Postgresql的官方文檔中,還是建議shared buffer只使用20-30%,剩下的內存交給OS。有些PG用戶認為這個建議十分好,他們的數據庫按照這個建議設置后性能十分穩定。不過也有些用戶認為把物理內存盡可能交給shared buffer具有更好的性能。這是因為業務應用場景的復雜性,導致兩種策略可能在某些場景下會出現相反的效果。

對于一個數據庫應用系統來說,其優化是從上到下的。

圖片

對于一個復雜的應用系統來說,越往上的優化器效果就越好,只不過越往上的優化對于前期建設隊伍的能力要求也越高,前期的投入也越大。對于一些較小的,不太復雜的應用系統來說,只需要從下層做好優化就可以了,其實施成本也很低。而負載越高,越復雜的系統就越需要更上層的優化。對于有些系統來說,僅僅依賴操作系統提供的優化能力就不足夠了。就像是開手動擋的車和自動擋的車,在一般路況下,自動擋車就足夠用了,但是在一些特殊的戶外陡坡上,手動擋車可能可以勝任,自動擋車就完全不勝任了。因為自動化的處理能力還是有限的。

不過隨著操作系統的不斷發展,其能力也越來越強,操作系統對數據庫的支撐能力也在不斷增強。有些以前需要依靠數據庫核心代碼去優化的工作依然可以由操作系統來承擔。一些專用場景的數據庫產品會首先從中受益,有時候數據庫不用做升級,升級一下OS,數據庫性能自然就提升了。不過針對某種數據庫去定制與優化操作系統也是一種思路,在一些云原生的數據庫或者公有云RDS上,可能更容易實現。?

責任編輯:武曉燕 來源: 白鱔的洞穴
相關推薦

2024-01-03 09:40:01

QA軟件測試開發

2024-12-02 12:23:25

2025-04-28 08:35:07

2010-05-11 10:41:21

職業IT人

2018-07-17 11:20:01

數據庫日常管理

2023-07-06 14:52:36

數據分析師SQL

2023-07-13 08:12:26

ControllerSpring管理

2015-06-01 15:11:37

數據庫update

2022-12-18 19:38:31

時序數據庫數據庫

2021-12-23 10:54:35

數據庫索引技術

2018-01-03 09:57:19

異地雙活數據庫

2011-03-23 11:11:17

圖片數據庫

2010-06-09 14:19:35

導入MySQL數據庫

2013-03-20 11:25:47

數據庫數據庫設計

2013-03-20 11:33:31

2013-03-20 13:25:53

數據庫數據庫設計

2013-03-20 13:35:12

數據庫數據庫設計

2011-07-07 09:11:54

NoSQL數據庫

2019-07-22 09:55:43

誤刪數據庫用戶庫

2010-09-16 08:38:19

數據庫索引
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品亚洲 | 久久网国产 | 亚洲天堂影院 | 四虎影院新网址 | 欧美日韩三区 | 国产精品久久久99 | 精品一区免费 | 免费h在线 | 久久1区 | 一级做受毛片免费大片 | 黄色网址免费在线观看 | 日韩高清一区二区 | 免费影视在线观看 | 成人网视频 | 亚洲国产成人精品久久久国产成人一区 | 日韩在线观看一区 | 国产精品自拍视频 | 怡红院成人在线视频 | 日韩三片 | 99久久99| 看片wwwwwwwwwww| 91久久久久久久 | 狠狠色狠狠色综合日日92 | 超碰在线人人 | 精品视频在线播放 | 成人在线不卡 | 日韩欧美手机在线 | 日本激情视频中文字幕 | 久久亚 | 亚洲激精日韩激精欧美精品 | 欧美8一10sex性hd | 狠狠操狠狠干 | 91麻豆产精品久久久久久夏晴子 | av一区在线 | 亚洲一区视频在线 | 中文在线a在线 | 免费v片在线观看 | 青青久在线视频 | 亚洲人va欧美va人人爽 | 欧美成人免费在线视频 | 国产精品黄色 |