如何从特定应用程序测量 RAM/tmpfs IOPS?

如何从特定应用程序测量 RAM/tmpfs IOPS?

我正在运行一个基于 Hadoop 的应用程序 (Hadoop 1.2.1),在其中我发现了一个硬盘瓶颈;监控硬盘 IOPS 的iotop结果大约是 160 MB/秒,这是我通过对磁盘进行基准测试而获得的写入速度dd

为了消除瓶颈,我将整个 Hadoop HDFS 和映射器的输出安装到tmpfs以下位置:

mount -t tmpfs -o size=5G none /app/hadoop

/app/hadoop是 HDFS 的存储位置,也是映射器的中间输出。HDFS 上的输入数据集为 680 MiB,输出为 318 MiB,而映射器的总输出为 2.30 GiB;所有这些都分布在 2 个数据节点/任务跟踪器上,因此我有足够的 RAM 空间供应用程序正常运行和执行。

在此设置中,我尝试测量此目录的 IOPS,即写入速度。正如我所读到的在此主题中,传统监控工具无法处理tmpfs,因为它不是块设备。我怎么才能测量写入速度?

不幸的是,像在其他线程中提议的那样,使用 之类的解决方案pv将不起作用;更改 Hadoop 源代码不是一个可行的选择,并且pv在写入 RAM 时会引入自身的瓶颈,正如我用 测量的那样dd

相关内容