重负载Telnet BBS系统优化和维护经验谈

别再只盯着内存溢出了!从Unity崩溃日志中揪出AssetBundle.LoadAsset_Internal的真凶 本文深入解析Unity崩溃日志中AssetBundle.LoadAsset_Internal错误的真实原因,帮助开发者超越内存溢出的表象,识别文件损坏、热更新陷阱等核心问题。通过日志分析技巧、最佳实践和高级调试方法,提供系统化的解决方案,确保Unity资源加载的稳定性。 阅读详情

重负载Telnet BBS系统优化和维护经验谈

kxn

 

 

神说,要有光,于是有了光;

神说,要灌水,于是有了 BBS……

 

    我们现在提到的 BBS ,通常指的都是 Telnet BBS ,用一个 term 软件连接上,就可以看到文本的界面,比起如今花哨到无以复加的 WWW BBS 们来可谓是简陋到了极点,然而就是这样的 BBS,无数人每天面对它长达两位数小时还乐在其中,恐怕 UI 设计专家们知道也要气到吐血。也不时有人发表预言,预言 Telnet BBS 将很快消亡而被更加富有表现力的WWW BBS全面取代,只是年复一年,当年的预言者已经消失不见,BBS 上的用户数目却翻了一番又一番。。。这就是 Telnet BBS 的魅力。

 

    Telnet BBS 系统数目众多,但是从根源找起,大致可以分成两大家族,Firebird BBS 和 Maple BBS,在大陆 Firebird BBS 的变种占据了绝对优势,在台湾地区则是 Maple BBS 的天下,由于台湾地区计算机发展历史比较长,因此 BBS 的人气也比大陆高,同时上站人数过万的站点有好几个,不过大陆毕竟有着人口优势,近年来教育网几大 BBS 的人数也迅速增长。下面我们就分别介绍这两大 BBS 家族。首先是在大陆最为流行的 Firebird BBS ,最有名的 SMTH BBS, YTHT BBS,  Firebird 2000 三大流派都是由此而来。

 

很久很久以前,有那么一群大学生,也可能是科研机构的研究员什么的,他们整天在Unix主机上面打滚,觉得要是能在主机上面做一个论坛样的东西多好,于是他们就写了一个命令行程序,运行这个程序,操作者可以在界面下面留言,为了让多个人同时可以操作这个系统 ,他们把这个程序设置为系统某个用户的 shell ,每个 telnet 上该主机的用户,只要使用这个用户的用户名和密码登陆,就可以进行交流。这就是 Internet BBS 的雏形。经过一段时间的发展,这个系统具有了相当多的交互功能,用户不仅可以留言,还可以互相发送信件,发送信息,看到同时在线的用户等等。

 

     BBS 系统的开发者们为了让更多的人能使用这个系统并完善之,将BBS系统以开源协议发布于网络上面。只要拥有Unix主机,就可以取得源代码并安装BBS系统。因此BBS系统以很快的速度发展起来。在众多BBS系统中,某个叫做 Pirate BBS ,经过某些人修改后叫做  Eagle BBS 的分枝,流传入了台湾地区,交大资讯工程系从他发展出了 Phoenix BBS,Phoenix BBS 是如今大部分中文 Telnet BBS 系统的祖先,然而它的名字却远不如其后辈响亮,在它的基础上由中正资工进一步修改的 BBS 系统,被赋予了那个大陆 BBS 开发者耳熟能详的名字 -- Firebird BBS。

 

     应该说, BBS 系统在传入台湾地区时候虽然功能还比较简陋,但是 BBS 系统的基本架构已经定型,比如多进程模型,共享内存信息交换,利用系统信号来传递呼叫消息,用文件存储文章和索引等,这些设计在现在的 BBS 系统中大部分还在沿用,其中不少设计即使现在来看,也是相当标准有效的多进程 Unix 服务器设计。

 

       下面我们进入正文。

 

 

Telnet BBS是一种流行于大学和研究机构中的电子公告牌系统,和时下流行的Web BBS系统不同,bbs的界面采用纯文本方式表现,用户使用终端软件连接bbs系统,文本界面在服务器端生成并发送出来,客户端软件仅原样显示文本内容,属于一种瘦客户机的应用。Telnet bbs (后面除非特殊提到,否则简称bbs)在台湾地区和大陆的教育网地区比较流行,比较大规模的站点在线人数一般都在万人以上。

 

