Linux的基础知识总结

Linux的基础知识总结

    • 生产环境服务器变慢,诊断思路和性能评估谈谈你的思路?
      • 使用top命令
      • vmstat查看CPU
    • 假如生产环境出现cpu占用过高,请谈谈你的分析和定位
      • 结合linux和JDK命令一块分析
    • 工作中常用到的Linux命令
      • 查看日志
      • 查看进程
      • 常用的文件、目录命令

生产环境服务器变慢,诊断思路和性能评估谈谈你的思路?

使用top命令

  1. 查看CPU占用率高的进程
  2. 查看系统的负载均衡:Load Average (三个参数代表系统在过去的1分钟,5分钟,15分钟内的系统平均负载,如果三个参数相加除以3的值大于60%,说明系统的负担压力重)
    Linux的基础知识总结_第1张图片
    此外不停的按1会看到所有的cpu的执行效率,究竟是那个cpu的负担比较重
    Linux的基础知识总结_第2张图片

vmstat查看CPU

us:用户进程消耗CPU时间百分比,us值高,用户进程消耗CPU时间多,如果长期大于50%,优化程序
sy:内核进程(系统)消耗CPU时间百分比
us+sy参考值为80%,如果us+sy的值大于80%,说明可能存在CPU的不足
Linux的基础知识总结_第3张图片

假如生产环境出现cpu占用过高,请谈谈你的分析和定位

结合linux和JDK命令一块分析

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

2. ps -df或者jps进一步定位,得知哪个后台程序在惹事

3. 定位到具体线程或者代码ps -mp 进程 -o Thread

4. 将需要的线程ID转换为16进制格式

5. jastack进程id gred tid

工作中常用到的Linux命令

查看日志

线上出现了问题,登上线上的机器查日志是非常常见的操作了。我第一次登上线上机器查日志的时候,我还只记得以下的几个命令(假设现在我们的日志文件叫做service.log):

1. cat service.log
如果是小文件的话,单纯的cat命令还是可以应付的,但如果你直接用cat命令打开一个1GB的日志文件,保证卡死你.

2. tail -f service.log

3. vim serivice.log
同样地,如果是小文件,单纯的vim命令去打开文件也是可以应付的,但如果你用vim命令去打开一个1GB甚至更大的文件,也能明显感受到缓慢和卡顿。

面对比较大的日志文件,这我们就得配合grep来玩了,比如我们现在得知某个手机号收不到短信验证码,想要看一下这个手机号的日志是怎么样的。于是我们就可以这样搞:
在这里插入图片描述
这么一搞,就能将service.log中所有含有13888888888的记录给搜出来,搜索的速度还是贼快的。

现在我们已经能根据关键字搜到对应的记录了,接着我想看一下那条记录的日志上下文。
首先,我们先要查出对应记录的行号,在cat 命令后面加上一个 -n 参数就好了。所以命令是:cat -n service.log | grep 13888888888 ,如下图我们就可以查到对应的行号了。

查看进程

ps -ef:列出所有的进程
我们可以通过 |管道和grep 来过滤掉想要查的进程,比如说:ps -ef |grep java

常用的文件、目录命令

ls: 用户查看目录下的文件,ls -a可以用来查看隐藏文件,ls -l可以用于查看文件的详细信息,包括权限、大小、所有者等信息。

touch: 用于创建文件。如果文件不存在,则创建一个新的文件,如果文件已存在,则会修改文件的时间戳。

cat: 用于查看文件内容。使用cat查看文件的话,不管文件的内容有多少,都会一次性显示,所以他不适合查看太大的文件。

tail: 可能是平时用的最多的命令了,查看日志文件基本靠他了。一般用户tail -fn 100 xx.log查看最后的100行内容

你可能感兴趣的:(linux,java)