有关的:
我有一个关于容量规划的问题。服务器故障社区能否请帮助解决以下问题:
有人告诉我,如果您购买更大容量的 SSD,您可以获得更长的 SSD 使用寿命。理由是,较新的 SSD 具有磨损均衡,因此无论您是否将此写入分散到(逻辑)磁盘上,都应维持相同的写入量。如果您获得的 SSD 是您所需尺寸的两倍,那么您进行磨损均衡的能力就会增加一倍。
这有什么道理吗?
VMware 内存管理似乎是一个棘手的平衡行为。对于集群 RAM、资源池、VMware 的管理技术(TPS、膨胀、主机交换)、来宾内 RAM 利用率、交换、预留、共享和限制,存在很多变数。
我处于客户端使用专用 vSphere 集群资源的情况。但是,他们正在配置虚拟机,就好像它们在物理硬件上一样。反过来,这意味着标准 VM 构建可能具有 4 个 vCPU 和 16GB 或更多 RAM。我来自从小开始(1 个 vCPU,最小 RAM)的学校,检查实际使用情况并根据需要进行调整。不幸的是,许多供应商的要求和不熟悉虚拟化的人要求更多的资源而不是必要的……我对量化这个决定的影响很感兴趣。
来自“问题”集群的一些示例。
资源池摘要 - 看起来几乎 4:1 过度使用。请注意大量膨胀的 RAM。

资源分配 - 最坏情况分配列显示这些 VM 在受限条件下只能访问其配置 RAM 的 50% 以下。

上面列表中顶部 VM 的实时内存利用率图。分配了 4 个 vCPU 和 64GB RAM。它的平均使用量低于 9GB。

同一个VM的总结

