關於aio的設定的討論

2021-09-22 19:14:33 字數 2077 閱讀 7339

之前在博文中分享過乙個ora錯誤。

對於此,根據日誌分析了相關的ora錯誤,但是從客戶的角度還是希望能夠提前做些什麼,所以aio的設定就成為刻不容緩的乙個任務。

但是對於aio的設定大家還是存在一定的分歧。在此貼出來供大家討論,在oracle官方文件中也沒有詳細的說明和建議。

首先aio的設定在/etc/sysctl.conf就有設定,裡面會指定乙個最大值,即aio-max-nr

對於aio的監控可以從下面的地方進行監控。

cat /proc/sys/fs/aio-max-nr

在系統中會根據系統的使用情況有對應的變化。

關於async-io的監控,下面的乙個部落格中有比較好的監控方案。可以參考一下

對於aio的設定有幾種不同的爭論。

在伺服器上存在兩個資料庫例項,乙個session占用在9000左右,另外乙個訪問量極小,不到100個session的使用情況。

根據aio的設定。有一種計算思路為:

machine aio consumption  : 2,558,565

machine aio max limit : 3,145,728

number of sessions connected prodb1 : 9136

number of sessions connected prodb2 : 35

所以根據平均值得出每個session占用的aio值為 : 2558565/9171 = 278.98… 我們假設為 280

prodb1和prodb2的最大session設定為: 27040,所以根據計算得出需要設定的aio值為: 27040x280 = 7,571,200

對此還有一種不同的思路,即從作業系統層面,能夠和資料庫進行直接對映的就是程序了,資料庫中的程序和作業系統程序由對應的對映關係,所以我們應該基於程序,即process來進行計算。

在專有伺服器模式下,計算思路即為:

machine aio consumption  : 2,558,565

machine aio max limit : 3,145,728

number of sessions connected prodb1 : 9136

number of sessions connected prodb2 : 35

所以根據平均值得出每個程序process占用的aio值為 : 2558565/9171 = 278.98… 我們假設為 280

prodb1和prodb2的最大程序設定設定為: 18000+2000,所以根據計算得出需要設定的aio值為: 20000x280 = 5,600,000

看似不經意的調整,但是結果卻差別很大。

還有一種思路就是通過active session對應的程序情況進行計算,比如9000個session,但是active session只有1500左右,我們在這個時候假設併發為1500

根據併發情況得到乙個aio的平均值,然後進行計算。

machine aio consumption  : 2,558,565

machine aio max limit : 3,145,728

number of sessions connected prodb1 : 9136 這個時候併發session為1500左右

number of sessions connected prodb2 : 35   這個時候假設併發為35

所以根據平均值得出每個程序process占用的aio值為 : 2558565/1535 = 1666.81759… 我們假設為1666,相比之前的計算就差別很大了。

然後根據這個值來計算對應的aio最大值設定。假設這個時候最大的程序數為18000+2000=20000,所以根據計算得到的aio值就為:33,320,000

這個計算的值相比之前就差別太大了。

不過從不同的計算計算方式來看,個人還是傾向於第2種計算。當然這個問題也是持開放的態度,大家也可以提供意見,大家一起討論。

當然不能給客戶這三種思路讓他們選,我們也是把前兩種的思路結合起來,給了乙個基本平均的值,這樣下來aio的設定不會奇高,增長幅度也差不多在30%左右,但是還是有一定幅度的提公升, 對於其它的引數影響也不會有很大的梯度。

之後就是建議客戶計畫進行資料庫例項的重啟使得這些引數變更生效了。

關於 列印設定 的問題 討論。

關於 列印設定 的問題 討論。delphi windows sdk api 列印的很多選項設定,列印到哪台印表機,列印的份數,列印方向,紙張型別等。究竟該如何設定?比如 列印的份數 printer.copies 3 是否這樣設定就行了?我看delphi5開發人員指南上的例子,是通過設定t d e v...

關於引用的討論

鄭飛龍 17 17 04 這個是一道面試題,不知道這題是什麼意思?beyond jzk 17 19 55 我也弄不明白.beyond jzk 17 20 15 我感覺輸出應該是false true 鄭飛龍 17 20 45 答案就是這樣 鄭飛龍 17 20 49 你是怎麼看出來的 beyond jz...

關於zookeeper的討論

zookeeper作為分布式集群廣泛使用的應用程式協調服務集群。它的特點就不說了,很多人分析過。前段時間微博上說到zk有一些問題,其實只是某些場合下zk使用需要小心,這裡列舉一下 list 1 zk不適合做大資料量的儲存,簡單來說就是不適合做公用儲存。原因很簡單,每個資料要同步到所有server才返...