由于历史原因,bbs系统采用的是Unix下相当传统的1:1多进程模型,每进程处理一个连接的模型,此种模型的好处是服务相对比较稳定,不会因为一个用户出错导致整个系统的不可用,但是也带来耗费资源较多和进程之间通信比较困难的问题。Bbs服务器端的复杂逻辑也使得分布式设计很难实施。因此bbs通常是单机承担几乎所有负载,大陆地区较大规模的bbs服务器上经常同时保持超过7000进程,台湾地区的bbs站甚至有并发20000进程以上的纪录。

 

我们在维护大型bbs站点的过程中,积累了一些优化和维护如bbs这样高并发进程服务器的经验,考虑到1:1进程模型服务仍然有很广泛的应用,在这里写出和读者共享。

 

优化服务器是综合性的工作,不仅需要修改代码,还需要调整系统参数,包含有很多琐碎的内容,根据目的来讲,大致可以根据节约资源的类型分为磁盘IO优化,内存优化,和CPU优化等几方面。下面介绍的优化思路虽然应用于bbs,但是也适用于其他应用系统。

 

1:  磁盘IO优化

磁盘IO优化可以说是服务器优化中最重要的一环,除了极少数的纯计算性应用,几乎所有的重载服务器最后都是卡在磁盘IO瓶颈上面。

a)       尽量使用shm等IPC手段而不是文件

多进程和多线程相比,最大的麻烦是不同执行环境交换信息不方便,因此很多程序员选择了使用文件交换信息,例如最早的bbs设计中,用户的帐户信息是存在于文件中的,进程从文件中读出内容,有修改后就写入文件。改进后的设计是将账号信息文件完整读入共享内存,所有修改都写入共享内存,然后由外部进程定时往磁盘上面同步。

甚至flock这样看起来不会造成太多IO的同步操作都应该尽量避免,原因是flock需要先open文件,而open文件需要找到i节点,因此会占用文件系统的inode缓存空间,可能造成其他IO操作的性能降低。在很多情况下面需要的只是一个跨进程的mutex,可以使用0/1信号灯来实现。

b)      使用应用层缓存。

很显然,操作系统的缓存会受到很多因素的干扰,对于一些确定会经常访问的内容,例如版面的最新几片文章和最新列表,如果放入shm中缓冲,性能会有大幅度提升。

c)      尽量减少关键IO数据结构的大小

Bbs文章列表的索引文件是由定长数据结构构成的,在这个数据结构中为了将来扩展方便,留下了很多保留域,造成了很多不必要的IO,删除不必要的域之后,数据结构变小了一半,减少了很多IO。很多时候,扩展性和性能其实是对立的,如果很需要性能,那么损失一定的扩展性也是不错的选择。

d)      避免在同一目录下放过多文件或者使用合适的文件系统

大部分文件系统对在同一目录中的文件列表采用线性存储,因此在一个目录下面存在很多文件的时候,打开文件变得非常的慢,因此通常要将文件根据某种规则散列到不同的子目录中,例如,文件 Atest 会被存放在 A/Atest ,如果文件太多,可能会需要对子目录下面的文件再次进行散列。

另一种解决文件过多影响效率的方法是使用有特殊优化的文件系统,例如Linux下的reiserfs。在这些文件系统中,目录中的文件列表是用平衡树来组织的,因此同一目录下面可以同时有数十万个文件而不会降低太多性能。

e)       根据系统的访问模式选择适合的硬件配置和系统参数

Bbs系统使用零散的文件存放文章,它的访问模式基本是小文件随机读写,而文章数据相对比较重要,因此bbs使用strip大小比较小的raid5比较合适。文件系统选择专门为小文件优化的reiserfs,系统的预读长度也可以调小一些,Linux 默认的长度是 256K, 有些偏大。如果是大文件连续读写的话,那么raid的strip 大小和系统的预读长度应该放大,文件系统则尽量选择结构简单的文件系统例如ext2/3 等,如果数据并不是非常重要,那么甚至可以取消raid5,代之以raid0或者直接使用单独的硬盘。

 

2: 内存使用优化

Bbs系统使用的多进程模式相当耗费内存,在bbs发展过程中,最早遭遇的瓶颈就是内存。减少内存的不必要浪费,可以节约出来作为系统缓存,从而间接提高更重要的IO性能

a)       尽量避免动态初始化常量,使用const说明将变量和常量区分开来。

