剛開始以為是網路慢問題,沒去注意。後面通過打上時間日誌觀察發現,慢的時候基本是在5秒。既然那麼有規律了,那肯定是有某個問題的。
http請求的初始過程是什麼呢?dns解析。
通過ping和wget命令,發現確實在網域名稱解析的那個過程很慢。所以,最終在host直接寫死網域名稱,解決了這個問題。
為什麼是5秒呢?
我們知道配置dns服務的位址在/etc/resolv.conf。
通過man resolv.conf可以找到
timeout:n
sets the amount of time the resolver will wait for
a response from a remote name server before retry-
ing the query via a different name server. mea-
sured in seconds, the default is res_timeout (see).
檢視/usr/include/resolv.h 可以找到這行** # define res_timeout 5 /* min. seconds between retries */
問題是解決了,但是卻引申出了很多知識點。
dns的解析預設超時時間是5秒
網上說,有可能是開啟了ipv6卻沒有給這個網域名稱分配ipv6的位址,通過檢視vim /etc/modprobe.conf,發現沒有開啟ipv6功能。
檢視網域名稱的解析過程有dig命令
參考文章:
mysql反向解析導致連線慢的問題
公司的乙個系統使用mysql資料庫,區域網內訪問時連線速度很慢,每次都要過十幾秒後才能連上,只要連線上了速度正常。在網上查了一下,發現了mysql有乙個 反向解析 的問題 安裝mysql後,預設 反向解析是開啟的。不管你是使用網域名稱還是 ip連線資料庫,mysqld都會做乙個反向解析的過程,即從 ...
Docker 容器中的網域名稱解析問題
假如,你的開發環境是用 docker 搭建的,當用 curl 來訪問區域網內另外一台伺服器的 api 時,會出現網域名稱無法解析的情況。出現類似下面的錯誤提示資訊 curl error 6 could not resolve host couldn t resolve host.the given ...
DNS網域名稱解析時的順序問題
etc resolv.conf 配置dns客戶端,它包含了主機的網域名稱搜尋順序和dns伺服器的位址,每一行應包含乙個關鍵字和乙個或多個的由空格隔開的引數。下面是乙個例子檔案 search linuxtro.grp4 nameserver 192.168.0.87 nameserver 192.16...