外部通信エラー
WordPressでcURL errorが出たので修正してもらう
数日前からWordPressの管理画面に入ると、Query MonitorのHttp API 呼び出しが赤くなっていることに気づく。最初は気に止めていなかったが、OGPGraphがローカルでは動くのに、本番サーバーで動かなくなることや、プラグインが更新できないので、それが原因だとわかった。症状はcURL error 6: getaddrinfo() thread failed to start (http_request_failed)と出ている。どうやら、外部と通信している機能に障害が出ているらしい。AIに聞いてみると4つの可能性が表示された。
サーバーのリソース枯渇: サーバー(またはPHP)のメモリ制限に達し、cURLがDNSの問い合わせプロセスを起動できていない。
サーバーの同時接続数・スレッド制限: ホスティングサーバーの制限により、システムがスレッドを生成できなかった。
DNS設定・ネットワークの一時的な不具合: 外部サーバー(WordPress.orgなど)との通信やDNSサーバーの解決で一時的なエラーが起きている。
ファイヤーウォールやセキュリティ設定: サーバー側のセキュリティ機能がcURL通信をブロックしている。
その対処法がピンと来る回答じゃなかった。そこで、Google検索で調べると、先にあったサーバーのリソース枯渇という表現が多く出てくる。そんな使っている訳じゃないし、おかしいなと思いつつ、Yahooのリアルタイム検索を行うと、自分とまさに同じ症状の人がいた。
そのため、エックスサーバーに早速問い合わせすると、1日ほどで解消。原因はvscode関連のプロセスが過多っぽいとのこと。プロセスを強制終了してもらう。ありがたいことに、こちら側での対処方法も教えてくれた。
作業終了後はリモート接続を明示的に切断する
SSH経由のリモート開発ツールを使っている場合、ツールのウィンドウを閉じるだけではサーバー側のプロセスが残留することがあるらしい。なので、作業が終わったら、ツールの「リモート接続を閉じる」か「切断」を使って、接続を正しく終了させるべし。Remote SSHを使っているので、枠の左下に表示されている接続を切ることにした。
同時接続数を必要最小限にとどめる
複数の接続を同時に開いたままにすると、プロセスが累積しやすい。使用していない接続はその都度切断するのが吉とのこと。自分一人しか使っていないので、これは関係ないっぽい。
今後は開いたら切るを徹底しよう。