linux高性能服务器读书笔记之服务器模型

简介:
1.模型一:C/S(经典的)
起因:TCP/IP协议是没有客户和服务端的区别。但是资源(视频,新闻,软件)都是被数据提供者所垄断
逻辑:服务器启动后,首先创建一个或多个监听socket,并且调用bind函数将其绑定到需要(自定义)的端口,然后调用listen函数等待客户连接
特点:客户连接是随机事件,需要某种I/O模型来监听连接。
例子:服务器I/O复用技术之一的select系统调用
(当监听接收到连接 ,服务器用accept来接收,并且分配一个逻辑单元为它服务,(fork系统产生逻辑单元,逻辑单元处理好一切返回给客户端,逻辑单元可以是新创建的子进程,子线程或其他)))

2.接下来就是宅男熟悉的P2P模型

优势:就是去掉通信的中心
特点;就是每台机器在消耗服务的时候也会给别人提供服务
例子:迅雷,云计算机群
问题:主机相互之间很难发现(发现服务器来解决这个问题)
但是本质还是CS,只是一个变相的扩展

I/O处理单元--------》逻辑单元---------》网络存储单元 
中间都是由请求队列(通信方式,一般是永久的tCP连接)
2.1I/O处理单元:管理客户连接的模块,等待并且接受新的连接,接受客户的数据,将服务器的相应的数据返回客户端。数据的收发不一定在这里,也可能在逻辑单元,(取决于事件处理模式)

2.2逻辑单元:分析并且处理数据,然后将结果传递给I/O处理单元或者直接发送给客户端(对于机器群来说,一个逻辑单元也许就是一台逻辑服务器)
2.3.网络储存:可以是数据库,缓存和文件,或者一台服务器(有些是不需要的,如ssh,telnet)
2.4.请求队列:各个单元之间通讯方式的抽象
两个方面:I/O处理单元通知逻辑单元的方式,逻辑单元访问存储单元的机制
这里就会涉及到池的概念,这个TCP理解一般是事先建立好的永久高效的TCP连接

3.I/O模型
3.1阻塞和非阻塞可以用于所有的文件描述符,不仅仅是socket,
3.2阻塞是可能是无法立即完成而被操作系统挂起,知道等待完成事件发生。
3.3非阻塞是系统的调用总是立即返回。,所以如果完成世家没有发生,就会返回和错误一样的标记。(errno可以区分)
要求:我们需要在完成世家发生的情况下,操作非阻塞,才能实现高效率。
例子:I/O复用(最常用的通知机制,还有SIGIO信号)
含义:有个函数叫I/O复用函数,他可以向内核注册一组事件,内核可以将已经完成的事件通知给应用程序。
例子:I/O复用函数:select,poll,epoll_wait
原理:本身每个函数都是阻塞的,但是他们都具有监听多个I/O事件 的能力
备注:SIGIO的信号处理以后再说
备注2:上述的阻塞I/O,I/O复用和信号驱动I/O都是同步I/O模型。
原理:I/O读写操作都是在I/O事件发生之后
异步I/O:(POSIX规范)用户可以直接对I/O进行读写操作,这些操作会告诉用户读写缓冲区的位置,以及操作完成后内核通知应用程序的方式

二者核心区别:同步是用户自己处理I/O操作,异步I.O是内核执行I/O操作。
区别2:同步向应用程序通知二是I/O就绪事件,异步是I/O完成事件。

linux下,aio.h 提供了对异步I/O的支持

本文转自 jackdongting 51CTO博客,原文链接:http://blog.51cto.com/10725691/2069312


