我们是一家软件开发公司,以前将硬件业务外包,但现在我们正在考虑构建自己的私有云。我们最近购买了几台服务器,其中一台用作中央存储。规格如下:
- 机箱:CSE-826BE16-R920LPB 主板:Supermicro X10SLL-F CPU
- E3-1200v3、Intel C222、2GbE、高达 32GB DDR3 ECC、2xSATA3、4xSATA2、4xDDR3 IPMI
- 1x CPU Intel Xeon E3-1220v3 - 3.1GHz、8MB 缓存、4 核、HT、LGA1150、80W
- 1x 散热器 SNK-0046A4 Activ 2U
- 4x 8GB 三星 M391B1G73QH0-CK0 1600MHz DDR3 ECC 无缓冲 2R×8
- 2x SSD 80GB Intel DC S3500 系列 2.5 英寸 SATA3,读取速度 340 MB/s,写入速度 100 MB/s
- 10x HDD 2TB Seagate Constellation ES.3 ST2000NM0023 3.5 英寸 SAS2,7200rpm,128MB
Seagate 硬盘设置为 RAID 6 阵列。SSD 设置为 RAID 1,并充当 maxCache 容器,我们使用 maxView Storage Manager 来打开和关闭它。
我的第一个问题- 这种配置对于私有云的中央存储是否有意义,我们计划在私有云中设置另外 3 个计算节点,这些节点上有两个 CPU 和大量 RAM?
我的第二个问题- 对于具有许多并发请求的报告系统的 MySQL 数据库服务器,使用较少 HDD 的类似配置是否有意义?或者将 SSD 用于 MySQL 创建临时表的临时空间是否更有意义。
现在主要问题... 我尝试测量此服务器在有和没有 SSD 缓存 (maxCache) 的情况下的性能。我遇到的最好的工具是 iozone (iozone -a -g 8G),它生成了以下图表:http://www.bugweis.com/storage/comparison.zip。我完全困惑了,因为看起来在大多数情况下,使用 maxCache 的性能比不使用 maxCache 的性能要低。
我想知道 iozone 是否是测试真实生活场景的好方法,或者我是否完全做错了。
答案1
这种配置对于私有云的中央存储是否有意义,我们计划在私有云中设置另外 3 个计算节点,这些节点上有两个 CPU 和大量 RAM?
我担心这里会出现单点故障,因为它只能充当单控制器存储盒,而且你也没有太多内存(多买点,很便宜),而且看起来你唯一的网络是 2 个 1Gbps NIC - 它们将成为此设置中一个巨大的瓶颈。所以不,我不推荐这样做 - 你为此付出了多少代价?
对于具有许多并发请求的报告系统,使用较少 HDD 的类似配置对 MySQL 数据库服务器有意义吗?或者将 SSD 用于 MySQL 创建临时表的临时空间是否更有意义。
我很想为 DB 盒使用双插槽系统,即使您不立即使用第二个插槽 - 数据库引擎往往可以通过更多核心很好地扩展。同样,您需要更多内存。至于使用什么磁盘 - 在这里提出任何建议都是愚蠢的,因为 DB IO 要求的变化范围比基于读/写平衡和许多其他因素(例如表大小等)的基础设施的任何部分都要大。
答案2
更新-Adaptec 支持人员是这样说的:
Maxcache 写入和读取的优势仅在系统运行足够长的时间以填充 SSD 驱动器上的“热数据”时才会出现。这将需要一些时间,具体取决于写入的数据和对系统的请求,因此短暂的基准测试可能不会显示任何改进,因为它可能没有足够的时间让“热数据”填充驱动器。还请确保未完成的 I/O 值设置为 32 或 64,因为一些基准测试软件包将默认值设置为 1,这会影响获得的性能值并且不正确。
所以我猜测 iozone 不是测试 maxCache 性能的最佳方法。