溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

oracle:swap性能調優

發布時間:2020-03-31 19:38:43 來源:網絡 閱讀:941 作者:PlayWithYou 欄目:關系型數據庫

目標:解決大量Log寫入占用大量的File Cache,內容利用不充分導致swap


基本原則:盡量使用內存,減少swap,同時,盡早flush到外存,早點釋放內存給寫cache使用。---特別在持續的寫入操作中,此優化非常有效。


調優措施:


vm.swapiness :60 改成 10
vm.dirty_ratio:90 改成 10
vm.dirty_background_ratio:60 改成 5
vm.dirty_expire_centisecs:3000改成500
vm.vfs_cache_pressure:100 改成 500


下面重點解釋一下各個配置的含義:


一,vm.swappiness優化:


swappiness的值的大小對如何使用swap分區是有著很大的聯系的。swappiness=0的時候表示最大限度使用物理內存,然后才是 swap空間,swappiness=100的時候表示積極的使用swap分區,并且把內存上的數據及時的搬運到swap空間里面。linux的基本默認設置為60,具體如下:


cat /proc/sys/vm/swappiness
60


也就是說,你的內存在使用到100-60=40%的時候,就開始出現有交換分區的使用。大家知道,內存的速度會比磁盤快很多,這樣子會加大系統io,同時造的成大量頁的換進換出,嚴重影響系統的性能,所以我們在操作系統層面,要盡可能使用內存,對該參數進行調整。


臨時調整的方法如下,我們調成10:


sysctl vm.swappiness=10
vm.swappiness = 10
cat /proc/sys/vm/swappiness
10


這只是臨時調整的方法,重啟后會回到默認設置的


要想永久調整的話,需要將在/etc/sysctl.conf修改,加上:


cat /etc/sysctl.conf
vm.swappiness=10

 


二,vm.dirty_ratio: 同步刷臟頁,會阻塞應用程序


這個參數控制文件系統的同步寫寫緩沖區的大小,單位是百分比,表示當寫緩沖使用到系統內存多少的時候(即指定了當文件系統緩存臟頁數量達到系統內存百分之多少時(如10%),),開始向磁盤寫出數據,即系統不得不開始處理緩存臟頁(因為此時臟頁數量已經比較多,為了避免數據丟失需要將一定臟頁刷入外存),在此過程中很多應用進程可能會因為系統轉而處理文件IO而阻塞。


增大之會使用更多系統內存用于磁盤寫緩沖,也可以極大提高系統的寫性能。但是,當你需要持續、恒定的寫入場合時,應該降低其數值,一般啟動上缺省是 10。


 


三,vm.dirty_background_ratio:異步刷臟頁,不會阻塞應用程序 


這個參數控制文件系統的后臺進程,在何時刷新磁盤。單位是百分比,表示系統內存的百分比,意思是當寫緩沖使用到系統內存多少的時候,就會觸發pdflush/flush/kdmflush等后臺回寫進程運行,將一定緩存的臟頁異步地刷入外存。增大之會使用更多系統內存用于磁盤寫緩沖,也可以極大提高系統的寫性能。但是,當你需要持續、恒定的寫入場合時,應該降低其數值,一般啟動上缺省是 5。


注意:如果dirty_ratio設置比dirty_background_ratio大,可能認為dirty_ratio的觸發條件不可能達到,因為每次肯定會先達到vm.dirty_background_ratio的條件,然而,確實是先達到vm.dirty_background_ratio的條件然后觸發flush進程進行異步的回寫操作,但是這一過程中應用進程仍然可以進行寫操作,如果多個應用進程寫入的量大于flush進程刷出的量那自然會達到vm.dirty_ratio這個參數所設定的坎,此時操作系統會轉入同步地處理臟頁的過程,阻塞應用進程。


 


四,vm.dirty_expire_centisecs:


   這個參數聲明Linux內核寫緩沖區里面的數據多“舊”了之后,pdflush進程就開始考慮寫到磁盤中去。單位是 1/100秒。缺省是 3000,也就是 30 秒的數據就算舊了,將會刷新磁盤。對于特別重載的寫操作來說,這個值適當縮小也是好的,但也不能縮小太多,因為縮小太多也會導致IO提高太快。建議設置為 1500,也就是15秒算舊。當然,如果你的系統內存比較大,并且寫入模式是間歇式的,并且每次寫入的數據不大(比如幾十M),那么這個值還是大些的好。


 


五,Vm.dirty_writeback_centisecs:


   這個參數控制內核的臟數據刷新進程pdflush的運行間隔。單位是 1/100 秒。缺省數值是500,也就是 5 秒。如果你的系統是持續地寫入動作,那么實際上還是降低這個數值比較好,這樣可以把尖峰的寫操作削平成多次寫操作。設置方法如下:

 echo "200" > /proc/sys/vm/dirty_writeback_centisecs


如果你的系統是短期地尖峰式的寫操作,并且寫入數據不大(幾十M/次)且內存有比較多富裕,那么應該增大此數值:


 


六,Vm.vfs_cache_pressure:


增大這個參數設置了虛擬內存回收directory和inode緩沖的傾向,這個值越大。越易回收


該文件表示內核回收用于directory和inode cache內存的傾向;缺省值100表示內核將根據pagecache和swapcache,把directory和inode cache保持在一個合理的百分比;降低該值低于100,將導致內核傾向于保留directory和inode cache;增加該值超過100,將導致內核傾向于回收directory和inode cache。


This variable controls the tendency of the kernel to reclaim thememory which is used for caching of VFS caches, versus pagecache and swap.Increasing this value increases the rate at which VFS caches are reclaimed.Itis difficult to know when this should be changed, other than byexperimentation. The slabtop command (part of the package procps) shows topmemory objects used by the kernel. The vfs caches are the "dentry"and the "*_inode_cache" objects. If these are consuming a largeamount of memory in relation to pagecache, it may be worth trying to increasepressure. Could also help to reduce swapping. The default value is 100.


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女