什么样的服务器才能叫做大并发

本文探讨了Apache和Nginx服务器在处理大并发访问时的优缺点,重点分析了响应速度与内存使用之间的平衡,并通过实例计算了达到大并发访问量所需的QPS。最后,介绍了大并发服务器在响应速度与内存上的考量,以及如何根据内存资源选择合适的服务器配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


我觉得服务器在成为大并发前,首先要能承受住大并发的压力,无论能否正常返回,首先不能崩溃。

apache和nginx是两个出名的服务器,先来分析一下它们。

大量用户访问的时候,apache会创建大量的进程数,吃掉大量的内存,而nginx内存这块做得很好,不过这也是nginx的瓶颈所在。

所谓有内存就是给你花的,你不花怎么对得起服务器呢,何况现在的服务器一般都是高配。

快速响应与内存大小其实是两个极端,apache与nginx正好在这两个极端上。

apache  为每一个connection 分配一个进程,当connection 井喷时,进程数也随之井喷。

nginx 的进程由用户设置,单个worker进程就可以处理用户所有的事件,epoll_wait 返回大量事件(A,B,C,D,E)时,服务器会顺序执行的所有的事件,事件A没有处理完,

E是不能执行的,也不用同时分配内存,这样就避免内存井喷的现象,当事件处理粒度大的时候,性能就出现瓶颈了。

apache 的优点在于进程数的可伸缩性,随着连接数的变化而变化,缺点在于连接数大时会吃掉太多内存。

nginx优点在于所用内存很少,但是事件需要顺序执行,伸缩性上不如apache.


所以大并发服务器在响应速度与内存上必须要兼顾,当然还要是响应速度的重点,因为一切都是为了QPS。

如果内存宝贵,可以采用nginx的epoll 方式,事件按顺序执行,并且不建长连接。

如果内存宽裕,可以采用apache方式,伸缩性会好一些。


也许你会问我,为什么不说说CPU的占用情况呢,其实大家要明白一个道理,CPU占用低不一定就是好事,有事情做的时候就得赶紧做,CPU占用当然就高一点,

不占用CPU意味着就不做事,怎么着,事件来了,你还不干了?


QPS达到什么量级才能称做大并发呢?

以日访问量(PV)为2千万来算,即 PV=2*10^7

这样大的访问量,如果用一台服务器来完成(这么大的访问量才用一台服务器,公司肯定扣)

每天80%的工作都是在20%的时间里完成,按照这个理论,服务器集中访问时间 PT=24/4=6小时(中午2小时,傍晚2小时,晚上2小时,正常)

=18000秒,即 PT = 2*10^4

QPS=PV/PT=10^3

才一千就可以达到2千万的量级,不可思议吧。

PV再大点,如腾讯这样的用户级别,PV可能达到100亿,即10^10

QPS=PV/PT=5*10^5


如果采用5台服务器(还是太扣),单台QPS只需要10^5。

你在家里试验时,可能发现10万的QPS是不可能的,但是对于高配的服务器其实不算什么,而如果用50台机子,则QPS则只要1万,家里的PC也能达到吧,嘿嘿。


写到这里,想起曾经到腾讯的一次面试,面试官问我对QQ的服务器并发量及处理技术的一些看法,当时我才毕业一年,懂的也不是很多,还真被吓住 了,从来没考虑过

这样大的并发量,不知从何想起。

其实人普遍都有对大东西的敬畏感,感觉那么大的东西背后一定有高深莫测的技术,但如果这个东西是你做的,你一定不会觉得它有什么

了不起。面试官不过是想让你知道企鹅的技术是一流的,你还差的远。其实P2P聊天技术真的很牛么,只不过腾讯老板抓住了机遇,那个时候如果没有麻花疼,可能还有菊花疼。。。

有机会再专门写写P2P流媒体的体会。

转自:http://blog.youkuaiyun.com/xiaofei_hah0000/article/details/8668457

很抱歉,您提出了多个问题,为了保证回答的准确性和全面性,我需要逐个回答,以下是对您提出的每个问题的回答: 1. 域名转换的过程: 域名转换是将域名转换成IP地址的过程。当我们在浏览器中输入一个网址时,浏览器会先向本地DNS服务器查询,如果本地DNS服务器缓存了该域名对应的IP地址,则直接返回给浏览器;如果本地DNS服务器没有缓存该域名对应的IP地址,则会向根DNS服务器发起查询请求,根DNS服务器会将该请求转发到顶级DNS服务器,然后顶级DNS服务器再将查询请求转发到权威DNS服务器,最终权威DNS服务器返回该域名对应的IP地址给本地DNS服务器,本地DNS服务器再将IP地址返回给浏览器,浏览器就可以根据IP地址访问该网站。 2. 域名服务器中的高速缓存的作用是什么? 域名服务器中的高速缓存可以缓存已经查询过的域名对应的IP地址,当再次查询相同的域名时,可以直接从缓存中获取,提高查询效率。同时,缓存中的数据也可以减轻DNS服务器的负担,提高系统的稳定性和可靠性。 3. 文件传送协议FTP的主要工作过程是怎样的? FTP是一种应用层协议,用于在网络之间传输文件。FTP协议主要包括两个进程:FTP服务器进程和FTP客户端进程。FTP客户端通过TCP连接到FTP服务器并发送命令到FTP服务器,FTP服务器接收到命令后执行相应的操作,并返回响应结果给FTP客户端。FTP客户端可以通过FTP协议进行文件上传、下载、删除、重命名等操作。FTP协议的传输过程采用了两个通道,即命令通道和数据通道。命令通道用于传递控制信息,数据通道用于传递文件数据。FTP协议传输的数据是二进制数据,因此可以传输任何类型的文件。 4. 为什么说FTP是带外传送控制信息? FTP协议的数据传输是通过数据通道来实现的,而控制信息则是通过命令通道来传输的,因此可以说FTP是带外传送控制信息。在FTP传输数据时,数据通道和命令通道是独立的,命令通道不参与数据传输,只用于传递控制信息,这样可以保证数据的可靠性和安全性。 5. 主进程和从属进程各起什么作用? FTP协议的主进程和从属进程都是FTP服务器进程的组成部分。主进程主要负责监听FTP客户端的连接请求,并接受连接请求后将客户端请求分配给从属进程处理。从属进程则负责处理客户端的请求,例如上传、下载、删除、重命名等操作。主进程和从属进程之间通过进程间通信机制来传递数据和控制信息,这样可以充分利用系统资源,提高FTP服务器并发性和性能。 6. 远程登录TELNET的主要特点是什么? TELNET是一种远程登录协议,可以让用户通过网络远程登录到远程主机上执行操作。TELNET协议的主要特点包括以下几点: - 可以在不同的操作系统之间进行远程登录,实现跨平台远程管理。 - TELNET协议是基于文本的协议,可以传递用户的命令和输出结果。 - TELNET协议可以进行加密传输,保护用户的登录信息和数据安全。 - TELNET协议可以进行会话管理,用户可以在一个会话中执行多个命令,提高操作效率。 7. 什么叫做虚拟终端NVT? NVT是Network Virtual Terminal的缩写,意为网络虚拟终端。NVT是一种标准化的终端类型,用于在不同的计算机之间进行远程终端会话。NVT可以将不同计算机的终端类型转换为一个标准的终端类型,这样就可以在不同的计算机之间进行终端会话,而无需考虑终端的具体类型。NVT定义了一些通用的终端控制字符,可以控制光标位置、颜色、字体等属性,从而实现基本的终端控制功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值