自宅のCentOS 7+Wordpressサーバーで、管理画面の動作が遅く、デバッグ用プラグイン「Query Monitor」をいれて通信状況を確認したところ、「cURL error 28: Resolving timed out after XXXXX milliseconds.」というエラーが頻発していました。
原因をいろいろ調べた結果、RHEL6系から、AレコードとAAAAレコードは同一ソケットで問い合わせを⾏うため、対応していないファイアウォールやブロードバンドルータ配下のホストでは名前解決で遅延が発⽣するらしく、これが原因でした。(名前解決時にAレコードとAAAAレコードの⼆つのレコードの結果が両⽅揃うまで待ち続けるため、タイムアウトにより5秒の遅延が発⽣するようです。)
そこでここでは、CentOS 7のWordpress管理画面が「cURL error」で遅いときの対処方法を紹介します。
目次
動作環境
この記事は、以下の環境での動作結果を基にしています。他のディストリビューションやバージョンでは、動作結果が異なる場合があることをご了承ください。
ソフトウェア | バージョン |
---|---|
CentOS Linux | 7.4.1708 |
回避手順
# nmcli con modify eth1 ipv4.dns-options single-request-reopen
# nmcli con show eth1 | grep ipv4.dns-options
ipv4.dns-options : "single-request-reopen"
# systemctl restart network.service
上から「AレコードとAAAAレコードでそれぞれ別ソケットを利用して問い合わせる設定」>「設定確認」>「設定を有効化するためにネットワークサービスを再起動」を実行しています。
問い合わせ状況は「tcpdump port 53 -n」コマンド等で確認すると、設定の前後で使用するソケットが変わっているのが分かります。
「vi /etc/sysconfig/network-scripts/ifcfg-eth0」で該当行を削除で既定値に戻ります。
おまけ
CentOS6だと以下の設定になるようです。
# vi /etc/sysconfig/network
RES_OPTIONS="single-request-reopen"
あとがき
自宅のCentOS 7+WordPress環境で管理画面の動作が遅かったのは、まさにこれが原因でした。これを設定してからサクサクです。