我的目标是使用表上的符号链接,将mysql数据库与驱动器数量同等地分开。
现在,我似乎无法找到在mysql上检查IOs、读取和写入每个表的方法。
所以,现在我在想,在linux中,可能有某种方式来监控每个文件的ios、读、写?
Iostat显示每个设备的IOPS;物联网显示每个进程的IOPS;是否有任何东西显示每个文件的IOPS?
发布于 2012-02-11 14:41:03
在DBA-land有一个营地(或者说,我最近还没有经历过),它认为最佳的性能是通过对存储基础设施的微观管理来找到的,以至于系统和存储管理员最好离开这条路,给他们一堆硬盘、一两台服务器,以及在被问到的时候偶尔伸出援手。
这些系统通常最终会有大量带有数据文件的RAID1对,这些数据文件有目的地和系统地分布在每一个系统中。将使用日志驱动器并进行类似的隔离。这种方法背后的想法非常简单:
这种方法存在一个很大的问题,Chopper3解决了这个问题:可维护性。
像这样的系统需要持续不断的关注和微调,以便随着数据库的增长/收缩、使用程序的变化、应用程序及其使用模式的演变、从逃逸条件中的恢复以及维护周期的变化而保持“最佳”性能。我上面描述的那种体系结构最适合于编写--几乎从不/读--大量的工作负载。
当数据库从硬件中提取性能的每一个分数的百分比时,它也会被使用。这是一个预算决定,在许多情况下,它被认为DBA的时间比更多的硬件便宜。然而,有一些高性能的情况下,它只是不可能做一个更大的盒子,所以你必须优化你有什么。对于我们其他不使用怪物数据库服务器的人来说,总是会有升级的。
另一个阵营,以及我所认为的那个阵营,对它的处理方式不同。它对存储抽象有更多的信心,并且倾向于扩展得更好。与众多的R10对不同,您可以将所有这些对放到一个RAID10集合中;或者交替地将少量的RAID10集。这允许IOP聚合,但每个数据文件/表空间/数据库都可以访问相当多的激增容量。通过使用多个R10集,您可以为那些需要它的关键数据库和日志文件提供I/O分离。对每个文件性能进行微观管理的需求大大减少了.
发布于 2012-02-11 13:23:47
你的想法似乎过于复杂、脆弱和难以管理--你就不能把磁盘放到一个RAID 10阵列中,这样就可以将数据和IOPS均匀地分布在磁盘上--这是每个人都要做的。
发布于 2012-02-14 15:46:33
您可以使用系统访问脚本监视每个文件的I/O。请参阅:iotime.stp
https://serverfault.com/questions/359115
复制相似问题