五、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# 而后装置 htopyum -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   availableMem:             15           6           0           0           9           8Swap:            31           0          31## 显示后果详解total 内存总数: 15Gused 曾经应用的内存数: 6Gfree 闲暇的内存数:  0Gshared 以后曾经废除不必,总是0buffers Buffer 缓存内存数: 298Mcached Page 缓存内存数:14Gavailable : 可用内存数# 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.设置最大文件数限度为 655535ulimit –n 65535

(2),iptables 相干

如非必须,关掉或卸载iptables防火墙,并阻止kernel加载iptables模块。这些模块会影响并发性能。

3.装置大数据组件环境根底优化

  1. 系统盘raid1,存储盘raid0,hdfs三备份不必raid造成冗余,若对元数据安全系数特地高,namenode元数据所在磁盘可做raid1双备份。
  2. 敞开硬件节能模式(这个须要在装零碎的时候,在bios中批改)
  3. 双网卡模式抉择bound6(均衡负载)
  4. 存储盘多块,缩小磁盘IO
  5. 禁用swap(虚拟内存)
  6. 工夫同步
  7. 敞开selinux
  8. 敞开防火墙iptables
  9. 将root启动的繁多过程的最大能够关上的文件数设置为65535个(ulimit–n 65535)

4.挖矿病毒检测