memory - GCP Bitnami Lamp Stack CPU 与内存
问题描述
我已经实现了一个系统,人们可以通过 http post 将文件上传到 htdocs 中的 LAMP Stack 文件夹/目录。像这样的图像上传系统是否需要 CPU 功率超过内存功率,反之亦然?
我问这样我可以在 Google Cloud Compute Engine Bitnami Lamp Stack 中的高 CPU 或高内存机器类型之间做出更好的选择。
解决方案
最佳答案需要您的问题提供的更多详细信息。有多少同时用户?上传量有多大?平均上传速度是多少?下载流量呢?服务器还执行了哪些其他任务?
有几个因素需要考虑。影响网络带宽的 CPU 选择;内存大小影响缓存;存储类型和大小会影响带宽和 IOPS。
在进入细节之前,作为一般规则,一旦n1-standard-1
实例大小达到或更大,内存和磁盘大小比 CPU 速度更重要。网络数据传输不是 CPU 周期的高消耗者,直到您持续达到每秒数十或数百兆比特。
CPU 选择
Google Compute Engine VM 实例根据实例大小限制网络速度。Google 为每个 CPU 内核提供高达每秒 2 Gbit 的速度。您只能在同一 VPC 的同一专区中的两个实例之间实现此性能水平。vCPU 内核越多,可能的带宽就越高。小于n1-standard-1
共享 vCPU 且没有带宽规格的实例。
内存选择
作为一般规则,您拥有的内存越多,性能就越好。但是,这在很大程度上取决于您的软件设计。在写入磁盘之前,您会在内存中缓存上传(通常情况下)吗?如果是这样,那么您将需要足够的内存来处理同时上传的数量乘以平均大小。
存储选择
磁盘 I/O 性能直接取决于磁盘类型和磁盘大小。小磁盘没有高性能。你需要多少性能?这取决于上面提出的问题。
概括
我建议创建一个基准来模拟您需要获得的内容。然后选择实例大小、内存大小、磁盘类型和磁盘大小。然后运行基准测试。监控 CPU 使用率、内存使用率、磁盘容量等。然后调整 VM 实例以微调这些数字。请记住始终在每个类别中保留额外的容量。试图利用 100% 通常意味着击中一切崩溃的性能膝盖。
推荐阅读
- reactjs - ReactJS - 在自定义元素中嵌入自定义元素
- javascript - 1 个 HTML 页面上的多个 datetimePickers 不起作用
- r - 重音不匹配的切换字符串
- eclipse - 通过转帖标头在 OSB 中传递值
- python - 如果我使用 `pd.read_csv`,我应该使用 `with open(file):` 吗?
- xamarin.forms - Xamarin 表单:System.TypeLoadException - 清理、删除 bin 和 obj 文件夹并构建不工作
- ruby - Ruby 2 是否向后兼容 Ruby 1?
- python - 通过对数组进行分组的 Numpy 拆分数组
- linux - 想要动态增加使用 shell 脚本中的变量
- javascript - 在div中选择ul的id