在 vSphere 环境中过度使用和过度配置资源(特别是 RAM)的缺点是什么?
假设 VM 可以在更少的 RAM 中运行,是否可以说配置虚拟机具有比实际需要更多的 RAM 的开销?
什么是反驳:“如果 VM 分配了 16GB 的 RAM,但只使用了 4GB,有什么问题?? ”?例如,是否需要教育客户VM 与物理硬件不同?
应使用哪些特定指标来计量 RAM 使用量。跟踪“活动”随时间的峰值?看“消费”?
更新:我使用vCenter …
virtualization memory capacity-planning vmware-esxi vmware-vsphere
这是一个关于数据库容量规划的规范问题。
有关的:
我希望创建一个关于数据库容量规划工具和方法的规范问题。这是一个规范的问题。
显然,一般的工作流程是:
请随意描述适用于不同网络服务器、框架等的不同工具和技术,以及最佳实践。
我有一个写入 ext3 目录的应用程序,随着时间的推移,该目录已增长到大约 300 万个文件。不用说,读取这个目录的文件列表是慢得无法忍受的。
我不怪 ext3。正确的解决方案是让应用程序代码写入子目录,例如./a/b/c/abc.ext而不是仅使用./abc.ext.
我正在更改这样的子目录结构,我的问题很简单:我应该期望在一个 ext3 目录中存储大约多少文件,同时仍能获得可接受的性能?你有什么经验?
或者换句话说;假设我需要在结构中存储 300 万个文件,该结构应该有多少层深./a/b/c/abc.ext?
显然,这是一个无法准确回答的问题,但我正在寻找一个球场估计。
这是非常依赖于系统的,但很有可能我们会跨越某个任意的悬崖并进入真正的麻烦。我很好奇对于良好的 RAM 与磁盘空间比率存在什么样的经验法则。我们正在计划我们的下一轮系统,需要就 RAM、SSD 以及每个新节点将获得多少做出一些选择。
但是现在要了解一些性能细节!
在单个项目运行的正常工作流中,MongoDB 的写入百分比非常高(70-80%)。一旦处理管道的第二阶段命中,它的读取量就会非常高,因为它需要对处理的前半部分中识别的记录进行重复数据删除。这是“将您的工作集保存在 RAM 中”的工作流程,我们正在围绕该假设进行设计。
整个数据集不断受到来自最终用户派生源的随机查询的影响;尽管频率不规则,但大小通常很小(10 个文档为一组)。由于这是面向用户的,因此回复需要低于 3 秒的“现在无聊”阈值。这种访问模式在缓存中的可能性要小得多,因此很可能会导致磁盘命中。
二次处理工作流是对可能长达数天、数周甚至数月的先前处理运行的大量读取,并且不经常运行但仍需要快速运行。将访问上次处理运行中多达 100% 的文档。我怀疑,再多的缓存预热也无济于事。
完成的文档大小差异很大,但平均大小约为 8K。
正常项目处理的高读取部分强烈建议使用副本来帮助分配读取流量。我在别处读到1:10 RAM-GB 到 HD-GB 是慢磁盘的一个很好的经验法则,因为我们正在认真考虑使用更快的 SSD,我想知道是否有类似的规则快速磁盘的拇指。
我知道我们使用 Mongo 的方式是缓存所有东西真的不会飞,这就是为什么我正在寻找方法来设计一个可以在这种使用中幸存下来的系统。在整个数据集将可能是最结核病的半年内,并保持增长。
在我工作的地方,我们有许多“大铁”服务器,用于托管许多使用 Xen 虚拟机管理程序的虚拟机。这些通常配置有 32GB RAM、双四核进程和具有大量 I/O 容量的快速磁盘。
我们正处于现有硬件配置已经开始老化的时间点,是时候走出去采购更大、更快、更闪亮的新硬件了。
如上所述,现有套件已部署了 32GB RAM,这有效地限制了我们可以部署到主机的 VM 数量。
不过,在调查更新的硬件时,很明显,您可以在单个机箱内具有 64、72 甚至 96GB 的单台机器中获得越来越多的 RAM。显然,这将使我们能够为给定的主机提供更多的机器,这总是一个胜利。到目前为止完成的分析表明,限制因素现在将转移到磁盘子系统。
现在的问题是,试图了解我们所处的位置......凭借使用情况,我们知道我们在 I/O 带宽方面不受限制,更多的是,随机数 I可以完成的 /O 操作.. 我们知道,一旦我们达到这一点,iowait 就会飞速发展,整个机器的性能都会下降。
现在这是我要问的问题的关键,有没有人知道一种准确跟踪/趋势现有 I/O 性能的方法,特别是与正在完成的随机 I/O 操作的数量有关?
我真正想获得的指标是“此配置可以成功处理 X 个随机 I/O 请求,我们目前(平均)正在执行 Y 次操作,峰值为 Z 次操作”。
提前致谢!
virtualization performance performance-monitoring capacity-planning
我们正在运行一个网站,目前提供 3-5 百万次页面浏览。我们的站点是一个文件共享站点,因此它包含 250,000 个文件和几千个符号链接。
硬盘为1500GB SATA盘。
使用hdparm我们才知道,我们的硬盘速度已经降到了15-20 MB/s,也就是80 MB/s。
所以现在我们要运行fsck来修复磁盘问题。
fsck会解决这个问题吗?fsck完成需要多少时间(只是我们想计算我们将要拥有的停机时间)?我们已经近十年没有升级我们的 RDBMS 或服务器操作系统。另一个关键任务软件包已经有将近 20 年的历史了,并且在那段时间的大部分时间里都没有得到其供应商的支持。我们管理层中的一些人似乎认为这是一件好事——我们通过不购买升级而节省了大量资金!现在一个关键的软件需要升级,但新版本将不支持十年前的东西。现在,我们中的一些人正在脱发,试图弄清楚如何以最少的停机时间立即升级所有内容。
为了在未来避免这种情况,我们中的一些人正在考虑创建一个 IT 战略计划文件(这将适合组织的战略计划,充实与 IT 相关的更大文档中的项目......也许使 IT 文档成为一种战术计划?)希望我们能够将其作为该机构总体战略计划的一部分。我自愿尝试组装“软件生命周期管理”(或类似的东西)部分来解决上面提到的问题(黄铜大头针可能在战略计划的单独文件中)。几乎所有软件供应商都会发布其产品的生命周期和弃用计划,考虑到该信息以及我们组织的需求,很容易确定每个软件的“最佳位置”。棘手的部分(无论如何对我来说)是将每个部分的计划放在一起变得更有凝聚力。
我如何记录桌面客户端 A、B、C... 依赖于桌面 OS X 和 RDBMS Y,而后者又依赖于服务器 OS Z,然后我们如何将它们保持在“最佳位置”?那里肯定有书,但我所有的谷歌搜索只让我了解升级单个软件的策略,而不是确定何时实施这些策略的策略。
benchmark ×2
linux ×2
load-testing ×2
database ×1
ext3 ×1
filesystems ×1
fsck ×1
hard-drive ×1
kernel ×1
linux-kernel ×1
memory ×1
mongodb ×1
performance ×1
ssd ×1
upgrade ×1
vmware-esxi ×1
web-server ×1