五、linux分析命令

linux分析命令

      • 一、服务器基础知识
      • 二、linux文件结构
      • 三、linux文件权限
      • 四、linux命令
        • 1、安装应用
          • fedora家族: 如centos
          • debain家族:如ubuntu
        • 2、获取帮助
          • 第一种:`command --help`
          • 第二种:`man command`
          • 第三种:`info`
        • 3、服务器性能分析基础命令
          • 1、top
          • 2、ps
          • 3、vmstat
          • 4、mpstat
          • 5、pidstat

  • 一、服务器基础知识

    • 无图像界面的服务器,一般才会作为服务器
    • 通过客户端 xshell、putty、cmd、finalshell
      • 客户端工具要能连接到linux机器上,机器必须开放ssh服务,这个服务端口22
      • centos系统默认是安装了ssh服务,开放了22端口
      • ubuntu系统 默认没有安装ssh服务,所以,ubuntu这种图像界面系统,有时候不能通过客户端来连接。
      • 你想要连接到一台服务器上:
        • 1、服务器必须启动ssh服务
        • 2、服务器要开放ssh服务的端口
        • 3、你本地与服务器之间网络要能通
          • 检查: telnet server_ip 22
  • 二、linux文件结构

    • linux中,一切都是文件
    • 查看文件结构:
      • 安装查看结构的软件(树形结构展示文件路径): yum -y install tree
      • 查看n级路径:tree -L 1/2/3
      • 查看路径下的某个文件夹下的:tree -L 1 /opt
        五、linux分析命令_第1张图片
