zoukankan      html  css  js  c++  java
  • linux实用故障排查(大并发,大数据)

    1.排查思路

      大数据集群运行在linux系统上总会遇见各种各样的问题,我们要定位问题,基本上可以从这几个方面入手排查:cpu、内存、磁盘io、网络、GC等。

    2.cpu

      一些概念:多核,超线程,cpu频率(2.2GHZ)

      (节能模式,普通模式,超能模式:biso里设置,搭建集群要注意下这个参数尽量关闭节能模式)

      物理cpu数和cpu核数和逻辑cpu数和vcpu区别

      a.查看物理cpu个数:cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l

      b.查看逻辑cpu个数:cat /proc/cpuinfo |grep "processor"|wc -l

      c.查看cpu多少核:cat /proc/cpuinfo 

       

       d.在生产集群中我们通常通过top来查看cpu的使用频率来判断系统的负载情况,top然后按1,可以看到cpu的使用率。

       

     3.内存

      a.常见内存大小16G-32G-64G-128G-256G,通过free -g来查看系统内存是否不足。

       

       b.查看内存详细内容:cat /proc/meminfo

       

     4.磁盘IO

      a.磁盘种类:

      sata(150M/s左右)、sas(300M/s)、ssd(最快)

      一般磁盘2T~4T,服务器支持的最大存储也不同,比较常见的48T,一般服务器可以支持12~24块盘。

      b.磁盘io的查看:iostat -mx 2

      可以定位是否因为io过大导致性能下降 ,如果没有这个命令:yum install -y sysstat

      util过大IO出现问题

        

       c.查看磁盘空间:df -h

      根目录超过90%则有危险

      

      d.查看磁盘格式化的格式:df -T或cat /etc/fstab

      主流一般是xfs和ext4,系统盘默认是xfs,后续添加数据盘尽量也是xfs格式,这样统一比较好,也方便写脚本批量挂在。

      

      e.查看磁盘与未挂载磁盘和分区信息 :fdisk -l

      

      f.查看盘与分区以及ssd盘,用fdisk查看盘可能识别不到ssd:使用lsblk查看

        

      g.查看磁盘挂在信息,新加磁盘要手动永久挂载需要在下面配置文件添加以下内容,如果这个文件写错了,重启服务器正常模式下是启动不了的!

      

    5.网络

      a.查看是否ping通:ping www.baidu.com

      b.查看端口是否被监听:netatat -anp|grep 端口号

      ex:你起启动datanode没有启动,查看日志报错:Address in used ,翻译过来就是端口被占用,那你得查看下这个端口被哪个程序占用了,就用 netatat -anp|grep 端口号,

    就可以知道它的进程,比如下图进程pid就是107484,就可以用kill -9 PID强制杀死

        

       c.网卡模式配置(bound6,负载均衡):参考

     

      

    6.系统负载:

      linux命令:top、uptime、w、cat /proc/laodavg

    7.GC问题(java)

      是否full GC

      jps查出要看的pid,用jstat-gcutil pid看第四列0如果100%就是fullGC

       

    8.日志查看(hadoop)

      a.首先要知道日志的位置,一种是去配置文件查看了有没有配置相关位置,一种是通过进程查看。如下

      使用 ps -ef | grep pid通过pid显示出来的信息可以找到日志位置。

      查看某个进程日志位置:

      

      b.查看日志

      实时查看日志文件后100行:tail -f 100 file

      静态查看:vim filelog,然后可以通过关键字error/warn等查找错误

    返回目录

  • 相关阅读:
    捕获mssqlservice 修改表后的数据,统一存储到特定的表中,之后通过代码同步两个库的数据
    有关求第n位xxx 的算法的问题
    C#获取枚举的特性描述工具方法
    wpf中嵌入另一个子进程exe像本地的一个页面那样
    emit 实现动态类,动态实现接口
    EF 支持泛型动态加载类访问数据库
    C# 通过 参数返回 C++ 指针
    C# 接收C++ dll 可变长字节或者 字符指针 char*
    健身篇
    Ubuntu 16.04安装Docker-Compose 与 Can't connect to docker from docker-compose
  • 原文地址:https://www.cnblogs.com/dan2/p/12613539.html
Copyright © 2011-2022 走看看