我正在运行一个基于hadoop的应用程序(hadoop 1.2.1
),在那里我发现了一个硬盘瓶颈; 使用iotop
监控硬盘IOPS的结果是iotop
MB /秒,这是通过使用dd
对磁盘进行基准testing而获得的写入速度。
为了消除瓶颈,我使用下面的命令将我的整个hadoop HDFS和映射器的输出安装到tmpfs
:
mount -t tmpfs -o size=5G none /app/hadoop
/app/hadoop
是HDFS存储的地方,以及映射器的中间输出。 HDFS上的input数据集为680 MiB,输出为318 MiB,映射器的总输出为2.30 GiB; 所有这些分裂了2个datanodes / tasktrackers,因此我有足够的RAM空间为应用程序正常运行和执行。
在这个设置中,我试图测量到这个目录的IOPS,即写入速度。 正如我在这个线程中读到的,传统的监视工具不能使用tmpfs
,而不是一个块设备。 我怎么能测量写作速度?
像其他线程中提出的使用pv
解决scheme不幸的是, 改变hadoop源代码不是一个可行的select,并且pv
在写入RAM时引入了自己的瓶颈,正如我用dd
测量的那样。