一、源码包安装

三种: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

根据一定频率的去监控系统,动态查看

centos 源码安装nginx 源码安装nginx命令_源码包

显示信息解释
第⼀部分:系统整体统计信息
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