避免使用swap的方法,及解決方法

2021-06-18 09:41:33 字數 1376 閱讀 4270

1、

這是乙個傾向性的值,並不能完全避免

swap

的使用。該值的範圍是

0~100

,預設值是

60,當

時,會最大可能性盡量避免使用

swap。2、

innodb_flush_method

設為o_direct

innodb_flush_method

的選項有:

fdatasync

、o_dsync

、o_direct。

/* we disable os caching (o_direct) only ondata files */

if (type != os_log_file &&

srv_unix_file_flush_method == srv_unix_o_direct)

說明了除日誌檔案外,buffer  pool都會繞過cache,直接對應磁碟。但是日誌檔案還是會寫入cache中。也有可能會使用swap,但是由於mysql的log是覆蓋迴圈寫入的,因此影響並不會很大。 3、

memlock

強制使用物理記憶體

memlock

將不會使用

swap

,但是必須以

root

使用者啟動

mysql

,侷限性較大。

解決方法:l重啟

swap 1、

free

檢視是否有記憶體足以存放

swap

中的資料

total      

used       free    shared    buffers     cached

mem:        

64410      64117        292          0        127       9846

-/+buffers/cache:     

54143      10267

swap:       

12287      3346       8941

注:mem

中的free

並沒有實際意義,它用於表示未被分配為

buffer/cache

的記憶體大小,而這裡我們需要關注的是

buffer/cache

中free

的大小,該大小大於

swap

中used

的大小,方可重啟

swap

,不然mysql

程序可能會被強制關閉。

2、swapoff -a && swapon -a&

關閉,再開啟

swap

以上可能有所疏漏,但是為自己所理解,並會不斷改進,歡迎多多指教。

避免使用openurl時出現異常的解決方法

當使用cinternetsession openurl獲取網路上的檔案時,若網路異常或檔案不存在導致檔案訪問不了,openurl則會丟擲異常,而以捕獲異常的方式處理這個情況往往是不合理的。例如 加殼過的程式則有可能捕獲不了這個異常。於是,我們可以通過在使用openurl前先判斷指定的url是否可訪問...

動態修改swap大小的方法 使用swap檔案

1.首先用命令free檢視系統內 swap 分割槽大小。free m total used free shared buffers cached mem 1002 964 38 0 21 410 buffers cache 532 470 swap 951 32 929 可以看到 swap 只有95...

避免和解決ANR的方法

即應用無響應。anr一般有三種型別 1 keydispatchtimeout 5 seconds 主要型別 按鍵或觸控事件在特定時間內無響應2 broadcasttimeout 10 seconds broadcastreceiver 在特定時間內無法處理完成3 servicetimeout 20 ...