0

Django でホストされている当社の Web サイトは、本番サーバーでは非常に低速です。データベースへのアクセスが遅い (Mysql)、ファイルのダウンロードが遅い (X-Sendfile を試しましたが、影響はありませんでした)。

このスニペットに基づいたものを使用したプロファイリング、最も重い:

ncalls  tottime  percall  cumtime  percall filename:lineno(function)
 11570    0.577    0.000    0.577    0.000 /var/lib/python-support/python2.6/MySQLdb/times.py:43(DateTime_or_None)
  5786    0.500    0.000    0.617    0.000 /usr/local/lib/python2.6/dist-packages/django/db/models/base.py:244(__init__)
  5796    0.205    0.000    0.576    0.000 /usr/local/lib/python2.6/dist-packages/django/forms/widgets.py:411(render_option)
     8    0.190    0.024    1.014    0.127 /var/lib/python-support/python2.6/MySQLdb/cursors.py:282(_fetch_row)

21.6%   0.577 /var/lib/python-support/python2.6/MySQLdb/times.py
19.4%   0.520 /usr/local/lib/python2.6/dist-packages/django/db/models/base.py
 9.5%   0.253 /usr/local/lib/python2.6/dist-packages/django/forms/widgets.py
 7.4%   0.199 /var/lib/python-support/python2.6/MySQLdb/cursors.py

33.0%   0.882 /var/lib/python-support/python2.6/MySQLdb
32.6%   0.873 /usr/local/lib/python2.6/dist-packages/django/db
15.4%   0.413 /usr/local/lib/python2.6/dist-packages/django/forms
10.5%   0.280 /usr/local/lib/python2.6/dist-packages/django/utils

上記の呼び出しは、管理ページで実行されました。

私にできること: - mysql を更新する - django フレームワーク全体を更新する (まだ 1.1 で実行中)

しかし、これが非常に遅い理由は他にあるに違いないと思います。何か案は?

4

2 に答える 2

0

DateTime_or_Noneプロファイルの出力を見ると、MySQLdb からの関数に多くの時間が費やされていることがわかります。

私は最近同じ問題に遭遇しDATETIMEました.MySQLでのフィールドの使用は、特にPythonでは非常に遅く、通常は不要なPythondatetime型への変換のため、良い考えではないようです.

それに関するいくつかの記事を見つけました:

まあ、削除DATETIMEが正しい解決策になるかどうかはわかりません.MySQLdbから他のMySQLアダプタに変更すると、パフォーマンスが向上する可能性があります.

于 2014-03-28T11:27:42.517 に答える