exceedone / exment

Exment is open source software for managing information assets on the Web. / Exmentは、情報資産をWeb上で管理するための、オープンソースソフトウェアです。
https://exment.net/docs/#
GNU General Public License v3.0
269 stars 68 forks source link

支払い一覧ページで負荷がかかりタイムアウトとなる #1258

Closed aoki-ist closed 1 year ago

aoki-ist commented 1 year ago

Describe the bug / バグの説明

支払い一覧ページ(/data/payment_list?view=2069913e1bb31c611ccb)にアクセスすると 以下のエラーが表示され、アクセスできない。

エラーメッセージ:Maximum execution time of 120 seconds exceeded
エラー詳細:#0 {main}`

To Reproduce / 再現手順

特定の条件はなく、どのユーザーがアクセスしても同様にエラーとなります。

Version / 発生バージョン

v4.2.6

Error log / エラーログ

※Apacheエラーログ

[Mon Dec 19 08:16:21.592033 2022] [php7:error] [pid 21712] [client 130.211.3.127:54013] PHP Fatal error:  Allowed memory size of 2147483648 bytes exhausted (tried to allocate 32768 bytes) in /var/www/exment/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php on line 360, referer: <URL>
[Mon Dec 19 08:20:24.853345 2022] [php7:error] [pid 21711] [client 130.211.3.127:55193] PHP Fatal error:  Maximum execution time of 120 seconds exceeded in /var/www/exment/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php on line 925, referer: <URL>

※Exmentログ

[2022-12-19 17:20:25] local.ERROR: Maximum execution time of 120 seconds exceeded {"userId":58,"exception":"[object] (Symfony\\Component\\Debug\\Exception\\FatalErrorException(code: 1): Maximum execution time of 120 seconds exceeded at /var/www/exment/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php:925)
[stacktrace]
#0 {main}
"}

Screenshots / スクリーンショット

冒頭のエラーメッセージがブラウザに表示されます。

Additional context / その他

PHP Fatal error:  Allowed memory size of 2147483648 bytes exhausted (tried to allocate 32768 bytes) in /var/www/exment/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php on line 360, referer: <URL>

上記のエラーが出ているため、PHPのメモリ上限値(memory_limit)を2GBから3GBに変更したところ このエラーは表示されなくなりましたが、タイムアウトのエラーは変わらず発生します。

また、発生時にはCPUに負荷がかかっており、サーバーのスペックを試験的に以下のように増強しましたが それでも処理しきれず同様のエラーが発生します。

増強前 → 増強後

CPU:2core → 8core
メモリ:4GB → 8GB
memory_limit:2048M → 4096M
a0z0 commented 1 year ago

PHPのタイムアウト値を増やしてみてはいかがでしょうか

参考 https://mrgoofy.hatenablog.com/entry/20100922/1285168658

aoki-ist commented 1 year ago

ご回答ありがとうございます。

タイムアウト値を増やすことで表示はできるようになるかと思いますが、 処理に120秒以上かかっているのはあまり正常ではないと考えているため、 この処理を改善する方向でご検討いただけますでしょうか。

a0z0 commented 1 year ago

すみませんが私も一利用者ですので... ここのIssuesがどういった運用状況なのかわかりません。

aoki-ist commented 1 year ago

@a0z0 Exmentの方かと勘違いしておりました、申し訳ございません。 ご助言ありがとうございます。

rkawaka commented 1 year ago

いつもお世話になっております Exment管理部です

掲題の現象について確認中ですが、以下のような情報をいただけますと幸いです

①環境(サーバ(ローカルorAWS等)、OS(Linux、Windows等)) ②「支払一覧ページ」の種類(プラグインページ等) *②の場合は、プラグイン一式を共有いただくことで差し支えないでしょうか? ③その他、お気づきの詳細情報をいただければ幸いです

お手数ですがよろしくお願い致します

aoki-ist commented 1 year ago

@rkawaka ご連絡ありがとうございます。

あらためてカスタムテーブルの列構成を見直す方針で進めておりますので 本件はクローズとさせていただきます。

ご連絡いただいたところ申し訳ございません。

rkawaka commented 1 year ago

いつもお世話になっております Exment管理部です

ご返信ありがとうございます Closeの件、了解いたしました 今後ともどうぞよろしくお願い致します