55 http io

io模型

1.单进程io模型 启动一个进程处理用户请求,一次处理一个请求,多个请求被串行执行

2.多进程io模型 并行启动多个进程,每个进程响应1个连接请求

3.复用io模型 启动1个进程同时响应n个连接请求

实现方法:多线程和事件驱动

​ 多线程模型 1个进程生成n个线程,每个线程响应1个请求

​ 事件驱动 一个进程处理n个请求

复用的多进io模型

​ 启动m个进程,每个进程响应n个请求

安装包:httpd,httpd-manual
端口:80,8443
netstat -apltu 监听所有的存活的udp端口
配置文件:
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/
/etc/httpd/conf.modules.d
[root@localhost ~]# ls /etc/httpd/
conf conf.d conf.modules.d logs modules run

数据目录:/var/www/html
启动服务:systemctl restart httpd
客户端访问:
	elinks 192.168.113.129
	elinks --dump 192.168.113.129 在终端显示

apache 工作模式(MPM)

prefork
			Apache 在启动之初,预先fork一些子进程,然后等待进程进来
			每个子进程只有一个线程,一个线程一次只能处理一个请求
worker
		    多进程多线程的混合模式,也预先fork了几个子进程,每个子进程创建一些进程,同时包括一个监听线程,每个请求过来会被分配一个线程,线程比进程更轻量,因为线程通常会共享父进程的内存空间,内存的占用会少,在高并发场景,因为比起prefork有更多的线程,表现更优秀
  优点:
			占据更少的内存,高并发表现更优秀
  缺点:
			必须考虑线程安全的问题,子进程共享父进程的内存地址空间,如果使用keep-alive的长连接,某个线程会一直被占据。需要等待超时才会被释放,
 event
		    与worker很像,keep-alive场景下,长期被占用的线程的资源浪费问题
			里面有专门的线程来管理keep-alive的线程,当真实请求过来,会将请求传递给此案出,执行完毕后释放
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值