相关文章
|
存储 人工智能 边缘计算
当 AI 进入「算力密集时代」:你的服务器能跑通大模型吗?
本文深入探讨AI服务器在技术落地中的核心瓶颈问题,结合实战经验解析从模型训练到端侧部署的算力优化策略。内容涵盖三大典型场景的算力需求差异、GPU服务器选型的五大反直觉真相、实战优化方法(如混合精度训练与硬件资源监控),以及边缘AI部署挑战和解决方案。同时提供算力弹性扩展策略、模型生命周期管理及合规性建议,帮助读者构建可持续发展的算力体系。文末附有获取更多资源的指引。
1343 17
|
安全
基于Reactor模式的高性能服务器之Acceptor组件(处理连接)
本节介绍了对底层 Socket 进行封装的设计与实现,通过 `Socket` 类隐藏系统调用细节,提供简洁、安全、可读性强的接口。重点包括 `Socket` 类的核心作用(管理 `sockfd_`)、成员函数的功能(如绑定地址、监听、接受连接等),以及 `Acceptor` 组件的职责:监听连接、接收新客户端连接并分发给上层处理。同时说明了 `Acceptor` 与 `EventLoop` 和 `TcpServer` 的协作关系,并展示了其成员变量和关键函数的工作机制。
279 2
|
缓存 安全 Linux
Linux 五种IO模型
Linux 五种IO模型
|
存储 弹性计算 测试技术
10分钟私有部署QwQ-32B模型,像购买Ecs实例一样快捷
虽然阿里云提供了基于 IaaS 部署 QwQ-32B 模型的方式,但传统的基于IaaS的部署方式需要用户自行配置环境、安装依赖、优化硬件资源,并解决复杂的网络与存储问题,整个流程不仅耗时耗力,还容易因操作失误导致各种不可预见的问题。 因此,阿里云计算巢提供了基于ECS镜像与VLLM的大模型一键部署方案,通过ECS镜像打包标准环境,通过Ros模版实现云资源与大模型的一键部署,用户无需关心模型部署运行的标准环境与底层云资源编排,10分钟即可部署使用QwQ-32B模型,15分钟即可部署使用Deepseek-R1-70B模型。
|
人工智能 负载均衡 数据可视化
阿里云出手了,DeepSeek服务器拒绝繁忙,免费部署DeepSeek模型671B满血版
阿里云推出免费部署DeepSeek模型671B满血版服务,通过百炼大模型平台,用户无需编码,最快5分钟、最低0元即可完成部署。平台提供100万免费Token,支持DeepSeek-R1和DeepSeek-V3等多款模型调用,有效解决服务器繁忙问题。新手零基础也能轻松上手,享受高效稳定的API调用和自动弹性扩展功能。教程涵盖开通服务、获取API-KEY及配置Chatbox客户端等步骤,详细指引助您快速实现DeepSeek自由。
956 18
|
人工智能 安全 大数据
【限时特惠】阿里云服务器7折抢购!高性能+高性价比,开发者与企业必备攻略
阿里云服务器限时7折特惠,高性能、高性价比,为开发者和企业量身打造!新老用户均可参与,灵活配置满足多种需求,全球节点低延迟覆盖。自研神龙架构保障稳定性,安全防护全面,操作便捷,生态丰富。适用于个人开发、企业部署、跨境业务及AI计算等场景。点击专属链接立即抢购,活动名额有限,速来享受云端算力带来的高效体验!
495 0
|
存储 人工智能 弹性计算
2025年阿里云企业高性能云服务器租用价格与选型详解
随着企业数字化转型,阿里云于2025年推出多款高性能云服务器实例,涵盖计算、通用和内存密集型场景。文章分析了企业选择云服务器的核心要点,包括明确业务需求(如计算密集型任务推荐计算型实例)、性能与架构升级(如第八代实例性能提升20%),以及第九代实例支持AI等高算力需求。同时提供了配置价格参考和成本优化策略,助力企业实现效率与成本的最优平衡。
|
数据可视化 Linux 网络安全
如何使用服务器训练模型
本文介绍了如何使用服务器训练模型,包括获取服务器、访问服务器、上传文件、配置环境、训练模型和下载模型等步骤。适合没有GPU或不熟悉Linux服务器的用户。通过MobaXterm工具连接服务器,使用Conda管理环境,确保训练过程顺利进行。
2936 0
如何使用服务器训练模型
|
存储 PyTorch API
NVIDIA Triton系列09-为服务器添加模型
本文介绍了如何为NVIDIA Triton模型仓库添加新模型。通过示例模型`inception_graphdef`的配置文件`config.pbtxt`,详细解释了模型名称、平台/后端名称、模型执行策略、最大批量值、输入输出节点及版本策略等配置项。内容涵盖了模型的基本要素和配置细节,帮助读者更好地理解和使用Triton服务器。
536 0