目录 存储
/boot 核相关文件(内核)
/bin 存放系统中可用的命令,比如说cd,mkdir之类的
/etc 系统管理所需要的所有配置文件
/usr unix shared resource 用户共享程序文件夹,就像windows系统的program files目录
/opt optional 给主机额外安装的软件目录 相当于windows的d盘
/home 用户目录,它下一级文件夹,默认是被系统当作用户名的根路径。在企业中,你们操作服务器,一般会给你们非root权限的账号,那这个账号,肯定会在/home目录下面有一个文件夹,文件夹的名称是你的用户名,你的所有操作权限,都受这个用户的权限控制,所以你默认的操作都是在这个路径下
/sys 系统文件,记录内核设备数
/media 自动识别的外设
/mnt 给用户临时挂载外部文件系统。因为linux所有的都是文件,所以当u盘等设备连接的时候,会把u盘当做文件挂载在这边,挂载的路径一般是这边
/proc process进程,虚拟文件系统,存储当前内核运行状态的特殊文件 。比如cpuinfo: 记录着系统在启动时,读取的cpu相关信息。meminfo: 记录着系统在启动时,读取的memory相关信息。里面还有很多数字: 都是进程的id和pid。 进入这个文件夹,可以查看这个进程启动时相关信息
/root 超级权限者的主目录
/run 临时文件,系统启动的信息
/srv 服务启动后,需要提取的数据
/var 不断扩充的东西,如日志。/var/log/你的程序名称 日志文件
/tmp 临时文件
/dev device,linux的外部设备
  • 三、linux文件权限

    五、linux分析命令_第2张图片

    • 以时间顺序显示目录及其文件列表: ls -lth

      • 第1个: 目录:d 开头,链接: l开头, 文件: -开头
      • 第2/3/4个:归属用户user权限: r读 (4)w写(2) x执行(1)
        • chmod 777 文件名 授予权限,7表示授予读写执行权限
      • 第5/6/7个:归属用户组group权限
      • 第8/9/10个:其他other用户权限
      • 第12个:归属用户username chown
      • 第13个:归属用户组 groupname chgrp
      • 第14个:大小
      • 第15个:日期时间
      • 最后一个:文件名称
    • 四、linux命令

      • 1、安装应用

        • fedora家族: 如centos
          • 可执行文件 rpm(redhat package manager)包安装
            • 命令:
              • rpm -ivh *.rpm 安装过程中显示正在安装的文件信息及安装进度
              • rpm -e okgname 卸载软件,不用.rpm结尾
              • rpm -Uvh ***.rpm 升级包
          • 安装命令:yum
        • debain家族:如ubuntu
          • 可执行文件 deb
            • 命令:dpkg -i *.deb 安装
            • -r 卸载
          • 安装命令:apt/ apt-get
      • 2、获取帮助

        • 第一种:command --help
        • 这种一般都显示五、linux分析命令_第3张图片
        • 第二种:man command
          • 显示系统手册中的内容,会展示更多程序相关信息 - man ls如下五、linux分析命令_第4张图片
        • 第三种:info
          • 能提供比man更详细的帮助信息
          • info ls
            五、linux分析命令_第5张图片
    • ps:并不是所有工具都有这些帮助
      • 3、服务器性能分析基础命令

        • 1、top
          • 常用的性能分析工具,能够实时显示各个系统中的各个进程的资源占用情况,也可以查看线程
            五、linux分析命令_第6张图片
      • 相关字段的解释

        • 接下来我们对每行的数据进行逐步分析:
        • 第一行:top - 11:14:43 up 379 days, 19:01, 1 user, load average: 0.24, 0.23, 0.31
          • top - 11:14:43 :展示当前的系统时间
          • up 379 days, 19:01:表示系统启动了多长时间
          • 1 user:当前系统有几个用户连接进来(可以是同一个用户,比如5个用户都用root权限登录,那这边会展示5个)
          • load average: 0.24, 0.23, 0.31:系统平均负载值
            • 第一个值表示系统过去1分钟的平均负载值
            • 第二个值表示系统过去5分钟的平均负载值
            • 第三个值表示系统过去15分钟的平均负载值。
            • 系统负载值,不等于cpu使用率值,因为系统的负载值,由两部分组成:cpu使用率+io使用率
            • 历史经验,系统负载高低,与cpu数量有一定关系,但并不是绝对
            • io:换入和换出。不止是磁盘的读写,还包括像服务器发起请求,服务器处理完成后,通过网络向外传递,磁盘从内存进入缓存,从内存进入cpu,从cpu进入内存等,比较宽泛
            • cpu使用率高,受以下参数影响:us sy ni hi si…
              • us:user space,用户态使用cpu的时间占比,比如说写了一段代码,代码只做了逻辑的判断,没有做底层的运算。类比测试就相当于熟悉系统,写测试用例这种做测试准备的非核心的工作。(非内核)
              • sy:systcl space,系统态,在cpu内核中进行计算消耗的时间占比。占用时间越高,这个值越大。类比测试,就相当于执行测试,找bug这种核心工作。(内核)
              • ni:nice 优先级切换(进程切换)占cpu百分比
              • hi:hardware interrupt,硬中断占用百分比。比如你和家人视频通话时候一个电话来了,不得不中断。中断会导致时间浪费,也会导致资源占用升高(进程/线程切换)
              • si:software interrupt,软中断占用百分比。就像是你打电话的时候另一个电话来了,然后你将第一个电话保持,然后去接第二个电话(进程/线程切换)
              • id:idolt 空闲cpu百分比
              • wa:wait IO等待占用cpu百分比
              • st:hypervisor管理程序占用百分比
              • 以后,不要说系统负载值大于cpu数量,就一定负载高
            • load average: 0.24, 0.23, 0.31:如何知道我们现在系统的负载情况?
              • 看第一个值是上升还是下降,如果现在负载值在上升,表示还会继续上升。
              • 如果第一个值小于第二个值,表示现在系统负载正在下降,再过一段时间可能会恢复正常
              • 如果第三个值小于第二个值,同上
              • 输入数字1可以看到cpu数量,核数
                五、linux分析命令_第7张图片
        • 第二行:Tasks: 272 total, 1 running, 205 sleeping, 0 stopped, 66 zombie
          • tasks进程数,Threads:可以按H来切换线程
            • 任务列表中,S列对应
            • S sleep 休眠
            • R running 正在运行
            • T stopped 终止
            • Z zombie 僵尸进程
          • KiB Mem : 32779828 total, 2448616 free, 3810724 used, 26520488 buff/cache
          • KiB Swap: 0 total, 0 free, 0 used. 27860280 avail Mem
          • buff/cache:缓存
            • buffer:缓冲区(磁盘虚拟出来的加快读速度的空间)
            • cache:缓存(cpu,内存的缓存)
          • Swap:交换分区(也是磁盘虚拟出来的,进行内存数据转移的,不进行计算:内存->swap,swap->内存)
          • PID:进程id
          • USER:进程的归属用户
          • PR:优先级的级别
          • NI :优先级的值,值越低优先级越高

          • VIRT:虚拟内存,进程使用的虚拟内存大小,默认是kb(任何一个程序启动都会在内存中占用物理内存和虚拟内存)
          • RES: 物理内存大小,进程使用的物理内存大小,默认是kb
          • SHR:共享内存大小,默认单位是kb

          • 上面3个都是进程的内存相关数据,按小写e可以切换单位
          • S:进程的状态
          • %CPU:进程使用cpu率
          • %MEM:进程使用mem率
          • TIME+ :进程使用cpu的时间
          • COMMAND:进程名称
      • 这里只是展示了部分,按F可以获取更多信息
        五、linux分析命令_第8张图片

      • 具体使用

      • top后具体的使用如下:
        五、linux分析命令_第9张图片

        • 1、查看当前系统cpu使用率最高的4个进程 n4 回车键

        • 还原 n0 回车
          五、linux分析命令_第10张图片

        • 输入m 回车:内存信息
          五、linux分析命令_第11张图片

        • 输入t 回车(task/cpu stats)cpu的情况
          五、linux分析命令_第12张图片

        • 改变刷新频率: s或者是d + 回车键
          五、linux分析命令_第13张图片

        • 查看某个进程下线程资源的使用情况: top H -p pid
          五、linux分析命令_第14张图片

      • 2、ps
        • ps(process status)获取帮助: man ps
        • 获取当前系统的进程状态
        • ps -ef/-eF/-ely 使用标准语法查看系统上的每个进程
        • ps aux/ax 使用BSD语法查看系统上的每个进程
        • ps -ejH/axms 显示进程树
        • ps -eLf/axms 显示进程信息
        • 区别就是展示的内容不一致五、linux分析命令_第15张图片
      • 3、vmstat
        • vmstat(yum -y install sysstat)
        • 虚拟内存的缩写,可对虚拟内存,进程,cpu活动进行监控
