一、源码包安装
三种:rpm、yum、源码包安装
1、源码安装nginx
- 下载源码包
#第一种方式
#下载nginx包
wget http://nginx.org/download/nginx-1.18.0.tar.gz
#解压rpm包
tar -xf nginx-1.18.0.tar.gz -C /opt
#切换目录
cd /opt/nginx-1.18.0
# 就可以看到nginx源代码
# 第二种方式:https://repo.huaweicloud.com/epel/7/x86_64/Packages/n/
wget https://repo.huaweicloud.com/epel/7/x86_64/Packages/n/nginx-1.16.1-3.el7.x86_64.rpm
- 直接编译
# 编译前,系统检测
[root@www nginx-1.18.0]# ./configure
# 如果出现对应的错误,则执行下面命令
[root@www nginx-1.18.0]# yum install pcre pcre-devel -y
[root@www nginx-1.18.0]# yum install zlib zlib-devel -y
# 开始编译
make
-j : 使用多核编译
# 安装
make install PROFIX=/usr/local
# 测试
[root@www ~]# /usr/local/nginx/sbin/nginx
# 环境变量
## 添加环境变量,制作添加环境变量
[root@www ~]#vim /root/.bash_profile
/etc/profile # 所用用户的环境变量
/root/.bash_profile # 当前用户的环境变量
NGINX_HOME=/usr/local/nginx/sbin
PATH=$PATH:$NGINX_HOME
export PATH
#加载:source /root/.bash_profile
# 源码包编译 PHP
https://www.php.net/distributions/php-7.4.16.tar.gz
二、进程
程序:存放代码的⽂件=> 静态
进程:程序的运⾏过程=> 动态
1、查看进程
# 命令:ps, 默认查看当前进程
# 参数
-a : 查询所有进程
-x : 查看后台所有的进程
-u : 查看进程的用户
-e : 显示所有的进程
-f : 格式化输出同时显示PPID # 父进程ID
[root@nini ~]# ps -axu
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
# 解释
USER : 开启当前进程的用户
PID : 当前进程的ID号
%CPU : CPU的使用率
%MEM : 内存使用率
VSZ : 进程启动时默认向计算机申请的内存
RSS : 进程运行时实际使用的内存
TTY : 进程运行的终端
?: 后台运行(没有终端)
tty:使用系统终端
pts:使用虚拟终端
STAT :进程运行状态
R : 正在运行中的进程
+ : 在前台运行
S : 睡眠中状态
D : 不可中断睡眠
T : 停止状态
Z : 僵尸状态
X : 死掉的进程
< : 优先级较高的进程
N :优先级较低的进程
s : 包含子进程 yum install psmisc -y
l : 已线程的方式运行
| : 代表管道
START : 进程的启动时间
TIME : 占用CPU的时间
COMMAND : 进程执行的命令
2、top
根据一定频率的去监控系统,动态查看
显示信息解释
第⼀部分:系统整体统计信息
up左边的代表当前的时间
up右边代表运⾏了多⻓时间
load average: 0.86, 0.56, 0.78 CPU 1分钟,5分钟,15分钟平均负载
# Tasks: 115 total, 1 running, 114 sleeping, 0 stopped, 0 zombie
total : 当前系统一共运行的是115个进程
running : 正在运行的是1个
sleeping : 114个处于睡眠状态
stopped : 停止运行的进程数
zombie :僵尸进程数
# %Cpu0 : 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si
us :在单位时间进程使用CPU所占用的时间百分比
sy : 在单位时间内系统进程占用CPU时间百分比
ni : 在单位时间内优先使用CPU所占时间百分比
id :在单位时间内CPU空闲所占时间百分比
wa : 在单位时间内CPU阻塞态所占CPU时间的百分比
hi : 硬件中断
si : 软件中断
st : 其他占用CPU时间百分比
# KiB Mem : 2027892 total, 619436 free, 189136 used, 1219320 buff/
物理内存
total :系统总内存
free :系统空闲内存
used : 系统使用内存
buff/cache : 缓存使用内存
# KiB Swap: 1048572 total, 1048572 free, 0 used. 1671312 avail Mem
KiB Swap: 交换区总量。虚拟内存
avail Mem :可用交换取总量
@ 对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。
#PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+
PID : 进程编号
USER : 启动进程的用户
PR : 优先级
NI :nice值
VIRT : 虚拟内存
RES : 使用内存
SHR : 共享内存
%CPU : cpu使用率
%MEM :内存使用率
===========>什么是平均负载?
平均负载是指,单位时间内,系统处于可运⾏状态和不可中断状态的平均进程数,也就是平均活跃进程数
===========>平均负载多少合理?
假设现在在4,2,1核的CPU上,如果平均负载为2时,意味着什么呢?
------------------------------------------------
核⼼数 平均负载 含义
4 2 有⼀半(50%)的CPU是空闲状态
2 2 CPU刚好完全被占⽤
1 2 ⾄少⼀半的进程是抢不到CPU
-------------------------------------------------
===========>平均负载的三个数值我们该关注哪⼀个?
三个值相当于三个样本,我们应该统筹地看
1、如果1分钟,5分钟,15分钟的负载数值相差不⼤,代表系统的负载很'稳定'
2、如果1分钟的值,远⼩于15分钟的值,那么证明系统的平均负载逐渐降低,即我们的系统刚刚经历过⼤⻛浪,但⽬前已逐渐趋于平均。⾄于15分钟区间内,系统负载上升的原因,还需要我们认真查明
3、如果15分钟的值,远⼩于1分钟的值,那么证明系统的平均负载逐渐升⾼,有可能是临时的也有可能持续上升,需要观察
4、⼀旦1分钟的平均负载接近或超过了CPU的个数,就意味着,系统正在发⽣过载的问题,这时候就得分析问题了, 并且要想办法优化。
top快捷键
按1 : 展示所有的CPU的详情
按s : 设置top监控频率(默认3秒)
按m : 按照内存排序
按z : 添加颜色
按p : 按照CPU排序
按l : 展示CPU总负载(默认显示)
top的参数
-d : 设置top的刷新频率
-p : 设置查看的进程PID
top -d 1 -p `pgrep nginx | head -1`
-u : 查询指定用户的进程
top -u oldboy
-n : 表示查询n次
top -d 0.1 -u oldboy -n 20