如何不使用任何模型裸建服务器

简介: 如何不使用任何模型裸建服务器

裸建服务器的问题较多,但是作为后端程序员依然有必要了解,以便更深刻地理解为什么要使用IO多路复用模型、异步模型等。

前导知识

网络IO:在计算机网络中进行数据的输入/输出(Input/Output)的操作,可以是由本地程序发送给本地程序,也可以是由多台不同主机上的程序进行操作。

网络IO的步骤:1、建立连接。2、接收数据(I)/准备数据(O)。3、数据处理(I)/发送数据(O)。

IP与网卡:网卡是接收数据的硬件设备。一台主机可能有多张网卡,一张网卡一般对应一个IP地址。IP地址127.0.0.1,一般用于同一张网卡之间内部进行IO。IP地址为0.0.0.0,一般表示本机所有的网卡的IP的集合。IP地址为非127.0.0.1,非0.0.0.0,一般是某张网卡的IP。

建立服务端——基于TCP协议

建立一个发送什么什么,就会返回什么数据的服务端。

建立服务端套接字

首先需要建立套接字。这个套接字有什么作用呢?打个比方,一个客户要和服务中心建立通信关系,那么客户先给这个“服务端套接字”发送消息说“我想和服务中心建立通信”,这个“服务端套接字”走了一下流程,发现没问题,于是就允许二者建立他们的通信线路。

int socket(int domain, int type, int protocol);第一个参数表示地址族,第二个参数表示套接字类型(一般决定是tcp协议还是udp协议),第三个参数通常是0,表示根据第二个套接字自动选择协议。

设置服务端套接字的信息

我们一般先把信息存储在一个结构体实例中,然后通过再把这个结构体实例通过bind函数绑定给套接字。如果是ipv4地址用struct sockaddr_in,如果是ipv6地址用struct sockaddr_in6。INADDR_ANY表示0.0.0.0这个IP。套接字一般分为两部分,一部分在用户空间,一部分在内核空间。在用户空间体现为一个数字,一个文件标识符,在内核空间被实现为一个结构体,用于管理网络通信的底层细节。

把套接字信息与套接字绑定

成功返回0,失败返回-1。

让套接字进入监听状态

第二个参数表示等待队列的长度,也就是最多能同时监听多少个来自客户端的接入请求。在等待队列中的监听请求已经进入了被监听状态,但是流程未走完。

客户端发起连接请求

推荐一个客户端连接工具:TCP/UDP Net Assistant

建立连接是不需要代码显式参与的。

在服务端用linux命令查看连接成功与否

可以看到服务端的监听端口有两个状态,一个是LISTEN,一个是ESTABLISHD。ESTABILISHD那一行记录了客户端的IP和port。

服务端接收数据

网络连接建立成功之后,服务端已经能接受信息了。但是还需要专门的操作把消息读取出来。

首先需要建立一个新的套接字,把客户端与服务端套接字的通信,转移到另一个套接字上去,并实现专门的接受报文的功能。

建立一个结构体,用于存储客户端的相关信息,比如IP,port等。补充:clientid是在stdin,stdout,stderr,socketfd的基础上依次增加的。

然后就调用recv函数通过新的套接字接收数据了。需要先准备好一块接受数据的空间。如果没有数据发送,会被阻塞住。

     

返回值是接收到的数据的长度。

发送接收到的数据

sned函数第二个参数是发送的数据的长度。如果buffer数据没准备好会被阻塞住。

clientfd的回收

查看连接的状态,刚调用close的时候,连接先进入timewait状态,因为服务端可能需要一些时间处理未完的数据,等待一段时间后会彻底关闭连接。

如果服务端出现了大量的timewait,原因大概率是服务端因为某些原因崩溃、不运行等,与大部分甚至所有客户端进行断开操作。当然,也有可能是主动断开。

用循环改进服务端——能持续接受并返回一个客户端的报文

上一版的代码是只能一次性接受并发回数据,将数据处理这部分改为while循环,可实现能持续接收并返回一个客户端的报文。

但是上述改进有一个问题:如果断开了连接,没办法进行close(fd)。因此需要加一个判断,判断客户端断开了连接,并跳出循环,进行close操作。

如果客户端已经断开了连接,但是close操作被阻塞住,那么tcp连接会进入close_wait状态。Close wait状态下客户端能重连接,但是服务端没法再进行数据处理了。

插图

用多线程改进服务端——能持续接收并返回多个客户端的报文

来一个连接,就建立一个线程进行处理。

因此,如果有1w个,就建立1w个线程。会非常地不利于大量并发。也就是传说中C10K的问题。

