首先是Apache和Nginx的区别(这里只提Nginx的好处)

Apache处理请求性能低。

Apache:一个进程处理一个请求,阻塞式;

Nginx:一个进程处理多个请求,非阻塞式;

Nginx的应用场景

Nginx只能处理静态资源,动态资源还得反向代理到应用服务器上。

下面是Nginx处理请求的过程:

Nginx有点及特点

热部署、平滑升级、开源及二次开发、高并发高性能、扩展性好、异步非阻塞的事件驱动模型

Nginx是多进程结构:

主进程Master Process管理如下几个进程:

CM(Cacah Manager)、CL(Cacah Loader)、Worker Process(这个在一般在配置文件中为auto,会根据CPU核数自己生成)。

Master Process有进程管理的功能,会把挂掉的进程拉起来,所以如果要改源码扩展尽可能不要修改Master Process。

Cacah Loader用于加载缓存

Cacah Manager用于管理缓存

而正在存储缓存的地方是在worker process里面。所有子进程都是用共享内存的方式进行通信。

下面是Linux的信号量管理机制。

最关键的就是kill关键字:

一共有64个指令,要弄清楚如下几个:

Kill -17 $PID                #父子进程通信的信号量,子进程挂了,会给父进程发信号

Kill -3 $PID                  #将应用的运行情况dump下来。由于可以吧所有线程当前运行到哪里的情况输出

Kill -15 $PID                #普通的Kill,程序退出,如果卡死,是杀不了的

Kill -9 $PID                  #不管在干嘛,阻塞,运行都kill

Kill -1 $PID                  #重新加载配置文件

利用信号量进行管理Nginx

一般不建议直接对worker进程进行管理,而是使用manager去管理

nignx是事件绑定的,他的worker子进程一般是你电脑有几颗cpu就给你多少个

在配置文件里面有个worker_processes一般是auto就是nginx自己去检测的。

如下所示:

当前Nginx只有一个worker process,原因是我这台只有一个cpu

可以通过修改配置文件,来改变,如下:

改成4,然后进行重载配置文件

这里有两条命令:

./nginx -reload
kill -1 xxxx

就可以看到:

有4个worker process了。

这里如果要改源码或者其他的操作,一般都是对worker process线程进行。

另外是./nginx -h为help

Nginx笔记-Nginx中进程结构及使用Linux信号量管理相关推荐

  1. linux大多数进程都是sleep,Linux电源管理(5)_Hibernate和Sleep功能介绍

    Linux电源管理(5)_Hibernate和Sleep功能介绍 作者:wowo 发布于:2014-6-10 16:11 分类:电源管理子系统 1. 前言 Hibernate和Sleep两个功能是Li ...

  2. 在linux中进程表示的是,Linux进程的表示

    2.linux进程相关的数据结构 首先来看内核描述进程所用的数据结构.在Linux内核0.11版本中,进程数据结构的定义在sched.h文件中,定义如下 struct task_struct { /* ...

  3. linux中进程的控制总结,Linux中的进程控制

    我们知道,程序就是一个包含可执行代码的文件,是一个静态的文件. 进程就是可执行程序的一次执行过程,是一个动态的概念,在Linux系统中所有运行的东西都可以称之为进程. 进程的基本状态三种:运行态.就绪 ...

  4. linux 进程装入 物理内存 页表,linux内存管理解析----linux物理,线性内存布局及页表的初始化...

    主要议题: 1分页,分段模式及实模式 2Linux分页 3linux内存线性地址空间布局及物理内存空间布局 4linux页表初始化及代码解析 1.1.1内存寻址和保护模式 在X86平台上,内存控制单元 ...

  5. linux中system清屏命令,Linux磁盘管理命令

    语法:df [选项] 说明:df命令可显示所有文件系统对i节点和磁盘块的使用情况. 该命令各个选项的含义如下: -a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件 ...

  6. linux 进程代码,怎样从Linux终端管理进程:10个你必须知道的命令

    Linux终端有一系列有用的命令.它们可以显示正在运行的进程.杀死进程和改变进程的优先级.本文列举了一些经典传统的命令和一些有用新颖的命令.本文提到的命令会实现某个单一功能.它们可以结合起来--这也是 ...

  7. Nginx服务器--Nginx服务器的使用笔记

    1.Nginx简介 Nginx("engine x") 一个具有高性能的[HTTP]和[反向代理]的[WEB服务器],同时它也是一个[POP3/SMTP/IMAP代理服务器],由伊 ...

  8. 【Linux 内核】进程管理 ( Linux 中进程的 CPU 资源调度 | 进程生命周期 | 创建状态 | 就绪状态 | 执行状态 | 阻塞状态 | 终止状态 | 进程生命周期之间的转换 )

    文章目录 一.Linux 中进程的 CPU 资源调度 二.进程生命周期 三.进程生命周期之间的转换 一.Linux 中进程的 CPU 资源调度 Linux 操作系统 是 多任务系统 , 可以 同时运行 ...

  9. 【Linux 内核】进程管理 ( 进程特殊形式 | 内核线程 | 用户线程 | C 标准库与 Linux 内核中进程相关概念 | Linux 查看进程命令及输出字段解析 )

    文章目录 一.进程特殊形式 ( 内核线程 | 用户线程 ) 二.C 标准库与 Linux 内核中进程相关概念 三.Linux 查看进程命令及输出字段解析 一.进程特殊形式 ( 内核线程 | 用户线程 ...

最新文章

  1. 侧边栏qq客服对话显示
  2. oracle迁移mysql视图中函数问题,mysql中to_char自定义函数。
  3. 52. N-Queens II N皇后II
  4. RabbitMQ使用手册
  5. Mycat对于导入和扩容迁移性能压测
  6. 大学生应当趁早谋划未来(二)--给表弟的建议
  7. CSS彻底研究(1)
  8. 图像处理与计算机视觉的论文创新点总结(二)
  9. abaqus2018安装教程win10_win10怎么安装abaqus v6.12_win10系统abaqus v6.12安装详细教程
  10. 怎么把知网caj变成word
  11. 计算机系统日期修改吗,电脑系统时间如何修改,教你电脑系统时间如何修改
  12. 经典对抗攻击Deepfool原理详解与代码解读
  13. MATLAB添加噪声
  14. 报表服务器组件,开发者手册概述:Power BI 报表服务器
  15. 全国各地疫苗接种数据进展
  16. 劫持Linux idle进程做点自己的计算任务
  17. 【ExpandTabView】Android 仿大众,美团下拉菜单ExpandTabView
  18. 使用Spring实现Redis的发布/订阅功能
  19. shell里面的PATH
  20. 七月在线机器学习单选刷(二)

热门文章

  1. 菜鸟创业记--第四天
  2. 为什么需要python?它在人工智能与机器学习的优势是什么?
  3. 如何批量查问PR值、百度权重、百度快照及收录量,用BlueCatTools批量网站查询工具
  4. 【飞秋】使用C# 4编写动态的代码
  5. Gmail有充分理由启用SSL加密会话
  6. 创建一个Windows Service应用程序
  7. 重磅!百度小程序成立开源联盟
  8. 一个内部转岗的机会,要不要尝试?
  9. 我的世界python写游戏_快来试试Python写的游戏《我的世界》
  10. “单细胞”前瞻 |新型微滴反应筛选技术ATAC-seq数据分析新篇章