違う観点からの話です。
欲している回答とは異なる内容であるかもしれません。
失礼な!そんなこと全部やった上での質問だよ!って場合はすいません。先に謝っておきます。
なので参考程度に軽くお読みください。
もちろん良いサーバーを選定することも大切なことです。
ただ、同時にユーザーがストレスを感じない程度に速さが出てという点に注目すれば、Djangoの開発の時点でクリアできるものも多々あります。
それどころか、良いサーバーを選んだところでDjango設計のせいでそれが全くの無駄になってしまうこともあります。
以下に代表的なものを長くならないように述べます。
クエリのチューニング
データベースへのアクセスはボトルネックとなる可能性がとても高い部分です
ハイパフォーマンスDjango - Model
おなじみdjnago-debug-toolbarで無駄なクエリが投げられていないかを確認し、大量のクエリを投げている部分にはselect_related()
やprefetch_related()
を使うことでのパフォーマンスの改善は見られないか、等。
(私が開発する上ではこれで改善が見られることがほぼ大半と言っていいほどです。)
カスタムフィルターやタグの中で思いもよらないクエリが投げられていることもよくあることです。
キャッシュが正常に機能しているか
memcached
を採用していない場合、導入によって大幅に改善することもあります。
また、django-fancy-cacheのようにモデルの更新に対してキャッシュを削除したりすることで、View単位よりも柔軟にキャッシュを制御したりすることができるものあります。
上記以外にもDjangoのパフォーマンス改善の糸口はたくさんあります。
決して「あれをしたか?」「これもしたか?」と言いたいわけではなく、サーバーは最終的に選ぶしかないものですが、Django設計は自分次第でどうにでもなる、ということです。
もしかすると、サーバーを選定した後にも改善できる余地があるかもしれないということを考慮した上での運用をオススメします。
以下も参考になるかもしれません
Disqusでは80億PVを処理するためのノウハウが公開されています。(少し前のものですがかなり参考になります)。
Scaling Django to 8 Billion Page Views
Disqus のスケール - Django で月間80億PVを処理する
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/18 10:15
2017/05/18 10:35