Unix系统在fork出新进程的时候,子进程和父进程共享相同的空间,之后按照COW机制,对修改的页面才进行复制操作,常量如果可以预先计算出来(例如一些转换表之类),就应该尽量避免在运行时动态初始化。另外因为只要修改一个字节,整个页面就都会被复制,因此应该避免常量和会被修改的变量混在一起,编译器本身会自动将不会被修改的内容放在一起,程序员需要做的事情,就是用const通知编译器哪些内容是不会被修改的。

b)      减小内存的峰值使用,特别是堆栈中内存

很多人习惯写程序时候在堆栈上声明一个比较大的临时数组,认为退出函数之后这部分内存会自动被释放。殊不知这样分配的内存并不会被动态被系统回收,因为系统并没有一个明显的标记可以得知堆栈内存是否还在使用中,特别是在多线程的环境下面,操作系统通常采用的措施是需要的时候分配页面,但是在进程退出之前并不回收。即使是通过malloc分配的堆内存,其页面是否回收也视库函数的实现而不确定。因此在无论什么情况下,贸然分配过大的内存,都会对性能造成一定的影响。

c)      如有可能,尽量使用shm来保证页面一定会被多个进程共享。

 

3: CPU优化

这里说的CPU使用优化,不包括像使用hash来代替线性查找这类最基本的算法优化,而是涉及一些和系统关系比较密切的操作。

a)       使用针对硬件优化的编译器

这应该是所有CPU相关优化中最容易做到也是最容易看到效果的,Intel CPU的Linux系统上面使用 Intel C/C++ 编译器,可以获得很好的效果,甚至AMD的Athlon系列CPU也能获得一定程度的加速。Bbs进站时候需要初始化很多内容,计算量比较大,使用gcc时候负载在4左右,使用icc编译以后负载马上下降到1以下。推荐编译时候针对特定CPU指令集优化并且打开跨文件优化选项(-ipo)

b)      使用单独进程来初始化和维护共享内容,避免出现竞争导致逻辑错误

严格讲这并不能提升很多性能,只是为了减少多进程服务器上面经常出现的逻辑错误。在原始的bbs设计中,共享资源的创建是由第一个访问的进程在打开失败时候创建的,但是重负载服务器上面有时候打开也会失败,从而导致多次创建共享资源。

c)      序列化容易导致负载上升的行为

Bbs进程在进站时候需要进行很多的初始化工作,同样进程退出的时候也要做很多的收尾工作,此时对CPU或者IO的占用比较大,通过一个互斥锁可以使多个进程不要同时进行这些操作,否则系统负载有可能上升到一定程度引起正反馈,导致系统彻底崩溃。

d)      尽量减少信号的使用

Unix系统下面对于信号的实现的代价是比较大的,同时信号本身也很容易导致处理逻辑的混乱。高负载服务器应该尽量减少信号的使用。

e)       对于大范围IO读取操作,使用mmap调用

使用mmap操作比传统的read操作好处是减少了一次内核态到用户态的拷贝。在大范围IO操作的时候具有优势,bbs中使用mmap操作来在文件中搜索内容,速度最高时候提高了5倍左右。但是需要注意的是,mmap并不适用于有写入的情况,因为mmap写盘的时候是以页为单位进行操作,页中只要有一个字节被改写,就要往磁盘上面写整个页面的数据,无端增加了IO量。

 

以上是我们在维护大型bbs站点时积累的一些经验,供各位读者参考。

 

 

附图:水木清华BBS大致结构图

Matlab+Matpower实战:手把手教你生成IEEE14节点FDIA攻击数据集(附完整代码) 本文提供了一份基于Matlab与Matpower工具构建IEEE14节点FDIA攻击数据集的完整实战指南。通过动态负荷数据模拟、潮流计算、状态估计及隐蔽攻击向量注入,手把手教你生成可用于电力系统网络安全研究的仿真数据集,并附有核心代码与调试技巧。 阅读详情

相关推荐

Python读取Matlab v7.3数据

文章目录Matlab保存数据Python读取 v7.3 Mat Matlab保存数据 在matlab设置中,常规->MAT文件,选择MATLAB版本7.3或更高版本保存数据。 注意保存数据的文件名为 corre.mat,保存的数据数组为data; 后面python的读取中会用到这两个参数 Python读取 v7.3 Mat 先安装hdf5storage库,再使用以下代码,就可以读取到mat中的数据,注意 import hdf5storage import numpy as np dataDi