参数 用法说明
-a,–active 显示活跃或非活跃的内存
-f,–forks 线程从系统启动至今的fork数量(复制了几次)
-m,–stabs 显示stab信息
-n,–one-header 头信息,仅显示一次
-s,–stats 以表格方式显示时间计数器的内存状态
-d,–disk 报告磁盘状态
-p,–partition 显示指定的硬盘分区状态
-s,–unit 输出信息的定位
  • 具体含义的解释
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 2182412      4 26211260    0    0     0    15    0    0  4  1 96  0  0
 1  0      0 2182140      4 26211260    0    0     0     0 1140  705  6  1 94  0  0
参数 说明
procs r显示多少进程在等待:如果r列的数量大于cpu核数,说明现在有大量的进程在等待cpu计算,现在可能出现了cpu不够用的情况–cpu成了我们的性能瓶颈,此时可能要去增加cpu数量或者减少运行的进程数。b显示多少进程正在不可中断的休眠:就是一直占用cpu资源,虽然没有在计算,就一直是等待状态。就像是进行接力赛,我边跑边等待前一个人把接力棒传给我。这个数量不能过大,过大说明资源不够用
memory swad显示多少块被换出磁盘,free显示剩下的空闲块,buff/buffer表示正在被用作缓冲区的块,cache表示正在被用作操作系统的缓存
swap 现在交换活动,si:每秒有多少块正在被换入内存,so:每秒有多少块正在被换出到磁盘
io 显示了多少块从块设备读取(bi)和写出(bo),通常反映了磁盘I/O
system 显示每秒中断(in:interrupt)和上下文切换(cs cpu上下文切换)的数量
cpu 显示所有的cpu时间花费在各类操作的百分比,包括执行用户代码(非内核),执行系统代码(内核),空闲以及等待IO
  • 内存不足的表现:
    • free memory急剧减少,回收buffer也无济于事,大量使用交换分区(swpd),页面交换(swap)频繁,读写磁盘数量(io)增多,缺页中断(in)增多,上下文切换(cs)次数增多,等待io的进程数(b)增多,大量cpu时间用于等待io(wa)

    • 举例

      • 每隔1s收集1次数据,共收集10次
        五、linux分析命令_第16张图片
      • 每隔1s展示磁盘数据的情况
        五、linux分析命令_第17张图片
      • 以表格方式显示时间计数器的内存状态(左边的数字展示的是数量)
        五、linux分析命令_第18张图片
        • 4、mpstat
          • 实时监控工具,主要报告与cpu相关统计信息

          • 需要手动安装sysstat才能使用(这个工具包中带了很性能分析的工具)

          • mpstat 1 10 每秒显示一次监控数据,总共显示10次
            五、linux分析命令_第19张图片

          • mpstat -P ALL 3 3s获取1次所有的监控数据 (这里还多展示了各个cpu的情况)
            五、linux分析命令_第20张图片

        • 相关字段解释:

          • %usr:用户态使用cpu的时间占比
          • %nice:nice 优先级切换(进程切换)占cpu百分比
          • %sys:系统态,在cpu内核中进行计算消耗的时间占比
          • %iowait :等待占用cpu百分比
          • %irq:硬中断
          • %soft :软中断
          • %steal :管理者占用资源
          • %guest:显示cpu或cpu运行虚拟机处理器所花费的时间占比
          • %gnice:显示cpu或cpu运行nices客户机所花费的时间占比
          • %idle:idolt 空闲cpu百分比
        • 5、pidstat
          • 监控全部或指定进程的cpu,内存,设备io等资源占用情况和上下文切换信息。是一个常用的进程性能分析工具,用来实时查看进程的CPU,内存,IO以及上下文切换等指标信息
          • pidstat -u -w 1
            • cswch/s (voluntary context switches)自愿上下文切换,nvcswch voluntary context switches)非自愿上下文切换

你可能感兴趣的:(性能测试,linux,运维,服务器)