Don
1
こんにちは、
この修正 FIX: automatically timeout long running image magick commands (#12670) · discourse/discourse@5deda5e · GitHub が、複数の画像アップロードを壊していると思います。3 枚の画像(それぞれ約 5〜6MB)をアップロードしようとすると、毎回このエラーが表示され、動作しません。20 秒のタイムアウトが原因ではないかと考えています。
lib/discourse.rb:93:in 'exec': PNG から JPG への変換中にエラーが発生しました。
ありがとうございます 
sam
(Sam Saffron)
2
このサイトでも失敗しますか?画像のアップロードを試してみてください(子供向けの内容であることが前提です)。
ここに制限が必要です。20 秒を大きく超えることはできません。
「いいね!」 1
Don
3
こんにちは、サムさん。
前回はここでも失敗したため、バグとして分類しましたが、今回はアップロードできました。私のサイトでは毎回失敗します。サイズは約 6MB/写真です。
sam
(Sam Saffron)
4
これは少し厄介ですね。ローカルでデバッグしたいので、元の画像のどれか一つをどこかにアップロードしてダウンロードできるようにしてもらえませんか?そうすれば、さまざまな ImageMagick コマンドの実行時間をテストできます。
「タイムアウトを延長する」サイトの設定を追加することも検討できますが、この単純な PNG から JPG への変換に 10 秒以上もかかっていることには少し懸念があります。
「いいね!」 3
Don
5
ありがとうございます!Mega にいくつかの画像をアップロードしました File folder on MEGA
sam
(Sam Saffron)
6
標準的な Docker インストール環境をお使いかどうか確認いただけますでしょうか。
上記のイメージの 1 つを実際にテストしました。コンテナ内で以下の 2 つのコマンドを実行しています。
timeout -k 10.0 5 identify -format %Q image.jpg
および
timeout -k 40.0 20 convert jpeg:original.jpg -auto-orient -background white -interlace none -flatten -quality 90 jpg:/tmp/target.jpg
最初のコマンドは、私のローカル環境では割り当てられた 5 秒のうち 0.27 秒で完了しました。
2 番目のコマンドは、割り当てられた 20 秒のうち 1.3 秒で完了しました。
お使いのインストール環境と、それが動作しているサーバーの具体的なパフォーマンスについて、もう少し詳しく教えていただけますでしょうか。
「いいね!」 1
Don
7
Sam、確認ありがとうございます。はい、標準的な Docker インストールです。昨日、サイト全体が非常に遅くなっていたため、サーバーをアップグレードして再構築を行いました。サーバーのアップグレードにより、現在は正常に動作しています。今すぐテストしました。Digital Ocean は約 2 ヶ月前に、Premium Intel CPU を搭載した新しいプランを導入し、以前利用していた Regular CPU は性能が低下していました。
旧サーバー 
Basic - Shared CPU 2 vCPUs 4 GB 60 GB
新サーバー 
Basic - Premium Intel Shared CPU 2 vCPUs 4 GB 60 GB
このトピックを起こして申し訳ありませんでした。20 秒で十分でした。改めてありがとうございます!
「いいね!」 1
sam
(Sam Saffron)
8
はい、ここでは正しく動作していると思います。
タイムアウトを設定しないと、リソースの少ないインスタンスが画像をアップロードするユーザーに支配される高いリスクがあります。画像のリサイズに20秒ものCPU時間を割り当てるのは過剰です。
「いいね!」 3
sam
(Sam Saffron)
クローズされました:
9
このトピックは15時間後に自動的に閉鎖されました。新しい返信は受け付けていません。