一、源码包安装
三种: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