- 服务器
- 组成:硬件、软件
- 硬件:cpu、内存、磁盘、网卡
- 软件:OS(windows、linux)稳定性、安全
- linux:本身就是一个多用户的系统
- linux作为服务器,无图像,所有的操作,都是通过命令
- jire、容器、中间件、docker、项目
- 服务 VS 服务器
- 服务:是一个能力的输出体,一定会有端口
- 一台服务器是可以有多个服务
- 架构是会影响服务器的性能的
- 服务器架构的演进:服务器性能的提升
- suse是专门针对服务器的一个无图像linux系统,稳定、安全
- linux分析版本:debian(ubuntu)、fedora(centos)、suse(opensuse)
- 遗传:安装软件的命令工具相同
- Ubuntu: apt-get apt deb(dpkg)
- centos: yum dnf rpm(yum rpm)
- suse: zypper
- linux系统,不管是什么发行版本,都是基于几乎相同的内核,文件结构也是相同的。
- linux系统,一切都是文件
- linux系统建立分区,目的是提升性能
- 查看linux文件结构:yum install tree -y
- tree -L 1 /
- linux 文件结构
- /boot linux核心文件
- /bin(/usr/bin) 存放系统中可用的命令:可直接执行的命令
- /etc 系统管理所需要的所有配置文件
- /usr unix shared resource 系统的共享文件夹
- /opt optional给主机额外安装的软件目录,相当于windows的非c盘
- /home 用户(非root)的根目录
- /sys 系统文件,记录内核设备树
- /media 自动识别的外设
- /mnt 给用户临时挂载外部文件系统
- /proc process进程,虚拟文件系统,存储当前内核运行状态的特殊文件,这个内容不在磁盘上,而在内存,可以直接查看、修改系统信息
- /root 超级权限者的主目录
- /run 临时文件,系统启动的信息
- /var 不断扩充的文件,如日志
- /temp 临时文件
- /dev device linux的外部设备
- linux文件权限
- ls -l 查看文件权限信息
- drwxr-xr-x
- 第一个 : d:目录 l:链接 -:文件
- 第2\3\4个: 归属用户User权限
- r read 读4、w write 写 2、x execute执行1 -无此权限
- chmod 777 文件名
- 第5\6\7个:归属用户组Group权限
- 第8\9\10个:其他Other用户权限
- 第12个:归属用户username chown
- 第13个:归属用户组Groupname chgrp
- 第14个:大小
- 第15个:日期时间
- 最后一个:文件名称
- linux中安装软件
- Fedora家族\SUSE家族:Fedora、redhat、centos、suse
- yum\dnf
- sudo yum install\remove\update\search pkgname
- Debain家族:debain、ubuntu
- apt\apt-get
- sudo apt-get install\autoremove\uodate\search pkgname
- Suse家族:suse
- linux安装rpm\deb文件
- rpm(Redhat Package Manager)包安装 rpm --help
- rpm -ivh**.rpm 安装过程中显示正在安装的文件信息及安装进度
- rpm -e pkgname 卸载软件,不要rpm结尾
- rpm -Uvh**.rpm 升级包
- deb包安装(debain\ubuntu)
- sudo dpkg -i ***.deb 安装
- -r 卸载
- linux安装tar.gz文件
- ***.tar.gz 可以在任意linux发行版本中安装
- 解压:tar -zxf ***.tar.gz
- 进入解压后的文件夹,检查编译:./configure
- 依赖gcc yum install gcc -y \sudo apt install build-essential
- 生成编译文件:make
- 安装:安装 make install
- 卸载: make uninstall
- 命令帮助
- man、help、info
- man
- man 命令名 显示系统手册页中的内容,会展示更多程序相关信息
- help
- info
- 性能分析基础命令
- top 常用的性能分析工具,能够实时显示系统找那个各个进程的资源占用状况
- up 3:49 当前系统启动多长时间
- 1 user, 有多少用户连接进来
- load average: 0.00, 0.01, 0.05 系统负载值
- 第一个值:过去1分钟系统平均负载
- 第二个值:过去5分钟系统平均负载
- 第三个值:过去15分钟系统平均负载
- 如果第一个值很小,如0.01,说明过去1分钟系统负载分厂低,系统基本没有压力
- 一般经验:当数值大于cpu核数的50%时就认为系统负载比较高
如果第二个值,比较大、
- 怎么判断大小:看cpu的数量,按下数字键1 可以看到当前系统cpu的核数是多少
- 第一个值很大,第二个值很小,=====现在系统的压力很大,可能还会继续上升
- 第一个值很小,第二个值很大=====系统正在释放压力,压力在逐渐减小
- load average的计算:所有cpu使用时间之和+io使用时间之和+与空间时间之和 进行比较算出来的
- Tasks 171 total 当前运行的进程数多少
- 按下H Treads 187 total :当前运行的线程数
- 按h 进入帮助信息
- 1 running ,真正运行的
- 170 sleeping, 休息
- 0 stopped ,停止
- 0 zombie,僵尸
- 对应下面的 S列:sleeping 空闲,T:stopped停止 R:running运行 Z:zombie 僵尸
- %Cpu(s):cpu的使用情况
- 0.0 us,user space用户态cpu使用率
- 0.3 sy,sysctl 系统态cpu使用率
- 0.0 ni,nice进程优先级切换cpu使用率
- 99.7 id,idolt空闲
- 0.0 wa,wait等待
- 0.0 hi,hardware IRQ硬中断
- 0.0 si,software IRQ软中断
- 0.0 st,管理程序占用时间
- 大写的E
- buff/cache
- buff 缓冲区
- 是磁盘上虚拟出来一个空间,用于平衡 内存 与 磁盘 的速度
- cache 缓存
-
- 是内存中虚拟出来的一个空间,用于平衡 cpu 与 内存的速度
- swap 交换分区
- PR:优先级 越小优先级越高
- NI:进程优先级,越小优先级越高
- VIRT 虚拟的内存使用大小
- RES 进程使用的真实的物理内存大小
- SHR 进程使用的共享内存大小
- 常用
- b n 2 加粗显示cpu使用率最高的前两个线程
- m 查看内存使用率
- t 查看cpu的使用率
- s\d 2 改变列表数据刷新频率
- H 查看线程
- top -H -p tid 查看某个进程先线程情况
- ps(process status)
- man ps:获取帮助
- 获取当前进程状态
- ps -ef\-eF\-elf 使用标准语法查看系统上的每个进程
- ps aux\ax 使用BSD语法查看系统上的每个进程
- ps -ejH\axms 显示进程树
- ps -eLf\axms 显示线程信息
- vmstat
- vmstat(yum install sysstat -y)
- 虚拟内存统计的缩写,可以对虚拟内存、进程、cpu活动进行监控
- 参数
- -a,--active 显示活跃或非活跃的内存
- -f,--forks 线程从系统启动至今的fork数量
- -m,--slabs 显示slab信息
- -n,--one-header 头信息仅显示一次
- -s,--stats 以表格方式显示时间计数器的内存状态
- -d,--disk 报告磁盘状态
- -p,--partion 显示指定的硬盘分区状态
- -s,--unit 输出信息的定位
- vmstat 3 :每3秒显示一次数据
- procs:r显示多少进程在等待 b显示多少进程在不可中断的休眠
- memory:swpd 显示多少块被换出磁盘, free 显示剩下的空闲块 ,buff 正在被用作缓冲区的块 , cache 正在被用作操作系统的缓存
- swap:现在交换活动,si 每秒有多少块正在被换入内存 so正在被换出到磁盘
- io:显示了多少块从设备读取(bi)和写出(bo),通常反映了硬盘I/O
- system:显示每秒中断(in)和上下文切换(cs)数量
- cpu:显示所有的cpu时间花费在各类操作的百分比,包括执行用户代码(非内核),执行系统代码(内核),空闲以及等待IO
- mqstat
- 实时监控工具,主要报告与cpu相关统计信息
- mpstat 1 10 每秒显示一次监控数据,总共显示10次
- mpstat -P ALL 3 3秒获取一次所有的监控数据
- pidstat
- 监控全部或指定进程的cpu、内存、线程、设备io等资源占用情况和上下文切换信息,是一个常用的进程性能分析工具,用来实时查看进程的cpu、内存、I/O以及上下文切换等指标信息
- pidstat -u -w 1
- cswch/s (voluntary context switches)自愿上下文切换,nvcswch/s(non voluntary context switches)非自愿上下文切换
- 如何分析cpu情况
- 先用top 》vmstat
- 看cpu
- 先用top 》vmstat 》mpstat、pidstat(yum install stsstat -y)
- netstat
- 用于显示与IP\TCP\UDP\ICMP协议相关的数据统计,一般用于检验本机各端口的网络连接情况
- -a 显示所有连线中的socket
- -n 直接使用ip地址,用数字方式显示,而不通过域名服务器
- -p 显示正在使用socket的程序识别码和程序名称
- -e 显示网络相关信息
- -t 显示tcp传输协议的连线状况
- netstat -anp 可以查看所有进程和进程的服务id
- netstat -anp | grep '进程关键词或端口‘ 通过关键词过滤查找进程
- netstat -apl
iostat
- 显示设备,分区和网络文件系统的cpu统计信息和输入/输出统计信息
- -c 显示CPU使用率报告
- -d 显示设备使用率报告
- -k 以每秒千字节显示统计报告
- -m 以每秒兆字节显示统计报告
- -x 显示扩展统计信息
- iostat -d 2 每2秒显示一次连续的设备报告
- iostat -d 2 6 每隔2秒显示设备信息,总共显示6次
- iostat -x sda 2 每隔2秒,显示设备sda的扩展信息
- sd\hd 表示硬盘,a表示第1块盘,1表示第1个分区
- sd=Serial ATA Disk 表示硬盘是scsi,SATA串行接口
- hd=Hard Disk 表示设备是IDE(或ATA)并行接口,U盘也是scsi,所以U盘也是sda
- vmware中把磁盘做成scsi设备,所以设备名称是sda
- iostat -dk 1 每隔1秒以千字节显示设备信息
- iostat -dxm 1 每隔1秒以兆字节显示设备扩展信息
- dstat
- 是一个用例替换vmstat、iostat等命令的工具,功能比较全,有彩色的界面 yum install dstat -y
- -c 显示cpu系统占用情况
- -d 显示磁盘读写情况
- -i 显示中断情况
- -l 显示系统负载
- -m 显示内存使用情况
- -n 显示网络情况
- -p 显示进程状态
- -r 显示io运行情况
- dstat -lcmsdrpgny
- hiq\siq 硬中断\软中断
- int\csw 中断次数\上下文切换次数
- dstat -lcmdry
- sar
- 几乎可以统计服务器的所有
- -B 分页状况
- -b I/O和传输率信息
- -d 块设备状况
- -l 中断信息状况
- -n 网络统计信息
- -q 系统负载压力统计
- -r 内存利用率信息
- -u CPU利用率信息
- sar -u 1 每隔1秒钟统计一次CPU使用情况
- sar -r 1 每隔1秒钟统计一次内存使用情况
- sar -W 1每隔1秒统计一次交换分区使用情况
- sar -b 1 每隔1秒统计一次I/O相关使用情况
- sar -n socket 1 socket统计
- sar -w 1 每秒上下文交换信息
- sar -q 1 队列长度
- sar -B 1页交换速率
posted @
2021-07-10 11:28
sinder2018
阅读(
25)
评论()
收藏
举报