day18笔记
资源管理注意点
通过systemctl start 这样的系统服务管理命令启动的程序是相当于去这个软件的绝对路径下寻找该软件的运行程序,通过资源管理器查看到的是该服务运行程序所在的绝对路径
但是外来安装好的软件安装成功后一般会生成一个二进制命令,如果你是通过这个二进制命令来运行该软件的话是无法通过systemctl stop 这样的系统服务管理命令来管理的,因为没有用系统自带的服务管理命令,所以该命令并不知道该软件运行状态。
数据流
执行linux命令时,linux默认为用户进程提供了3种数据流
- stdin
- 标准输入、0
- 一般是键盘输入数据
- 比如cat命令等待用户输入
- stdout
- 标准输出、1
- 程序执行结果,输出到终端
- stderr
- 标准错误输出,代号,2
- 程序执行结果,输出到终端
实际应用
uptime命令
uptime命令查看机器cpu负载情况
[root@localhost ~]# uptime
21:32:52 up 8:21, 2 users, load average: 0.00, 0.01, 0.05
[root@localhost ~]#
理解uptime看到的负载
分别是1、5、15分钟内的平均负载情况,表示是1~15分钟内CPU的负载变化情况。
1. 三个值如果差不多,表示系统很稳定的运行中,15分钟以内,CPU都没有很忙
2. 如果1分钟内的值,远大于15分钟的值,表示机器在1分钟内压力在直线上升
3. 如果1分钟内的值,小于15分钟的值,表示系统的负载正在下降中
查看cpu是几核
[root@localhost ~]# lscpu |grep -i '^cpu(s)'
CPU(s): 2
[root@localhost ~]#
通过cpu的文件,确定是几颗CPU
[root@localhost ~]# cat /proc/cpuinfo |grep 'core id' | sort |uniq|wc -l
2
[root@localhost ~]#
stress压力测试命令
使用stress命令,给机器进行压力测试,这个命令会让你机器的cpu使用率瞬间达到100%,以此实现最高压的环境
stress --cpu 1 --timeout 600
free命令
查看服务器内存容量详细信息
total:是指物理内存总大小,信息来自于/proc/meminfo
used:是指已经使用的内存,userd=total-free-buffers-cache
free:是指空闲的;free = total - used - buff - cache
shared:是指共享的内存;用于tmpfs系统
buffers:缓冲区,写入缓冲,用于内存和磁盘之间的数据写入缓冲,存放内存需要写入到磁盘的数据。
cached:缓存区,读取缓存,加快CPU和内存数据交换,存放内存已经读取完毕的数据。
cache 缓存 和 buffer 缓冲
cache是指,把读取磁盘而来,的数据保存在内存中,再次读取,下一次不用读取硬盘,而直接从内存中读取,加速数据读取过程。
buffer是指写入数据时,把分散的写入操作保存到内存,达到一定程度集中写入硬盘,减少磁盘碎片,以及反复的寻道时间,加速数据写入。
cahe相当于一个中转站,把数据从硬盘读出来存放到内存中,是用来加速数据的提取的
buffer相当于tar将一堆零散的数据打包整合到一块,加速数据的存储速度
df命令
查看当前机器的,磁盘使用情况
[root@localhost ~]# df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 19G 4.5G 15G 24% /
[root@localhost ~]#
监控磁盘io动态
通过安装iotop工具来监控磁盘的IO情况
IO
input output status 是磁盘的写入和读取
网络端口查看
netstat命令
作用:查看网络连接状态
语法:netstat -tnlp
选项:
-t:表示只列出tcp 协议的连接;(你可以看到你的nginx的运行)
-n:表示将地址从字母组合转化成ip 地址,将协议转化成端口号来显示;(netsta默认会看到机器的主机名 -n 直接显示ip)
-l :表示过滤出"state(状态)"列中其值为LISTEN(监听)的连接;(你的nginx是否监听了0.0.0.0:80)确认端口在运行中,等待客户来访问
-p:表示显示发起连接的进程pid 和进程名称; (显示使用该端口的进程的id号)
-u :查看udp连接 (ntpd服务)
ss命令
用法和netstat一模一样,也是用来查看网络端口的命令
iftop命令
和top命令相似,用来检测linux的网络流量动态
网络协议
tcp协议
服务端和客户端之间建立一个长期的可靠的通信连接,双方通过这个连接来互相传递数据,虽然过程有点慢,但是数据传输过程安全稳定。
udp协议
服务端通过远程信号将数据传送到客户端上,虽然速度快,单缺乏固定稳定的连接,数据在传输过程中很容易被攻击,导致最后数据携带一堆无用的流量一起呗输送到客户端上,导致机器故障。