Memcache/Redis 的单独服务器?

4 django memcached linode redis server

我在我的项目中使用 Django,我将在 Linode 或任何其他托管服务上托管它。另外,如果我想使用 memcache,我需要一个新的 Linode 吗?意味着只有一台服务器就可以了,或者我必须在两台服务器上托管我的网站,一台用于 memcache,一台用于 django?Redis 也一样吗?我还需要一个单独的 MySQL 服务器吗?

Mar*_*way 5

我认为你不明白没有人是算命的巫师。没有人知道您每秒将收到多少请求,也不知道每个请求的 CPU/内存密集程度如何。没有人知道你的代码是如何优化的。没有人知道您的应用程序是读取繁重还是写入繁重。您的用例是您自己的,并且您可能是唯一估计它的人。

我对您的唯一实际建议是尝试估计您的服务器数据,并在一台机器上切断负载并对您的设置进行基准测试。如果您对性能不满意,请放大。您可以通过增加 linode 的大小来垂直扩展,也可以通过添加更多 linode 实例来水平扩展。在后一种情况下,您很可能会将您的数据库放在它自己的机器上,并且有多个由负载均衡器提供的 django 实例。这些 Django 实例可以在一台机器上共享相同的内存缓存,或者它们每个都可以在自己的机器上拥有自己的内存缓存。哪一个更好?我不能告诉你。这再次取决于您的用例。

如果我是你,我会把它全部设置在一个 linode 实例上。我会创建我认为接近现实世界的测试数据。然后我会尝试用估计的每秒请求数来测试我的响应时间。我会测量响应时间、缓存命中率和内存使用情况。然后我会根据我的用例是否对这种性能水平感到满意,因为我真的是唯一知道什么是令人满意的性能的人。此外,添加更多 linode 资源不一定是我首先尝试提高性能的地方。

一些关于优化和基准测试的重要提示可以在这里找到:https : //docs.djangoproject.com/en/1.8/topics/performance/ http://blog.disqus.com/post/62187806135/scaling-django-to- 80 亿页浏览量 http://scottbarnham.com/blog/2008/04/28/django-performance-testing-a-real-world-example/

很多书籍中都可以找到有关扩展 Django 的深夜阅读,我喜欢这本:https : //highperformancedjango.com/

对不起,如果我说得有点生硬,我只是想让你明白,没有人可以走进这里,给你一个很大程度的信心的答案。这个问题没有直接的答案。

TL;DR 从一个实例开始,只有在您确信自己需要时才进行扩展。