我有一个面向日语的小型网址缩短服务。它被关闭是因为它在共享服务器上使用了太多资源(CPU 时间和内存)。这是几年前的事了,但如果我能负担得起的话,我有兴趣恢复生活。
我计划这次使用http://tighturl.com/project/,并且想知道说 linode 的最小 VPS 是否能够处理工作负载。大部分工作只是 mod_rewrites。
如果网站变慢也没关系,但也不是无法忍受。如果对该项目感兴趣,那么我可以升级 VPS。但是我是否正确地假设即使 VPS 被淹没它也不会因为影响其他用户的性能而被关闭?
不,Linode 不会因使用资源而关闭您。他们只会将您的 CPU 限制在您的百分比。如果没有其他人使用他们的 CPU,您也可以使用他们的 CPU,直到他们的 VPS 请求它,所以很有可能,您几乎总是会得到比您的份额更多的。您可以整天使用 RAM 和 CPU,如果您的网站变慢,只需升级 linode。
他们唯一特别关注的是高清访问,因为这可能会影响其他人,但这似乎不适用于您的情况。
我强烈推荐利诺德。
这实际上取决于您如何编写网站。我可以看到 VPS 被淹没了。如果您的 VPS 使用的资源多于分配的资源,它可能会被关闭。您的服务(可能是自定义的 fastcgi C++ 后端)越轻量级和速度越快,效果就越好。
你打算如何实施它?
URL 保持活跃多长时间?
如果您在 X 天/月/无论如何之后杀死它们,并且您每天只收到几十万个请求,我预计任何地方的入门级 VPS 都可以处理它。
我个人最关心带宽使用情况。我更喜欢“不计量”但有速度上限的服务,而不是真正快速但“计量”的连接 - 成本更容易预测:)
如果它是一个非常简单的实现,假设在数据库中查找缩短的项目,然后您将重定向返回到原始 URL - 它可能不会使用大量 CPU 或 RAM - 您唯一的问题应该是存储。如果平均 URL+shortID 是 1KB,并且您有 100 万个 URL,那么您已经看到了 1GB 的存储空间。每百万个 URL 将您的存储空间扩展 1GB,而我使用的托管服务提供商 ( http://tektonic.net )提供的入门级 VPS将达到约 1800 万条记录。
Tinyurl 网址压缩网站。优化以在 VPS 上获得更好的性能
与您在专用解决方案中获得的相比,许多 VPS 的 CPU 和分页内存资源较低。即使是硬盘空间也可能很昂贵。但是,您可以尝试制作更好的 C++ 甚至 perl 等任何使用公平算法的应用程序。
你可以考虑更好地优化你的程序的算法,而不是尝试获得更昂贵的平台或只是用更快的语言重写算法(然而,前者和后来在一定程度上有所帮助)。
您可以考虑的一些想法是所有低命中记录和一些最旧记录的老化。您可以将命中计数器存储在数据库中,但是不建议将日期存储在那里,而只需删除当前数据库中具有几个旧月份快照的所有匹配记录(您不需要以这种方式存储日期,只需删除所有匹配的记录在旧快照中并且命中率低)。此外,您可以分离旧数据并将其以高度压缩的“存档”形式存储 - 例如使用存储时间前缀等。您可以只清空旧记录,从而保留 id 并将它们迁移到第二个“离线”数据库以简化查询。
还要考虑更改散列算法,但它会带来一些挑战(例如寻找更好的方法来压缩字符串或将最常见的 URL 或其部分存储在一些提供“超级”ID 的快速前缀表中)。实际上,您可以提出挑战(就像维基百科用它的 100mb 随机文本做的那样)或在这里提出问题;-) 或者进行自己的研究,甚至保持原样,因为它无论如何都会起作用 p;
-gl