weixin_43121914的博客 1081

论坛服务器的维护,服务器维护论坛

服务器维护论坛 内容精选换一换云服务器备份提供两种配置方式,一次性备份和周期性备份。一次性备份是指用户手动创建的一次性备份任务。周期性备份是指用户通过创建备份策略并绑定服务器的方式创建的周期性备份任务。云服务器备份的两种配置方式对比如表1,可根据实际情况选择适合的配置方式。另外,用户也可以根据业务情况将两种方式混合使用。例如,根据服务器中存放数据的重要程度不同,可以将不支持直接加载外接硬件设备(如...

weixin_36268722的博客 642

昇腾CANN实战:如何用DVPP+AIPP实现32路视频流毫秒级预处理(附性能对比)

本文深入探讨了昇腾CANN架构中DVPP和AIPP模块在32路视频流毫秒级预处理中的硬件加速技术。通过异构计算架构的优化,实现了从传统CPU方案的40.7毫秒到CANN方案3.4毫秒的显著性能提升,特别适用于智能安防领域的实时视频分析需求。文章详细解析了DVPP多通道并行设计和AIPP模型级预处理融合的技术细节,并提供了性能对比数据与实战调优经验。

alice7model的博客 919

重负载Telnet BBS 系统优化和维护经验谈

重负载Telnet BBS 系统优化和维护经验谈本文作者:kxn神说,要有光,于是有了光;神说,要灌水,于是有了 BBS⋯⋯ 我们现在提到的 BBS ,通常指的都是 Telnet BBS ,用一个 term 软件连接上,就可以看到文本的界面,比起如今花哨到无以复加的 WWW BBS 们来可谓是简陋到了极点,然而就是这样的 BBS,无数人每天面对它长达两位数小时还乐在其中,恐

胡搅蛮缠专栏 1161

别再模拟IIC了!用STM32F103C8T6的硬件IIC驱动AT24C64,CubeMX配置+避坑指南

本文详细介绍了如何使用STM32F103C8T6的硬件IIC驱动AT24C64 EEPROM,通过CubeMX配置和HAL库函数解析,提供从模拟IIC到硬件IIC的完整解决方案。内容包括硬件IIC与模拟IIC的核心差异、CubeMX工程配置详解、HAL库驱动实战以及典型问题诊断与优化,帮助开发者构建更稳定高效的存储系统。

weixin_27038245的博客 188

GEO优化内容营销策略:从规划到落地的全流程指南

GEO内容营销是通过地域化内容提升本地搜索排名、增加流量和转化率的策略。核心包括:构建本地用户画像,挖掘需求关键词;策划本地文化融合、案例研究等多样化内容;通过网站、社交媒体、本地KOL等渠道精准分发;优化本地关键词和视觉元素;监测数据并动态调整。案例显示,咖啡馆、工业企业和服装品牌通过本地化短视频、KOL合作及社群运营,显著提升了搜索排名、客流量和销售额。关键原则是内容本地化、精准分发、KOL合作、激励用户生成内容及数据驱动优化,实现高效本地市场渗透。

解锁AI流量新红利!🚀 GEO优化(生成引擎优化)助您掌控AI搜索,让AI成为您的品牌最佳代言人! 1329

[转载] 重负载Telnet BBS系统优化和维护经验谈

 神说,要有光,于是有了光; 神说,要灌水,于是有了BBS……   我们现在提到的 BBS ,通常指的都是 Telnet BBS ,用一个 term 软件连接上,就可以看到文本的界面,比起如今花哨到无以复加的 WWW BBS 们来可谓是简陋到了极点,然而就是这样的 BBS,无数人每天面对它长达两位数小时还乐在其中,恐怕 UI 设计专家们知道也要气到吐血。也不时有人发表预言,预言 Telnet BB

飞吧!爱的翅膀! 463

告别反复刷写:用英飞凌XCP Overlay功能实现ECU标定与诊断的‘热更新’

本文详细介绍了英飞凌XCP Overlay功能在ECU标定与诊断中的应用,实现参数的'热更新',避免反复刷写Flash。通过地址重映射技术,将标定变量从Flash重定向到RAM,显著提升工作效率并保护Flash寿命。文章涵盖技术原理、工程实践、功能安全考量及高级应用场景,为汽车电子工程师提供完整解决方案。

weixin_30689307的博客 528

重负载Telnet BBS 系统优化和维护经验谈 zz

发信人: Fishingsnow (说错话办错事), 信区: BBSDev标  题: 重负载Telnet BBS 系统优化和维护经验谈 zz发信站: 一见如故 (Mon Jul 11 11:30:40 2005), 本站(yjrg.net)重负载Telnet BBS 系统优化和维护经验谈文章出处:   发布时间:2005-02-26重负载Telnet BBS 系统优化和维护经验谈本文作者:kxn神

烧海的专栏 948

uniapp(vue3)- 详解安装/使用pinia报错reportJSException >>>> exception function:createInstanceContext, excepti

uniapp vue3 pinia报错reportJSException >>>> exception function:createInstanceContext, exception:white screen cause create instanceContext failed,check js stack -> at useStore,H5网页,微信小程序,安卓App,苹果App,nvue,uniapp安装使用pinia出现报错at useStore,uniapp+vue3+ts 使用pinia报

🏆 前端领域优质创作者 4048

Linux | Ubuntu18.04安装WIFI6 AX201驱动完整教程

本节介绍了如何在Ubuntu18下安装AX201驱动的教程。

九七的博客 8881

理解 Linux 动态库加载:LD_LIBRARY_PATH

flyfish

二分掌柜的 353

​​10.3 时间敏感网络(TSN)协议适配​

本文探讨了时间敏感网络(TSN)协议在PCIe网络加速卡开发中的适配方案,重点分析了时间同步、流量调度和冗余传输三大核心问题。研究从协议实现、硬件加速设计和驱动优化三个维度展开,提出采用FPGA实现PTP时钟同步、动态TAS调度器以及双路径冗余传输等技术方案。通过工业控制网络案例验证,该方案将端到端延迟从120μs降至8μs,带宽利用率提升至92%,同时实现了100%的确定性保障。研究还总结了调试工具和典型问题解决方法,为TSN在PCIe网络中的实际应用提供了技术参考。

amy_mhd的博客 364

【Linux网络】TCP 服务器并发处理多客户端:从 fork 分发到双重 fork 彻底消灭僵尸进程

拆解 TCP 服务器并发演进链:fork 分发连接、SIGCHLD 循环回收僵尸、双重 fork 交孙进程给 init 收养,并给出模型选型与线上排错对照。

2301_78967866的博客 429

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

LangGraph 本地 build 频频翻车,最终在服务器跑通流式对话

先说结论:我本地那个,一次都没成功过。三次,三次,全挂在拉镜像上。而顺得像刚上过油。这就很像我高中那辆自行车:骑着能走,一上锁就坏。那天晚上我盯着终端里那行红字看了很久,想的不是技术方案,想的是——为什么同一个工具,可以一边让我觉得自己很行,一边让我觉得自己不太行。

人工智能AI技术 116

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork

本文详解多进程TCP服务器的实现原理,从单进程并发瓶颈出发,通过fork分离连接接收与服务职责。重点解析文件描述符继承机制、僵尸进程问题及双重fork解决方案,最终构建高效、稳定的多进程服务器模型,并说明服务器重启时可能因端口未释放导致绑定失败的原因。

2402_87731470的博客 2400

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

自建 Git 服务器和裸仓库差在哪:要能提合并请求

在一台 Linux 上 git init --bare 就能自建 Git 服务器,但它只能推拉代码,没有网页、合并请求、评审和按仓库分配的权限。对照裸仓库和 AngusGit 各自能做什么,再走一遍在 AngusGit 上发起合并请求的最短路径,以及已有裸仓库怎么完整搬过来。

AngusTester 324

轻量点对点定时备份方案:个人文档与服务器文件跨机同步实践

本文探讨了轻量级文件备份场景下的实际需求与解决方案。针对个人文档及小型服务器备份,传统BAT脚本虽易上手,但存在断点续传差、安全缺失、维护困难等短板。作者提出理想方案应具备点对点传输、断点续传、加密传输、版本管理、文件过滤及自动清理等能力。最终选用松鼠备份工具,实现稳定、低运维成本的跨机同步,尤其适合中小型场景,强调“稳定省心”优于复杂功能,是小团队和个人运维的高效之选。

2501_93776716的博客 209

架设一台NFS服务器

3、将/home/tom目录仅共享给192.168.100.136这台主机,并只有用户tom可以完全访问该目录。注意:tom是一个用户目录,并且在客户端创建tom用户一定与服务端的tom用户的uid/gid保持一致。2、开放/nfs/upload目录,为192.168.100.0/24网段主机可以上传目录,并将所有用户及所属的组映射为nfs-upload,其UID和GID均为210。1、开放/nfs/shared目录,供所有用户查询资料。架设一台NFS服务器,并按照以下要求配置。

2401_87595340的博客 239

安徽京准:NTP网络校时服务器在化工厂网络部署要点

安徽京准:NTP网络校时服务器在化工厂网络部署要点

239

Linux epoll 一篇讲透:从 select/poll 到红黑树、LT/ET,再到完整 TCP 服务器

一万个客户端已经连上服务器,眼下只有十个客户端发来了数据。服务器怎样把时间花在这十个连接上?理解这个问题,就抓住了 epoll 的主线。接下来,我们沿着“为什么需要它 → 接口怎么用 → 内核如何实现 → LT/ET 怎么写 → 完整服务器怎么运行”的顺序,把知识连起来。**阅读基础:**了解socketbindlistenaccept的基本用途即可。本文示例面向 Linux,服务器使用 C++17,实验脚本使用 Python 3。

2601_94861874的博客 199

把电脑变成一台“假“GNSS 设备 —— 一个蓝牙 SPP 服务器从零到联调

本文介绍如何用Qt6实现一个蓝牙SPP服务器(H11BtServer),将电脑模拟为一台可被发现的GNSS设备。该服务器支持经典蓝牙SPP协议,注册SDP服务并监听连接,响应AT命令(如AT+DEVINFO),每秒主动推送带正确校验和的NMEA帧($GNPOS/$GGA等),数据基于时间驱动正弦与随机扰动,实现位置、精度等参数动态变化。通过解析行式协议、计算校验和、严格对齐字段顺序,可在无真实硬件情况下联调RTK客户端(如rtklib SDK或手机App),完整验证数据链路。代码结构清晰,参数集中配置,易于

Hi20240217的博客 148

Linux网络编程:彻底理解IO多路复用select!从fd_set位图、读写就绪到手写TCP多客户端字典服务器

在前面的Linux网络编程中,我们已经学习了五种经典I/O模型:其中,我们通过 配合: 将文件描述符设置为非阻塞模式。例如: 这样,在没有数据可读时: 可以立即返回: 并设置: 而不需要让当前线程一直阻塞等待。但是,这又引出了一个新的问题。假设我们的TCP服务器同时连接了100个客户端: 如果使用简单的非阻塞轮询: 服务器就需要不断检查这些Socket。即使其中99个客户端都没有发送任何数据,服务器仍然可能反复调用它们对应的 。显然,这种方式可能产生大量无意义的系统调用。我们真正希望实现的是:能不能让内核

Face_FeaR的博客 680

【服务器数据恢复】RAID5阵列双盘掉线Oracle+OA系统的数据恢复案例

某医药公司服务器组建RAID5磁盘阵列,阵列内两块硬盘先后离线,直接造成服务器宕机。服务器操作系统为RedhatLinux,承载基于Oracle数据库搭建的OA业务系统,业务数据价值高、恢复时效要求紧急。由于该OA配套Oracle版本早已停止技术支持,客户需求为:完整恢复业务数据,同时尽可能复原原有操作系统环境。

beiya123的博客 131

BarTender异地客户端怎么连服务器?

适配场景:制药、汽车等,对网络环境、合规规范存在较高要求的企业。处在外部网络的异地计算机,如果要和总部服务端交换数据,就要建立加密通信隧道,VPN、云组网都属于这类网络实现方式。经常收到这样的技术咨询:标签软件的服务端部署在总部,外地车间、异地仓库、外协工厂的计算机分属不同局域网,这类情况下是否可以实现互通?这套软件本身不支持公网直接访问总部服务端,需要构建安全的虚拟通信链路,将分散各处的计算机纳入同一个虚拟内网环境。异地分厂、仓库以及外协作业点位,设备不必回到总部内网,就可以运行标签相关软件。

2601_96728078的博客 423

IO模型与并发服务器

调用 IO 函数(recv)时,如果内核缓冲区没有数据,进程直接阻塞休眠,直到数据到达才唤醒、拷贝数据、函数返回。

miracleAshing的博客 191
上一篇: csdn c/c++电子杂志第一期 之 c 眼看世界
下一篇: 优快云 c/c++电子杂志第一期 之 从异步谈起
emag_cpp
博客等级 码龄22年 21粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值