我的托管服务提供商建议我将服务器的内存从 8gb 增加到 24gb,每月的费用同样为 3x 120gb SSD。
对于我来说,SSD 选择似乎更合理;但我很好奇我的 Web 应用程序在 SSD 上运行时是否需要内存缓存。
谢谢。
答案1
在 RAM 和 SSD 之间进行选择时,您应该问的问题是“我的应用程序真正需要使用多少磁盘?”
如果您的应用程序主要是由脚本组成,用于执行计算、向用户发送自定义版本的页面并一遍又一遍地处理相同类型的请求(数据量不大),那么您所需要的就是 RAM。
但是,如果您正在运行文件服务器、流媒体或处理无法放入 RAM 的随机文件,SSD 提供的额外速度将对您大有裨益。如果应用程序进行大量写入,SSD 的另一个好处就是可以带来丰厚回报。SSD 的读取性能通常比写入性能好得多,但它们仍然比盘式驱动器快得多。
在我工作的地方,我们有一个应用程序每隔几分钟就会在数万个 RRD 上写入几 GB 的数据。将服务器升级为具有快速 SSD 的服务器可以提高性能戏剧性地。对于处理身份验证数据库的服务器来说,情况可能并非如此。尽管该数据库很大,但对它的查询通常很相似(同一个人一遍又一遍地登录同一个应用程序),因此在 RAM 中缓存更为有益。
基本上,如果您要反复处理相同的请求,请选择 RAM。操作系统将缓存您经常使用的数据,您将看到良好的性能。如果您的应用程序对“随机”文件进行大量 IO,您将会破坏缓存,并且会从快速 SSD 中看到更多好处。
答案2
闪存 SSD(我认为我们在这里谈论的就是它)速度很快,但它们不能替代 RAM。典型的服务器 RAM 带宽以每秒几 GB 为单位,读取和写入的延迟在低纳秒范围内 - 您正在查看的基于闪存的 SSD 的带宽最多为数百兆字节/秒,延迟在微秒范围内。
如果涉及其他因素,这对您的应用来说可能没有影响,但从 SSD 访问任何数据仍然会比直接从 RAM 读取慢几个数量级。
答案3
它可能仍然需要缓存。您将运行 24GB 内存,需要多少存储空间?如果您遇到性能问题,内存会有所帮助,但也可能是您的应用程序缓存存储其空间的卷或位置。
答案4
您需要对现有系统进行性能测量,以找出瓶颈所在。
让我们假设您没有任何重大瓶颈(顺便说一句,这是一个糟糕的假设)。问题是,您想要 24G 的极快读取速度、磁盘速度写入速度,还是 120G 的相当快的读取和写入速度。如果您有超过 24G 的数据要处理,或者数据经常更改,那么您需要 SSD。
另一方面,如果您只有 10G 的静态数据需要提供,并且您的服务器进程只占用 2G 的 RAM,那么您可以将文档根目录放在具有 24G RAM 的 RAM 磁盘上,然后就可以了。
如果存在瓶颈(交换、磁盘 I/O 读取带宽、磁盘 I/O 写入带宽、每秒 I/O 操作数),则需要专门解决这些问题。两种选择都可以提供帮助,但哪种更好取决于具体情况。