Mysql優化–skip-name-resolve

同一IDC ,IDC內部有DNS伺服器,對各伺服器的IP做瞭反向解析,但未對內網IP做反向解析,所以使用skip-name-resolve以後用內網地址向mysqlslap請求響應快瞭一半

 

涉及參數 –skip-name-resolve ,–skip-host-cache ,–skip-networking

 

當新的客戶連接mysqld時,mysqld創建一個新的線程來處理請求。該線程先檢查是否主機名在主機名緩存中。如果不在,線程試圖解析主機名:

 

如果操作系統支持線程安全gethostbyaddr_r ()和gethostbyname_r()調用,線程使用它們來執行主機名解析。

 

如果操作系統不支持線程安全調用,線程鎖定一個互斥體並調用gethostbyaddr()和gethostbyname()。在這種情況下,在第1個線程解鎖互斥體前,沒有其它線程可以解析不在主機名緩存中的主機名。

 

你可以用–skip-name-resolve選項啟動mysqld來禁用DNS主機名查找。然而,在這種情況下,你隻可以使用MySQL中的授權表中的IP號。

 

如果你有一個很慢的DNS和許多主機,你可以通過用–skip-name-resolve禁用DNS查找或增加HOST_CACHE_SIZE設定(默認值:128)並重新編譯mysqld來提高性能。

 

你可以用–skip-host-cache選項啟動伺服器來禁用主機名緩存。要想清除主機名緩存,執行FLUSH HOSTS語句或執行mysqladmin flush-hosts命令。

 

如果你想要完全禁止TCP/IP連接,用–skip-networking選項啟動mysqld。

 

連接mysql時,都會向DNS做反向地址查詢

 

隻有等超時失敗後,mysql才會響應客戶端

 

等待解析的mysql進程都是 login狀態

 

You May Also Like