五、Linux 实用故障排查
1,根底故障排查规定
大数据集群运行在 linux 零碎上总会遇见各种各样的问题,咱们要定位问题,根本从这几个方面动手排查:
CPU,
内存,
磁盘 IO,
网络,
GC 等等
0,Centos 自带的网页监控工具
Cockpit 是一个交互式 Linux 服务器治理接口、开源的基于 web 的管理工具,系统管理员能够执行诸如存储管理、网络配置、查看日志、治理容器等工作。通过 Cockpit 提供的敌对的 Web 前端界面能够轻松地治理咱们的 GNU/Linux 服务器,十分轻量级,Web 界面也非常简单易用。更重要的是通过 Cockpit 能够实现集中式治理。
(1), 应用 yum 源的形式进行装置
1,以后机器须要联网,如果没有联网则须要配置本地数据源
## 装置监控工具
yum -y install cockpit
## 增加开机自启动
systemctl enable --now cockpit.socket
## 查看开启状态
systemctl status cockpit.socket
## 如果未开启,则须要手动开启
systemctl start cockpit.socket
(2), 应用浏览器登录
登录 cockpit 的文本端口是 9090
ip:9090 就能够间接拜访
## 登录的用户名和明码即为以后主机的用户名和明码
1,CPU
(1).top 命令
在生产集群中咱们通常通过 top 来查看 cpu 的使用率来判断零碎的负载状况,Top 而后按 1,能够看到 cpu 的使用率
(2).htop 命令
# 先启用 epel 版本
yum -y install epel-release
# 而后装置 htop
yum -y install htop
## htop 罕用功能键
F1 : 查看 htop 应用阐明
F2 : 设置
F3 : 搜寻过程
F4 : 过滤器,按关键字搜寻
F5 : 显示树形构造
F6 : 抉择排序形式
F7 : 缩小 nice 值,这样就能够进步对应过程的优先级
F8 : 减少 nice 值,这样能够升高对应过程的优先级
F9 : 杀掉选中的过程
F10 : 退出 htop
/ : 搜寻字符
h : 显示帮忙
l:显示过程关上的文件: 如果装置了 lsof,按此键能够显示过程所关上的文件
u:显示所有用户,并能够抉择某一特定用户的过程
s : 将调用 strace 追踪过程的零碎调用
t : 显示树形构造
H:显示 / 暗藏用户线程
I:倒转排序程序
K:显示 / 暗藏内核线程
M:按内存占用排序
P:按 CPU 排序
T:按运行工夫排序
高低键或 PgUP, PgDn : 挪动选中过程
左右键或 Home, End : 挪动列表
Space(空格) : 标记 / 勾销标记一个过程。命令能够作用于多个过程,例如 "kill",将利用于所有已标记的过程
2, 内存
# 1,常见内存大小 64 G---128G--256G---512G,通过 free - g 来查看零碎内存是否有余 # -g 是以 GB 的形式显示;也能够应用 -m 是以 MB 的形式显示 $ free -g total used free shared buff/cache available Mem: 15 6 0 0 9 8 Swap: 31 0 31 ## 显示后果详解 total 内存总数: 15G used 曾经应用的内存数: 6G free 闲暇的内存数: 0G shared 以后曾经废除不必, 总是 0 buffers Buffer 缓存内存数: 298M cached Page 缓存内存数:14G available : 可用内存数 # 2,也能够查看详细信息 $ cat /proc/meminfo
3, 磁盘 I/O
1. 以下列举常见的磁盘品种,个别磁盘 2T-4T, 服务器反对的最大存储也不同,比拟常见的 48T,个别服务器能够反对 12-24 块盘。
- sata(150M/ s 左右)
- sas(300M/ S 左右)
- ssd(最快也最贵)
2. 查看磁盘 I / O 状况
# 每两秒刷新一次磁盘的 I / O 状况 $ iostat -mx 2 # 如果命令不存在,则须要手动装置 yum install -y sysstat
3,查看磁盘的占用空间状况
$ df -h
4,查看磁盘的格式化格局,支流个别是 xfs 和 ext4,系统盘默认是 xfs,后续增加数据盘尽量也是 xfs 格局这样对立比拟好,也不便写脚本批量挂盘
$ df -T # 或者应用这个命令,并且这个命令还能够辨认到 ssd 盘 $ lsblk
5,查看磁盘与未挂载的磁盘和分区信息
$ fdisk -l
6, 查看磁盘挂载信息,新加磁盘要手动永恒挂在须要在这个配置文件里增加,6 列。
$ cat /etc/fstab
7, 磁盘阵列
raid0(无冗余),raid1(双备份),raid5(n-1/n, 损失其中一块盘的空间)等等
4. 网络
1. 查看能不能 ping 通
2. 查看某端口是否被监听, 如果是被误占用,则能够将穿进去的 PID 进行杀死
$ netstat -nlp | grep 端口号 $ kill -9 PID
3, 网卡的模式配置抉择 bound6 : 负载平衡
5. 零碎负载
- 应用 top 命令即可,而后想要查看查看所有的 cpu 的活动状态能够在按完 top 命令之后,再按数字 1。
- 应用 htop 命令:
6.GC 问题
jps
查出要查看的 pid,用 jstat -gcutil pid , 看第四列 O 如果 100% 就是 fullGC
7. 查看对应的启动日志
找到对应的日志目录的形式:
1. 能够通过查看配置文件的目录,
2, 还能够通过查看对应过程 pid 的详细信息,而后查看 “-Dhadoop.log.dir=” 就能够失去对应的日志文件的目录 了。
$ ps -ef | grep PID ... ...
2.Centos7 内核参数优化
(1). 单过程最大关上文件数的限度
个别的发行版本,限度单过程最大能够关上 1024 个,此时是远远不能关上高并发需要的,所以能够做如下调整:
# 1. 先查看以后的文件数限度
$ ulimit –n
# 2. 设置最大文件数限度为 655535
ulimit –n 65535
(2),iptables 相干
如非必须,关掉或卸载 iptables 防火墙,并阻止 kernel 加载 iptables 模块。这些模块会影响并发性能。
3. 装置大数据组件环境根底优化
- 系统盘 raid1,存储盘 raid0,hdfs 三备份不必 raid 造成冗余,若对元数据安全系数特地高,namenode 元数据所在磁盘可做 raid1 双备份。
- 敞开硬件节能模式(这个须要在装零碎的时候,在 bios 中批改)
- 双网卡模式抉择 bound6(均衡负载)
- 存储盘多块,缩小磁盘 IO
- 禁用 swap(虚拟内存)
- 工夫同步
- 敞开 selinux
- 敞开防火墙 iptables
- 将 root 启动的繁多过程的最大能够关上的文件数设置为 65535 个(ulimit–n 65535)