質問 > 管理機能 > 商品登録時にタイムアウトしてしまう。 |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
saifis |
投稿日時: 2017/3/2 13:05
対応状況: −−−
|
新米 登録日: 2017/3/2 居住地: 投稿: 7 |
商品登録時にタイムアウトしてしまう。 ▼テンプレート
[EC-CUBE] 2.13.1 2013年末より稼働 [レンタルサーバ] さくらインターネット [OS] CentOS 6 [PHP] 5.4.45 [データベース] MySQL 5.5.54-log [WEBサーバ] [ブラウザ] [導入プラグインの有無] PGマルチペイメントサービス 決済補助機能プラグイン 1.3 [カスタマイズの有無] CSSやストアサイドでの軽微なデザイン変更 [現象] 商品の情報の操作中にタイムアウトし、一時DBのデッドロックが発生、さくらインターネットに問い合わせなどしてDBデッドロックは解消したものの、 以降商品の追加や変更を行おうとすると、応答がなくなり、最終的にPHP側のタイムアウトエラーになります。 Debugモードで出るエラーは以下のとおりです。 Fatal error(E_ERROR): Maximum execution time of 30 seconds exceeded on [/home/xxxxxxxxxxx/www/ec_cube/data/module/PEAR.php(671)] 登録商品数は2400前後ありますが、現象が起きるまでは特に操作が遅い、ということはなかったようです。 既にかなり古いパージョンを使用していることもあり、バージョンアップ等したほうが良いのかもしれませんが、現状で何かできることはないでしょうか? |
yuh |
投稿日時: 2017/3/2 13:39
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: 商品登録時にタイムアウトしてしまう。 おそらくカテゴリの集計部分だとは思いますが、一旦
DBログの方を確認した方がいいかと思います。 フロント側でカテゴリ数の表示(食べ物(32)の32の部分)を使用していないのであれば、その部分の集計を使用しないようにして負荷を下げる方法と、集計部分のクエリを調整して対応する方法があるかと思います。
|
saifis |
投稿日時: 2017/3/2 14:15
対応状況: −−−
|
新米 登録日: 2017/3/2 居住地: 投稿: 7 |
Re: 商品登録時にタイムアウトしてしまう。 返信ありがとうございます。DBログについて、レンタルサーバのため取得に手間取りそうですが、やってみます。集計に関してですが、ストアサイトの方で使用しているため取り除くのは困難です。
ただ、ストア側でのカウントに影響はないように見えます。1500件などに大きな影響がないように見えます。 また、再度確認したところ、商品の複製はタイム・アウトするものの成功、削除は同じくタイムアウトで削除されない、ということが確認できました。 |
yuh |
投稿日時: 2017/3/2 14:26
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: 商品登録時にタイムアウトしてしまう。 管理画面からDBのログ確認できますよー
|
saifis |
投稿日時: 2017/3/6 14:36
対応状況: −−−
|
新米 登録日: 2017/3/2 居住地: 投稿: 7 |
Re: 商品登録時にタイムアウトしてしまう。 すいません返信遅れました。おそらく最初の問題となったDBエラーはこちらです。
2月23日に起きたもので、このエラー以降商品に対する書き込み全般に問題が出ています。 [execute end 58ae3f902aa53#28] SQL: PREPARE mdb2_statement_mysql_28aa23bc6b2cb8d33209890acddca98e8e3aaab474 FROM 'UPDATE dtb_category_count SET create_date= CURRENT_TIMESTAMP, product_count= ? WHERE category_id = ?' PlaceHolder: array ( 0 => '80', 1 => 18, ) execution time: 50.73 sec from xxxxxx login_id = xxxxxxxxxxx(0)[a6rfviqb5r60j04cmdv2j8joc7] /home/xxxxxxxx/www/ec_cube/woodyadmin/products/product.php(29): LC_Page_Admin_Products_Product_Ex->process /home/xxxxxxxx/www/ec_cube/data/class_extends/page_extends/admin/products/LC_Page_Admin_Products_Product_Ex.php(54): LC_Page_Admin_Products_Product->process /home/xxxxxxxx/www/ec_cube/data/class/pages/admin/products/LC_Page_Admin_Products_Product.php(70): LC_Page_Admin_Products_Product->action /home/xxxxxxxx/www/ec_cube/data/class/pages/admin/products/LC_Page_Admin_Products_Product.php(169): SC_Helper_DB->sfCountCategory /home/xxxxxxxx/www/ec_cube/data/class/helper/SC_Helper_DB.php(802): SC_Query->update /home/xxxxxxxx/www/ec_cube/data/class/SC_Query.php(627): SC_Query->query /home/xxxxxxxx/www/ec_cube/data/class/SC_Query.php(865): SC_Query->execute /home/xxxxxxxx/www/ec_cube/data/class/SC_Query.php(1041): SC_Query->lfEndDbTraceLog /home/xxxxxxxx/www/ec_cube/data/class/SC_Query.php(1188): GC_Utils->gfPrintLog 操作しているユーザーの話による、商品のカテゴリ情報をいじっている最中にタイムアウトになり、それ以降商品登録ができない状態になっています。 また、これ以降のDBエラーは出ておらず、エラーログのみです。 その後のエラーログは以下のような感じで、毎回違うところでエラーになっていて、とにかくタイム・アウトしたタイミングでエラーになるようです。Phpのタイムアウト時間を120まで上げても結局タイムアウトしてしまいます。 さくらレンタルサーバの動きを見ていると、まるで無限ループに陥ったように延々とCPUリソースを専有し、プロセスを終了するまでそのままです。 |
yuh |
投稿日時: 2017/3/6 18:38
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: 商品登録時にタイムアウトしてしまう。 NOSTOCK_HIDDENの設定ってどのようになっていますか?
その値によって対応するクエリが違うんですが 例えばMYSQLでNOSTOCK_HIDDENがfalseの場合は SC_Helper_DBのsfCountCategory部分の更新のクエリが データを取得・チェック。カテゴリ一つづつ更新 って感じで処理してるので、
こんな感じのクエリに変えてしまって、 最初に新規追加時のデータをまとめてINSERT。 次にすべてのカテゴリの集計をまとめて更新するようにして、 クエリ自体がちゃんとINDEX効かせてうまくいくように調整していって、 同じような感じでdtb_category_total_countにちょっと手を加えて調整を行えば 何とかなるとは思います。 Postgresqlであれば全くクエリの書き方は違いますが、方法は色々あります。
|
saifis |
投稿日時: 2017/3/6 21:21
対応状況: −−−
|
新米 登録日: 2017/3/2 居住地: 投稿: 7 |
Re: 商品登録時にタイムアウトしてしまう。 ありがとうございます。確認したところTrueになっています。
|
yuh |
投稿日時: 2017/3/6 21:46
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: 商品登録時にタイムアウトしてしまう。 trueであれば在庫周りのクエリを追加して、INDEX効かせながら正常に動作するように調整すれば大丈夫です。
|
saifis |
投稿日時: 2017/3/7 9:22
対応状況: −−−
|
新米 登録日: 2017/3/2 居住地: 投稿: 7 |
Re: 商品登録時にタイムアウトしてしまう。 丁寧にありがとうございます。
さっそく試してみて結果を報告します。 |
saifis |
投稿日時: 2017/3/7 13:21
対応状況: −−−
|
新米 登録日: 2017/3/2 居住地: 投稿: 7 |
Re: 商品登録時にタイムアウトしてしまう。 本格的に作業できるまでちょっと時間かかりそうですが、
SC_Helper_DBのsfCountCategoryをすぐにReturn;で帰るようにしたら問題なく動くようになったので、箇所としては間違いないのではと思います。 本当にありがとうございました。 |
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |