• 源码包安装Nginx ; 查看进程ps、top命令


    一、源码包安装

    三种: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
    
  • 相关阅读:
    go 接口
    jboss 7部署cas3.4.11
    HP LoadRunner 11 破解及license
    JBoss7快速入门
    jboss7的服务器开启和关闭命令
    proc/sys/net/ipv4/下各项的意义
    JAVA使用EPoll来进行NIO处理的方法(转)
    Java NIO类库Selector机制解析(下)
    Java NIO类库Selector机制解析(上)
    mysql 性能优化方向
  • 原文地址:https://www.cnblogs.com/caodan01/p/14597807.html
Copyright © 2020-2023  润新知