2

私はMagento Webshopを持っています.cronジョブを実行して、スケジュールされたプロセスを実行します。その一つが製品の輸入です。製品のインポートとカテゴリへの割り当てを担当します。SQL の状態によると、この部分が完成したことがわかります。キャッシュを無効にしようとした後。キャッシュについては、tcp で memcache を使用するか、ソケットで redis を使用しようとしています。どちらのオプションでも同じ結果が得られます。strace コマンドを使用して、何をしようとしているのかを確認します。

sudo strace -e trace=all -f -d -p 10319

過去 2 時間の出力は次のとおりです。

[wait(0x57f) = 10319]
pid 10319 stopped, [SIGTRAP]
brk(0x236ec000 [wait(0x57f) = 10319]
pid 10319 stopped, [SIGTRAP]
)                         = 0x236ec000
 [wait(0x57f) = 10319]
pid 10319 stopped, [SIGTRAP]
brk(0x2372c000 [wait(0x57f) = 10319]
pid 10319 stopped, [SIGTRAP]
)                         = 0x2372c000
 [wait(0x57f) = 10319]
pid 10319 stopped, [SIGTRAP]
brk(0x2376c000 [wait(0x57f) = 10319]
pid 10319 stopped, [SIGTRAP]
)                         = 0x2376c000

brk を使用してメモリを割り当てることは知っています。

他の出力は何を意味しますか? そのような行動の理由は何ですか?何か案は?

4

1 に答える 1

3

問題はarray_merge機能にあり、270000 エンティティのサイクルがあり、それらすべてがそのサイクル内でマージされました。そのため、スクリプトは大量のメモリを割り当てていました。その代わりに、はるかに高速な連想配列を使用しました。

于 2014-11-30T08:46:06.350 に答える