测试Hadoop集群资源占用

测试命令示例:

1. 写命令(上传文件)

cd
/home/hadoop/hadoop-2.9.2/share/hadoop/mapreduce
hadoop jar  hadoop-mapreduce-client-jobclient-2.9.2.jar TestDFSIO -write -nrFiles 10 -fileSize 10(128)MB

	[[[[[		
	sudo -uhdfs hadoop jar \
			/home/hadoop/hadoop-2.9.2/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-tests.jar \
			TestDFSIO \
			-write \
			-nrFiles 20 \
			-size 128MB \
			-resFile /tmp/TestDFSIO_results.log

		cat /tmp/TestDFSIO_results.log
		]]]]]]]

2.读取命令(读取文件)

cd
/home/hadoop/hadoop-2.9.2/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-client-jobclient-2.9.2.jar TestDFSIO -read -nrFiles 10 -fileSize  10(128)MB

3.删除缓存(删除文件)

cd
/home/hadoop/hadoop-2.9.2/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-client-jobclient-2.9.2.jar TestDFSIO -clean	

4. 常见的集群监控指标

(1)load:反映系统忙闲程度

在Linux系统中,可以通过w,top和uptime命令来查看系统的load值,那么什么是load呢?系统的load被定义为特定时间间隔内运行队列中的平均线程数,load越大表明CPU越忙
如果一个线程满足以下条件,该线程就会处于运行队列中:
-没有处于I/O等待状态
-没有主动进入等待状态,也就是没有调用wait操作
-没有被终止当然load计算的算法较为复杂,因此,这种情况也不是绝对的。

	[root@had01 ~]# uptime
		11:48:19 up  6:54,  1 user,  load average: 0.02, 0.02, 0.05
load average后面跟的三个值分别表示在过去1分钟、5分钟、15分钟内系统的load值。

(2)CPU利用率:反映CPU的使用和消耗情况

在Linux系统中,CPU的时间消耗主要在这几个方面:用户进程、内核进程、中断处理、I/O等待、Nice时间、
丢失时间、空闲等几个部分,而CPU的利用率则为这些时间所占用的总时间的百分比。
通过CPU的利用率,能够反映出CPU的使用和消耗情况。

[root@had01 ~]# top
	top - 11:52:11 up  6:58,  1 user,  load average: 0.01, 0.03, 0.05
		Tasks: 370 total,   2 running, 365 sleeping,   3 stopped,   0 zombie
		%Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.3 si,  0.0 st
		KiB Mem:   1003432 total,   567608 used,   435824 free,        0 buffers
		KiB Swap:  2097148 total,    45972 used,  2051176 free.   180796 cached Mem
  • 用户时间(User Time): 即us所对应的列,表示CPU执行用户进程所占用的时间,通常情况下希望us的占比越高越好

  • 系统时间(System Time: 即sy所对应该的列,表示CPU自内核态所花费的时间,sy占比比较高通常意味着系统在某些方面设计得不合理,
    比如频繁的系统调用导致的用户态和内核态的频繁切换

  • Nice时间(Nice Time): 即ni所对应的列,表示系统在调整进程优先级的时候所花费的时间

  • 空闲时间(Idle Time): 即id所对应的列,表示系统处于空闲期,等待进程运行,这个过程所占用的时间。
    当然,我们希望id的占比越低越好

  • 等待时间(Waiting Time):即wa所对应的列,表示CPU在等待I/O操作所花费的时间,系统不应该花费大量的时间来进行等待,
    否则便表示可能有某个地方设计不合理

  • 硬件中断处理时间(Hard Irq Time): 即hi对应的列,表示系统处理硬件中断所占用的时间

  • 软件中断处理时间(Soft Irq Time): 即si对应的列,表示系统处理软件中断所占用的时间

  • 丢失时间(Steal Time): 即st对应的列,实在硬件虚拟化开始流行后操作系统新增的一列,
    表示被强制等待虚拟CPU的时间

(3) 磁盘剩余空间也是一个非常关键的指标,正常的日志写入以及系统I/O都依赖磁盘

1. 使用df命令可以查看

	[root@had01 ~]# df -h
	Filesystem               Size  Used Avail Use% Mounted on

/dev/mapper/centos-root 18G 5.2G 13G 30% / //反应root用户18G空间 5.2G可用 已经使用30%
devtmpfs 481M 0 481M 0% /dev
tmpfs 490M 0 490M 0% /dev/shm
tmpfs 490M 14M 477M 3% /run
tmpfs 490M 0 490M 0% /sys/fs/cgroup
/dev/sda1 497M 119M 379M 24% /boot
2. 如果要查看具体目录所占用的内存空间,分析大文件所处位置,可以使用du命令来进行查看

[root@had01 /]# du -d 1 -h /home
	2.1G    /home/hadoop   			//说明home下只有一个Hadoop目录
	2.1G    /home
[root@had01 /]# cd home
[root@had01 home]# ls
		hadoop
*-d指定了递归深度为1层,表示只列出指定目录的下一级目录文件大小,-h用来表示格式化输出。*

(4)磁盘I/O的繁忙程度也是一个重要的系统指标,对于I/O密集型的应用来说,比如数据库应用和分布式文件系统,

I/O的繁忙程度也一定程度上反映了系统的负载情况,容易成为应用程序性能的瓶颈。
可以使用iostat来查看系统的I/O状况
[root@had01 hadoop]# iostat
Linux 3.10.0-123.el7.x86_64 (had01) 10/23/2020 x86_64 (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
		   3.37    0.01    1.59    5.03    0.00   89.99
	Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
	sda              21.98       223.90       258.57    5760353    6652132
	scd0              0.00         0.00         0.00         48          0
	dm-0             80.84       179.20       144.16    4610360    3708660
	dm-1             11.25        44.48       114.33    1144278    2941424
[root@had01 hadoop]# iostat -d       //-d表示只查看磁盘情况
	Linux 3.10.0-123.el7.x86_64 (had01)     10/23/2020      _x86_64_        (1 CPU)
	Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
	sda              21.94       223.52       258.13    5760361    6652161
	scd0              0.00         0.00         0.00         48          0
	dm-0             80.70       178.90       143.91    4610360    3708660
	dm-1             11.23        44.40       114.14    1144286    2941453

Device表示设备名称、tps表示每秒处理的I/O请求数、kB_read/s表示每秒从设备读取的数据量、
kB_wrtn/s表示每秒向设备写入的数据量、kB_read表示读取的数据总量、kB_wrtn表示写入的数据总量。

(5)内存使用

程序运行时的数据加载、线程并发、I/O缓冲等,都依赖于内存,可用内存的大小决定了程序是否能正常运行以及运行的性能。
通过free命令能够查看到系统的内存使用情况,加上-m参数表示以MB为单位:
[root@had01 hadoop]# free -m //-m表示以MB为单位
total used free shared buffers cached
Mem: 979 596 383 8 0 176
-/+ buffers/cache: 419 560
Swap: 2047 44 2003

Linux的内存包括物理内存Mem和虚拟内存Swap,下面介绍每一列的含义:
		total----内存总共的大小
		used----已使用的内存大小
		free----可使用的内存大小
		shared----多个进程共享的内存大小
		buffers----缓冲区的大小
		cached----缓存的大小
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值