在 Linux 上进行 IO 测量和发现瓶颈的好工具有哪些?
我正在尝试对基于 SAN 基础设施的 Linux 机器上的 Oracle 进行一些调整。 我正在专门寻找允许我们分析每个进程 IO 的工具(或者每个进程树会更好)。 我的问题是?
- 建议使用哪些工具来完成此类任务?
- 我还应该在基于 SAN 的基础设施上测量哪些其他有用的指标?
I'm trying to do some tuning for Oracle on Linux boxes living on SAN based infrastructure. I'm looking specifically for tools that would allow us to profile IO per process (or per process tree would be even better). My questions are?
- What are the tools that would be recommended for this kind of task?
- What other useful metrics should I seek to measure on a SAN based infrastructure?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
我使用“iotop”取得了很好的效果。 它获取每个进程的特定信息以及 IO 使用情况。
它的工作原理就像“top”
http://guichaz.free.fr/iotop/
我不是不过,请确定从安装了 SAN 的 Linux 机器上使用是否合理,或者您想要一个可以在 SAN 中运行的工具。
I have used "iotop" with great results. It gets specific info per process with IO usage.
It works like "top"
http://guichaz.free.fr/iotop/
I am not sure though if it would be reasonable to use from a Linux box that has the SAN mounted or if you wanted a tool that could run within the SAN.
一旦您开始专业化,我发现最简单的事情就是编写一些自定义脚本,从 /proc 下的文件中提取信息。
如果您正在进行分析,而您还没有一个工具可以为您提供所需的准确报告,那么您可能最终会编写一些脚本,并且您在 Linux 下使用的大多数工具都只是不管怎样,去 /proc 获取他们的信息,然后为你重新格式化。
如果您更了解数据库方面的内容,定期从 /proc 中提取信息、添加时间戳并以可导入 RDBMS 的方式记录它可能会非常有用。 如果您将所有服务器和进程性能信息放入单个 RDBMS 中,这会特别好,因为这样您就可以比较任意的事物,例如同一应用程序在不同服务器上的性能。
请记住,如果您进一步这样做,您可能会开始添加来自不同来源的信息,例如主机的 IPMI 监控,因此,一旦您使用了超过 /proc 的内容,就不要执行必须撤消的操作。
Once you start to get this specialized, I've found that the easiest thing to do is to write some custom scripts that pull information from files under /proc.
If you're analysis for which you don't already have a tool that gives you the exact report you need, you're probably going to end up doing some scripting anyway, and most of the tools you'd use under Linux are just going to /proc to get their information anyway and then reformatting it for you.
If you're more into the databasey side of things, pulling info from /proc on a regular basis, adding timestamps, and recording it in a way that it can be imported into an RDBMS can be very useful. This can be particularly good if you put all of your server and process performance information into a single RDBMS, because then you can compare, arbitrary things such as the performance of the same application on different servers.
Keep in mind that if you go further with this, you my start adding information from different sources, such as IPMI monitoring of hosts, so don't do things that you'll have to undo once you're using more than /proc.
您可以使用 sysstat 实用程序,它是性能监视工具的集合
Linux。
来自网站 (perso.orange.fr/sebastien.godard/)
You can use sysstat utilities which are a collection of performance monitoring tools for
Linux.
From the website (perso.orange.fr/sebastien.godard/)
我通常使用 atop 来监视系统上的负载。 某些功能要求您修补内核,但它提供了有关 I/O 的精确信息以及其他信息。
I usually use atop to monitor the load on my systems. Some features require that you patch the kernel, but it gives precise information about I/O as well as other info.
CPU负载。 这是oracle数据库的主要指标。
CPU load. It's Main metrics for oracle database.
根据您想要达到的低级别,System Tap 可能对您非常有用。 它类似于 Solaris 上的 DTrace。
Depending on how low-level you want to get, System Tap could be very useful for you. It is similar to DTrace on Solaris.