摘要: 零拷贝技术 传统的I/O问题: 原理: 磁盘数据-->内核内存-->用户空间-->进程内存-->网卡 系统调用 read() 产生一个上下文切换:从 user mode 切换到 kernel mode,然后 DMA 执行拷贝,把文件数据从硬盘读到一个 kernel buffer 里 数据从 kern 阅读全文
posted @ 2022-02-14 19:50 suyanhj 阅读(89) 评论(0) 推荐(0)
摘要: IO模型 I/O在计算机中指Input/Output IOPS (Input/Output Per Second)即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一。IOPS是指单位时间内系统能处理的I/O请求数量,一般以每秒处理的I/O请求数量为单位,I/O请求通常为读或写数据操作请求 阅读全文
posted @ 2022-02-14 19:40 suyanhj 阅读(224) 评论(0) 推荐(0)
摘要: 缓存技术 系统缓存: buffer: 缓冲也叫写缓冲,一般用于写操作,可以将数据先写入内存再写入磁盘, 用于解决不同介质的速度不一致的缓冲,先将数据临时写入到里自己最近的地方,以提高写入速度,CPU会把数据先写到内存的磁盘缓冲区,然后就认为数据已经写入完成看,然后由内核在后续的时间在写入磁盘,所以服 阅读全文
posted @ 2022-02-14 17:03 suyanhj 阅读(250) 评论(0) 推荐(0)
摘要: 相关的系统参数优化: 默认的Linux内核参数考虑的是最通用场景,不符合用于支持高并发访问的Web服务器的定义,根据业务特点来进行调整,当Nginx作为静态web内容服务器、反向代理或者提供压缩服务器的服务器时,内核参数的调整都是不同的,此处针对最通用的、使Nginx支持更多并发请求的TCP网络参数 阅读全文
posted @ 2022-02-14 12:01 suyanhj 阅读(62) 评论(0) 推荐(0)
摘要: # 动态加载模块 ## 安装时动态加载: 官方支持9个动态模块编译,需要在nginx第一次编译安装时指定为动态模块: >--with-http_模块名_module=dynamic 如果要动态增加第三方模块: >--add-dynamic-module=模块 > >\#允许直接加载外部兼容的库(无需 阅读全文
posted @ 2022-02-14 11:51 suyanhj 阅读(2618) 评论(0) 推荐(0)
摘要: 实现fastcgi代理 CGI的由来: 最早的Web服务器只能简单地响应浏览器发来的HTTP请求,并将存储在服务器上的HTML文件返回给浏览器,也就是静态html文件,但是后期随着网站功能增多网站开发也越来越复杂,以至于出现动态技术,比如像php(1995年)、java(1995)、python(1 阅读全文
posted @ 2022-02-14 11:44 suyanhj 阅读(210) 评论(0) 推荐(0)
摘要: qps计算脚本 包括计算全天pv、qps 给定时间段内pv、qps 峰值时间qps 一般时间qps #!/bin/bash #******************************************************************** # File Name: ngx_q 阅读全文
posted @ 2022-02-14 11:10 suyanhj 阅读(371) 评论(0) 推荐(0)