公開日:2020.01.15

cURLのメモリリーク

テクログphp

こんにちは、kaiです。

最近新作ゲームをプレイ中に自宅PCのメモリ使用率が95%まで上がったことがあって(windows defenderの問題でした)、

メモリリークって怖いな…と思う今日この頃ですが、それに関連して今回は担当していた案件で遭遇した問題について紹介します。

取得したURLにPHPのcURL関数を用いてアクセスするプログラムを作成したところ、

実行中、時間を追うごとにサーバーのメモリ消費量が増大していく現象が発生しました。

プログラム側ではスタックし続けるような処理を実装していないので、調査したところ、

curlの古いバージョンにはキャッシュを蓄積し続けるバグが存在しておりプログラム実行中にはメモリが解放されずに

消費されていくことが分かりました。

そこで暫定の対応ではありますが、

curl利用部分を個別のプログラムとして切り出し、そこにURLを分割して渡すことでメモリ消費を抑える形に改修しました。

追々バージョンアップや別の方法に変えたいところですね…

まだ記事作成時点でテスト中ですが、結果や追加対応などはまた報告できればと。

外部要因の不具合はなかなか出くわさなかったので個人的には良い経験になったと思います。

ではまた。

・参考URL

https://qiita.com/digitalpeak/items/4b39fdcb8fae7d09f406

https://blog.eviry.com/entry/2019/07/23/160715_1

この記事を書いた人

kai

入社年2018年

出身地埼玉県

業務内容システム開発

特技または趣味PCゲーム

kaiの記事一覧へ

テクログに関する記事一覧