基于上述原因,建议服务端使用一些模型。

目录
相关文章
|
23天前
|
存储 人工智能 边缘计算
当 AI 进入「算力密集时代」:你的服务器能跑通大模型吗?
本文深入探讨AI服务器在技术落地中的核心瓶颈问题,结合实战经验解析从模型训练到端侧部署的算力优化策略。内容涵盖三大典型场景的算力需求差异、GPU服务器选型的五大反直觉真相、实战优化方法(如混合精度训练与硬件资源监控),以及边缘AI部署挑战和解决方案。同时提供算力弹性扩展策略、模型生命周期管理及合规性建议,帮助读者构建可持续发展的算力体系。文末附有获取更多资源的指引。
78 17
|
1月前
|
存储 弹性计算 测试技术
10分钟私有部署QwQ-32B模型,像购买Ecs实例一样快捷
虽然阿里云提供了基于 IaaS 部署 QwQ-32B 模型的方式,但传统的基于IaaS的部署方式需要用户自行配置环境、安装依赖、优化硬件资源,并解决复杂的网络与存储问题,整个流程不仅耗时耗力,还容易因操作失误导致各种不可预见的问题。 因此,阿里云计算巢提供了基于ECS镜像与VLLM的大模型一键部署方案,通过ECS镜像打包标准环境,通过Ros模版实现云资源与大模型的一键部署,用户无需关心模型部署运行的标准环境与底层云资源编排,10分钟即可部署使用QwQ-32B模型,15分钟即可部署使用Deepseek-R1-70B模型。
|
3月前
|
人工智能 负载均衡 数据可视化
阿里云出手了,DeepSeek服务器拒绝繁忙,免费部署DeepSeek模型671B满血版
阿里云推出免费部署DeepSeek模型671B满血版服务,通过百炼大模型平台,用户无需编码,最快5分钟、最低0元即可完成部署。平台提供100万免费Token,支持DeepSeek-R1和DeepSeek-V3等多款模型调用,有效解决服务器繁忙问题。新手零基础也能轻松上手,享受高效稳定的API调用和自动弹性扩展功能。教程涵盖开通服务、获取API-KEY及配置Chatbox客户端等步骤,详细指引助您快速实现DeepSeek自由。
314 18
|
7月前
|
数据可视化 Linux 网络安全
如何使用服务器训练模型
本文介绍了如何使用服务器训练模型,包括获取服务器、访问服务器、上传文件、配置环境、训练模型和下载模型等步骤。适合没有GPU或不熟悉Linux服务器的用户。通过MobaXterm工具连接服务器,使用Conda管理环境,确保训练过程顺利进行。
515 0
如何使用服务器训练模型
|
7月前
|
存储 PyTorch API
NVIDIA Triton系列09-为服务器添加模型
本文介绍了如何为NVIDIA Triton模型仓库添加新模型。通过示例模型`inception_graphdef`的配置文件`config.pbtxt`,详细解释了模型名称、平台/后端名称、模型执行策略、最大批量值、输入输出节点及版本策略等配置项。内容涵盖了模型的基本要素和配置细节,帮助读者更好地理解和使用Triton服务器。
72 0
|
7月前
|
机器学习/深度学习 人工智能 并行计算
StableDiffusion-01本地服务器部署服务 10分钟上手 底显存 中等显存机器 加载模型测试效果 附带安装指令 多显卡 2070Super 8GB*2
StableDiffusion-01本地服务器部署服务 10分钟上手 底显存 中等显存机器 加载模型测试效果 附带安装指令 多显卡 2070Super 8GB*2
110 0
|
9月前
|
开发工具 git iOS开发
服务器配置Huggingface并git clone模型和文件
该博客提供了在服务器上配置Huggingface、安装必要的工具(如git-lfs和huggingface_hub库)、登录Huggingface以及使用git clone命令克隆模型和文件的详细步骤。
836 1
|
8月前
|
网络协议 数据处理 C语言
利用C语言基于poll实现TCP回声服务器的多路复用模型
此代码仅为示例,展示了如何基于 `poll`实现多路复用的TCP回声服务器的基本框架。在实际应用中,你可能需要对其进行扩展或修改,以满足具体的需求。
147 0
|
11月前
|
机器学习/深度学习 人工智能 网络安全
人工智能平台PAI产品使用合集之在本地可以成功进入模型流,但在服务器上无法进入,是什么原因
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
11月前
使用高性能服务器训练StableDiffusion——人物模型.safetensors
使用高性能服务器训练StableDiffusion——人物模型.safetensors
134 0

热门文章

最新文章