1

Photologueアプリ(Python Imaging Libraryに依存)を使用するDjangoを使用して写真ホスティングWebサイトを作成しました。ユーザーが写真をアップロードすると、サイズ変更された複数の写真がそれぞれに生成されます(たとえば、小/中/大、サムネイルなど)。問題は、サイズ変更プロセスが100%CPUを消費し、Djangoが同時リクエストをほとんど処理できないようにすることです(1桁以上遅くなります)。ここから離れない限り、このCPU使用率をなんとか制限する必要があるようです。

「cpulimit」コマンドを使用してPIDでのCPU使用率を制限して、問題が解決するかどうかを確認しようとしましたが、効果がないようです。どういうわけかPILによってCPU使用率を制限できますか?私が見逃しているアプローチはありますか?私のサーバーはUbuntuEC2マイクロティアなので、RAM / CPUパワーの不足が問題になる可能性がありますか?この問題は2人の同時ユーザーでのみ発生するため、問題になる可能性は低いようです。

更新:Andreの提案に従って、Django 1.4.1にアップグレードしました。これにより、開発サーバーが同時リクエストを許可するようになりました。ただし、PILがCPUを占有しているため、それでも耐えられないほど低速です。

4

1 に答える 1

0

最新の Pillow (通常、元の PIL よりもサイズ変更が 7 倍高速) またはPillow-SIMD (最大 30倍高速)を使用して高速化できます。

于 2016-10-09T10:49:39.520 に答える