1 使用w查看系统负载
[root@localhost ~]# w
13:53:11 up 1 day, 23:26, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 115.181.80.249 11:15 7.00s 0.07s 0.00s w
第一行显示系统时间、当前运行时间、目前登录用户、系统负载
- load average: 0.00, 0.01, 0.05
这三个数字分别表示1分钟、5分钟、15分钟之内,系统的负载分别是多少。主要是注意第一个负载值,值越大说明服务器压力越大。一般情况下,这个值不要超过服务器的逻辑cpu数量就没有关系。
- cat /proc/cpuinfo //查看cpu核数;processor值为0代表单核cpu。
- uptime 查看系统负载(就是w命令的第一行,主要还是以w命令为主)
2.vmstat命令
当系统负载偏高时,使用vmstat命令查看
- r 列表示有多少进程在run(运行)的状态;
- b 代表cpu以外的资源被其他进程占用;
- swpd 当内存不够时数值会发生变化;
- si 代表有多少kb的数据从swp进入到内存中;
- bi 代表从磁盘中出来到内存中去,bo代表写入的数据量数值大小代表磁盘数据的读写频率;
- us 表示用户级别的一些资源占用的cpu百分比;
- us +sy +id =100;
- wa 代表等待cpu的百分比。
3.top命令
top命令查看进程使用资源情况(动态显示)
zombie僵尸进程表示主进程被以外终止,子进程只好自生自灭......
主要关注us的值(代表cpu使用率)
RES代表物理内存的大小,单位是k字节。
默认按cpu占用大小排序
按M以内存占用大小查看排序。
按P切换回cpu占用排序;
按1可以显示所有cpu的使用值。
top -c 可以查看具体进程路径
top -bn1可以静态显示所有进程
4.sar命令
- 用sar命令几乎可以监控系统所有的资源状态。它的优点是可以打印历史信息,可以显示当天从零点到当前时刻的系统状态信息。
yum install -y sysstat //安装sar命令包
安装后使用sar命令会报错,那么因为sar工具还没有生成相应的数据库文件(无需实时监控,因为不用去查询那个文件库)。大约10分钟后会生成文件。
- sar -n DEV 查看流量网卡
rx代表接收到的数据包,tx是发送出去的数据包。
rxpck数值几千的值大概是正常的,上万的话可能被攻击了
- sar -q可以查看系统负载
- sar -b可以查看磁盘负载
/var/log/sa目录下sa文件不可以直接cat,sar文件可以直接cat查看
5.nload命令
nload可以动态显示网卡平均速度
安装noload前要安装epel-release
yum install -y epel-release
yum install -y nload
按方向键可以查看其它网卡的网速,q退出。
6.监控io性能
- iostat -x查看磁盘使用
io百分比表示等待执行的进程,wkb数值很大的话说明硬盘可能有故障
- iotop命令查看磁盘实时读写速率
7.free命令
free命令查看内存使用情况
第一列是内存的总大小,单位是kb(可以使用free -h 人性话显示);
第二列是使用了多少;
第三列是剩余内存数量;
buff/cache(缓冲和缓存)是预分配内存的量;
avaliable是预分配和没有完的内存
磁盘-->内存(cache缓存)-->cpu;cpu-->内存(buff缓冲)-->磁盘
8.ps命令
- ps命令用来查看系统进程
- ps aux 和ps -elf用法类似,查看所有运行的进程
- ps -C 进程名 查看系统里是否有这个进程
D是不能中断的进程;R run状态下的进程;
S sleep状态下的进程;
T 暂停的进程;
Z 僵尸进程;
< 高优先级的进程;
N 低优先级进程;
s 主进程;
l 多线程进程;
+ 前台进程。
9.查看网络状态
- netstat命令查看网络状态,常用选项是-lnp
sockets是uninx用户互相通信的文件(同网段)
10.Linux下抓包
- tcpdump命令抓包
tcpdump -nn 命令表示用数字显示ip地址的端口号;用来看数据的流向
tcpdump -nn port * 指定端口
抓取指定数量的数据包并且存到指定文件目录下;不能直接去解析。。
用tcpdump -r来读取抓来的包
11.Linux网络相关
- ifconfig查看网卡ip
- ifup可以启动网卡,ifdown可以关闭网卡远程操作不可恢复。
ifdown ens33 && ifup ens33
- 看网卡是否连接mii-tool命令;无法使用的话就用ethtool命令
- 修改主机名
- DNS配置文件
cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 114.114.114.114
- host文件,修改host文件可以改dns解析,只在本机生效
课堂笔记:
lscpu 也可以查看CPU的信息
uname -a 查看系统信息
uname -r 查看内核版本
lspci -k 查看硬件驱动信息
cat /proc/meminfo 查看内存信息
ip命令使用
1. 设置和删除IPip addr add 192.168.10.10/24
dev eth0
ip addr show eth0
ip addr del 192.168.10.10/24
dev eth0
2. 路由相关设置
ip route show
ip route add default via 192.168.10.1
ip route add 192.168.5.0/24 dev eth0
ip route del 192.168.10.1
另外用route命令来管理路由:
(a)、网络路由
# route add -net 192.168.1.0/24 gw 172.16.1.106
(b)、主机路由
# route add -host 192.168.1.110 gw 172.16.1.106
(c)、默认路由
# route add default gw 172.16.1.106
或
# route add -net 0.0.0.0 gw 172.16.1.106
(d)、删除路由
# route del -host 192.168.1.110
# route del -net 192.168.1.0/24
3. 显示网络统计数据
ip -s link
ip -s -s link ls eth0
3. 停止开启网卡
ip link set eth0 down
ip linke set eth0 up
Cache:缓存区,是高速缓存,是位于CPU和主内存之间的容量较小但速度很快的存储器
Buffer:缓冲区,用于存储速度不同步的设备或优先级不同的设备之间传输数据
si 有多少k的块数据,从swap进入到内存中
so 有多少k的块数据,从内存中进入到swap
进程和线程的区别:
线程和进程是另一对有意义的概念,主要区别和联系如下:
- 进程是操作系统进行资源分配的基本单位,拥有完整的进程空间。进行系统资源分配的时候,除了CPU资源之外,不会给线程分配独立的资源,线程所需要的资源需要共享。
- 线程是进程的一部分,如果没有进行显示的线程分配,可以认为进程是单线程的;如果进程中建立了线程,则可认为系统是多线程的。
- 多线程和多进程是两种不同的概念。多线程与多进程有不同的资源共享方式。
- 进程有进程控制块PCB,系统通过PCB对进程进行调度。进程有线程控制块TCP,但TCB所表示的状态比PCB要少的多。
TCP建立连接的三次握手
TCP释放连接的四次挥手