0

次のコマンドを使用して、GraphicsMagick で PSD を PNG に変換しようとしています。

#gm convert file.psd -flatten file.png

Web アプリケーションがステージング サーバーにある間は、すべて問題ないように見えます。Web アプリケーションを運用サーバーに移動すると、一部の PSD ファイルで次のエラー メッセージが表示されます。

In GraphicsMagick 1.3.12 : gm convert: Too much image data in file.

またはこれ:

In GraphicsMagick 1.2.10 : gm convert: Memory allocation failed (unable to allocate cache info) [Cannot allocate memory].

最もばかげているのは、スタギングサーバーでは機能しますが、運用サーバーでは機能しないことです。スタギング サーバーは VMWare の FreeBSD であり、運用サーバーは物理サーバーです。

インターネットで見つけたドキュメントはほとんどありません。数か月前のスレッドのみ: http://sourceforge.net/mailarchive/forum.php?thread_name=20110301013714.GC15521%40node99.net&forum_name=graphicsmagick-help

同じ問題について言及しましたが、返信はありません。

ここで助けを得ることができるかどうか疑問に思っています。あるいは、私が間違っているかもしれません。ImageMagick を選択する必要があります。

4

2 に答える 2

0

本番サーバーは、ステージング VM よりもプロセスごとのメモリ制限が低い可能性があります。つまり、制限はおそらく、実際のハードウェアではなく、ソフトウェアによって課されます。

制限は、システム全体 (sysctl を使用) だけでなく、ユーザーごと (またはむしろuser-class ごと) にすることもできます。実行してみてください

% sysctl -Aa|fgrep kern.max

2 つのサーバー間の出力を比較します (kern.maxdsiz と kern.maxssiz が特に重要です)。また、Web サーバー ユーザーとして単純に制限を実行してみてください。

% su          # become root
% su -m www   # become www
% limits

もう一度、出力を比較します。

最後に、ステージング システムは 1 つのファイル変換しか処理していないため、制限に達していないのに対し、実稼働サーバーは (他のコンテンツの提供など、他の目的のために) 単により多くのメモリを使用している可能性がありますか?

于 2013-04-10T22:56:30.490 に答える