测试开发面经(七)Linux常见题

测试开发面经(七)Linux

1.linux服务器运行速度变慢,谈谈诊断思路和性能评估?

排查顺序 整机top,CPU vmstat,内存 free,硬盘df,磁盘IO,iostat,网络IO,ifsta

整机和内存出错的概率较大。

1.1. 整机 top 和 uptime

top 
  1. 看 %CPU 和 %MEN的使用情况
  2. 看系统的负载均衡 load average 三个值 1分钟 3分钟 15分钟 系统平均负载值,三个值相加除3乘上 100% 高于60%系统压力较大
  3. 按 键盘上的 1 可以查看哪一个cpu比较慢
  4. 退出按 q
uptime

uptime是系统性能命令的精简版

1.2. 查看CPU vmstat

vmstat -n 2 3 ## 每两秒 采样一次 共采样三次
  1. 主要查看 procs 和 cpu 头尾两个内容

  2. procs 下 r 是运行和等待CPU时间片的进程数,b等待资源的进程数

    1. r 是并行,b是阻塞。
  3. cpu下

    1. us 用户进程消耗CPU时间百分比,us值高,用户进程消耗CPU时间多,如果长期大于50%,优化程序。
    2. sy 内核进程消耗的CPU时间百分比
    3. us+sy 如果大于80%,说明可能存在CPU不足
其他查看CPU的命令,查看额外的信息
mpstat -P ALL 2

每两秒弹出一次 idle 值越高越好,它代表了空闲率 ctrl +z退出

每个进程使用CPU的用量分解信息

pidstat -u 1 -p (进程编号)
## ps -ef 查看所有进程
## 查看指定进程的信息
ps -ef|grep (进程) ## 
## 获得1344
pidstat -u 1 -p 1344 ## 对用户每一秒钟采样一次

1.3 内存 free

1.3.1 应用程序可用内存数

最常用的是free -m

free ## 查看内存 
free -g #以g为单位查看内存的使用情况
free -m # 以m为内存单位

经验值

设x = 应用程序可用内存/系统物理内存

x> 70% 内存充足, x<20% 内存不足,需要增加内存, 20%< x < 70% 基本够用。

1.3.2 查看额外
pidstat -p 进程号 -r 采样间隔秒数

1.4 硬盘 df

​ 查看磁盘剩余空间

df -h ## -h 代表让人类看懂的方式展现

1.5 磁盘 IO : iostat

数据库在查询数据量比较大的表的时候一般要考虑这样的问题。

  1. 磁盘I/O性能评估

    iostat -xdk 2 3 ### 每两秒钟取样一次 一共取样3次。
    

    util 一秒中有百分几的时间用于I/O操作。接近100%时,表示磁盘带宽跑满,需要优化程序或者增加磁盘。

  2. 查看额外

    pidstat -d 采样时间 -p 进程号
    

1.6 网络IO ifstat

  1. ifstat

    ifstat 1
    

    各个网卡的in、out,观察网络负载的情况,程序网络读写是否正常

    两种优化方式 程序网络I/O优化 和 增加网络I/O带宽

2.假如生产环境出现CPU占用过高,请谈谈你的分析思路和定位?

  1. 先用top命令找出cpu占比最高的。

  2. ps -ef进一步定位,得知是一个怎么样的后台程序。

  3. 定位到具体线程或者代码。

    1. ps -mp 进程 -o THREAD,tid,time
    2. 参数解释
      1. -m 显示所有的线程
      2. -p pid 进程使用cpu的时间
      3. -o 该参数后是用户自定义格式
  4. 将需要的线程ID转换为16进制格式(英文小写格式) 5122—> 13ee

    printf “%x\n” 有问题的线程ID

  5. jstack 进程ID | grep tid(16进制线程ID小写英文)-A60

3. 用过哪些linux命令?

  1. 查看服务器整机情况的命令 top

    top
    
  2. 查看系统命令的精简版

    uptime
    
  3. 查看cpu的命令

    vmstat -n 2 3 #每两秒执行一次,执行三次
    
  4. 查看内存的命令

    free
    
  5. 查看硬盘

    df -h
    
  6. 查看磁盘I/O %util达到100% 说明需要优化

     iostat -xdk 2 3
    
  7. 查看网络I/O

    ifsctat 1
    
  8. 创建目录

    mkdir abc
    
    # 如果父级目录不存在自动创建
    mkdir -p a/b/c
    
  9. 显示所有进程

    ps -e
    
  10. 查看ip

    ip addr
    

4.如何查看某个日志的前50行

tail -n -50 /etc/cron ## 文件名

5. 怎么找文件

find . -name "*.c"## 寻找后缀名为.c的文件

find -name "abc"
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值