![高流量下的服务器性能?](https://linux22.com/image/548013/%E9%AB%98%E6%B5%81%E9%87%8F%E4%B8%8B%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%80%A7%E8%83%BD%EF%BC%9F.png)
我需要确保我的网站经过适当优化(服务器、PHP 代码和 MySQL 查询),以应对高流量。我准备很快推广我的网站,预计流量会很大,每天会有 10,000-50,000 个注册用户,这意味着数据库密集型,以及大量的图片上传。我需要确保我的服务器能够处理加载。
PHP 代码很差劲,是由一家公司编写的埃兰斯,我知道我有 SQL 注入问题和慢查询,所以我知道这是首先要解决的问题。
该网站完全由 PHP/MySQL 和自定义框架构成,由我从 Elance 聘请的一家公司制作,制作过程有些粗糙。它容易受到 SQL 注入攻击,而且查询速度很慢。
我需要获得有关如何设置服务器、RAID 以及是否应该获得内容分发网络 (CDN),以及如何进行设置。
我需要一个了解数据库、服务器、安全、Linux 和 Apache 的专业人士很好。我不希望在开始营销时我的网站崩溃。
我当前的服务器设置是:
Dual quad-core Xeon Server (8 cores)
8 GB DDR RAM
2 x 1 TB 7200RPM SATA hard disk drives
RAID MIRROR
20 Mbit/s unmetered bandwidth
我知道这个问题很宽泛,但我的主要问题是:我应该使用 CDN 来传输图片吗?还是你认为一台强大的服务器就能处理负载?我应该使用 memcache 还是亚太经合组织? ETC...
这是一个基本的社交网络利基网站,但流量很大,上传的图片数量也很多,而且网站以图片为基础。如果有 RAID,会使用哪种 RAID?哪种硬盘驱动器?我正在考虑的公司专用服务器价格相当实惠,而且有很多选择。上面的服务器基本费用仅为每月 199 美元。我可以添加 2 个 600 GB 10k RPM 驱动器,一次性费用为 300 美元,等等……
答案1
上述服务器基本价格仅为每月 199 美元。我可以添加 2 个 600 GB 10k RPM 驱动器,一次性费用为 300 美元,
啊,这说不通。这不是“大量图像”;而是“小型低端服务器”。不是“巨型机器”,而是“eBay 大小”。将它与福特福克斯之类的汽车进行比较,然后问如何用它驾驶一级方程式赛车。这行不通。
现实情况是:如果您达到了所说的注册人数,那么一台服务器是无法满足要求的。要点。一台只有 2-3 张光盘的服务器是不够的。如果您能使用 SuperMicro 存储服务器(可容纳 72 (!) 块硬盘)来运行它,那您就太幸运了。然后您就能拥有 I/O 和存储容量。
每天有 10,000-50,000 个注册,这意味着数据库密集型
实际情况:低端意味着每月 300,000 名注册用户。6 个月内即有 180 万名用户。
每个用户上传 1 兆字节的图像(许多人不会上传,但许多人会上传更多)。我们谈论的是 1800 GB 的巨量。仅用于图像。而且这是非常保守的估计。仅此一项就超出了您的磁盘允许的容量。而且这是非常保守的数字。
现实情况是:180 万用户,即使只有一小部分活跃,也会占用大量 CPU 和磁盘 I/O 用于数据库 - 最好在这里讨论一些重要的 SSD 磁盘(2-3)。SSD 是因为您的管理数据库不会那么大,而且 SSD 会扼杀 IOPS 方面的任何其他东西,而服务器就是靠 IOPS 运行的。不是存储大小,而是 IOPS。
但我的印象是双至强处理器每天可以处理 2-5 万次访问
啊,是的,这很容易做到。
问题是你每天没有 2 万到 5 万的访客。保守估计你每天有 1 万个新注册用户。你认为访客永远不会回来吗?如果不是,那么在 6 个月内,你将轻松达到……嗯……假设每天有 5% 的人访问……那就是每天 9 万次访问。这是我之前得到的保守数字。
上帝启动服务器,但优化不会让您走得太远。计划更换。一个强大的。
双四核 Xeon 服务器(8 核)8 GB DDR RAM 2 x 1 TB 7200 RPM SATA HD RAID 镜像 20 Mbit/s 无限带宽
好吧,8 GB RAM 对处理器来说就是个笑话,你在这方面有麻烦了。你需要更多的 RAM,我建议至少 24 GB。这些光盘实际上什么都用不了。我现在在负载服务器上使用 Velociraptors 3000 GB - IOPS 好,价格也好。SATA,但在 SAS 背板上,它们很出色。无论你做什么,光盘都会成为你的瓶颈。除非你将几乎所有东西都移到 RAM 中以满足常规请求。7,200 RPM SATA 光盘不适合运行不断加载的服务器。我建议增加 RAM 的一个原因是 - 你可能想要运行反向代理。
CDN:可以工作,但你必须考虑价格;)
答案2
这里要考虑的第二件事是,您还只为所有服务器角色分配了一台服务器,没有冗余。对于这种流量,您需要真正考虑一下您的基础架构,并使用负载平衡器、多个 Web 服务器和数据库服务器来缓解单点故障,并且您确实需要寻找高端 SAS 驱动器。如果这些流量真的到达您期望的位置,您最好考虑刀片服务器设置。