我用VS写过网络传输程序,包括分别采用TCP/IP、UDP协议,讲一下我的看法:1,对于采用TCP/IP协议的网络传输,当下载速度大于硬盘的写盘速度时,会使客户端接收速度降低,但不会影响数据传输的准确性。2,对于采用UDP协议的网络传输,有丟失数据或者传错数据的可能。我们平时通过手机、电脑从互联网上进行数据的下载与上传,实际上都遵守IPv4/IPv6的网络协议,遵守TCP/IP协议进行传输。UDP通常在快速的数据传输。以下就TCP/IP、UDP、读写缓冲区等进行说明。
一般的网络传输使用TCP/IP协议。每一个数据包都有回传确认,确保传输的准确性。通俗地讲,数据传输是以数据包的形式传输,接收端接收的数据是先要存放到内存中。
对于TCP/IP传输协议来说,还要回传消息,让服务器端确认。服务器端只有接收到客户端的回传确认信息,才会进行下一个数据包的传输。在每一个数据包,还有CRC校验,以保万无一失。
或者用如下图示:
传输的速度除了与网速有关外,更重要的,与客户端的回传确认也有很大关系,只有写到硬盘上,才回传确认。
UDP传输不用回传,传输速率快,但容易出错。UDP协议没有自动回传,需要双方自定义确认信息。UDP一般在控制通讯中用,可以自定义协议。
UDP传输,对服务器、客户端的通讯都比软熟悉,传输速率快,两端使用相同的发送、接收频率。一旦接收出现问题,必须再次握手,重新传输。
客户端接收来自服务器端的数据包,先放到内存缓冲区中,再写到硬盘上。这样,对硬盘要求就不是很高了。VS编程时,发送、接收分别用如下两个函数:
nums=send(destSocket, Sendb,
strlen(Sendb) + 1, NO_FLAGS_SET);
numr=recv(clientSocket, Recb,
MAXBUFLEN, NO_FLAGS_SET);
注意,Sendb是发送缓冲区,Recb是接收缓冲区,根据需要,这两个内存缓冲区可以设的很大,几KB、或者几MB
由于内存的读、写速度快于硬盘成百倍,也快于网络传输速率。所以,从实时性方面讲,接收的数据先放到内存缓冲区中,对网络传输没有影响。
我们的PC机一般用DDR3、DDR4内存条,DDR3内存读写速度大概10GB/秒,DDR4内存读写速度大概50GB/秒,硬盘、固态硬盘的速度是100MB~500MB每秒,是内存的100~500分之一。如下图:
而网络传输,时下最快的5G传输速率为3Gb/秒,注意,这块是3Gbits,换算成字节,大致300多MB,与固态硬盘相当,还是远低于PC机对内存的读写速率。
所以,时下最快的5G传输方式,也只是内存读写的100~500分之一。内存条总是快于网络。
总结:TCP/IP能保证传输的准确性,但传输速率要低于不用回传的UDP协议。采用TCP/IP协议传输数据,即使用时下最快的5G、6G传输方式进行数据的传输,不论硬盘读写数据的速率是快或者慢,都不会影响网络传输数据的准确性,但会影响传输的速率,低速的硬盘,会大大降低传输速率。(作者注:本文引用的图片来自网络。文字部分均为作者原创)
这个配置得根据你的网站规模,访问量,人气量,前期可能网站新建,人气不那么好的时候,不需要那么高的配置,但是作为一个b2c商城,首先网站的构架已经比较复杂了,同时应该是会加入在线支付功能的,这里的话,因为商城主要是展示站,图片,还有用户信息以及交易信息什么的,存储会要的很大,这里推荐硬盘1t起,硬盘是服务器里面最便宜的,1t顶多一两百,而服务器最重要的是cpu,内存,带宽,和流量,现在的idc基本都不限流量了,那么cpu如果前期没那么高的访问的话,推荐intel志强双核系列,内存的话4g就够用了,然后,带宽,因为图片多的关系,带宽最起码10m起,还必须得是bgp多线带宽这样才能实现国内各种网通电信教育网之类的流畅访问,而且建议租用云服务器,这样在以后硬件升级的过程中比较方便,如果预算充足,直接上个单台服务器的话,那是最好不过的。
社区互联小马真诚为您服务
用户不多的情况下,可以通过任务管理器(windows)或者top(linux)来进行查看各项指标。
本人多年经验总结,服务器的瓶颈在内存和带宽上面,CPU一般达不到瓶颈,如果cpu百分百的话,基本可以断定为中毒了。
1.可以查看下内存使用率任务管理器(windows)或者free(linux)
如果内存使用在50以上就要考虑加内存了
2.带宽的话,可以通过登录服务器进行查看
因为使用人数较少,所以,题主更应该关注内存,如果将来访问人数多了以后,再考虑升级带宽。
回答完毕。谢谢
容错技术是一个大的概念,广义上说,就是系统对错误的容忍能力。
以服务器为例,当服务器出现故障的时候,如何确保系统不中断。需要注意的是,导致系统中断的因素有很多,不仅仅是服务器的故障,软件错误,或者外界突发因素都可以导致系统故障。系统故障有两种情况,一个是系统瘫痪了,业务中断。这种故障容易察觉,此外,还有另外一种故障,就是受外界影响,服务器的计算结果产生错误,这种情况下,系统不会瘫痪,但会产生错误的计算结果,这种故障不容易察觉,但危害也更加巨大。即所谓可信计算的问题。解决系统容错的问题,有两种主要的技术,一种容错服务器,另外一种是集群(或者双机)。都是为了避免服务器硬件故障对系统产生的影响。前者较之后者有更高的可靠性,或者更加经济。除了硬件错误之外,软件问题、病毒等问题,只有通过升级、打补丁来解决。
既然题目中问的是提高【服务器】并发处理能力,那么先说说关于提高单机服务器性能的方法;一台服务器在单位时间里,能够处理的请求越多,就说明服务器并发处理能力越强。
内存:减少内存的分配和释放,这个本质上只为了内存分配和数据复制的时间;比如程序在启动的时候,就申请一块足够大的内存,不需要再次分配;另外可以考虑内存共享。
CPU:使用多线程,提高CPU的并发度;但是线程数不可以无限制地增加,因为进程切换也是需要花费时间的;减少使用不必要的锁,因为当一个资源被锁住的时候,其余的进程会等待锁的释放;改进I/O模型,使I/O和CPU计算尽量重叠进行,减少CPU空闲和调度的时间。
网络:根据应用的特点,合理地选择使用长链接还是短链接;因为建立连接是很耗时的,但是如果要使用长链接,依然要考虑超时的问题,因为如果连接时间过长并且没有使用,需要维持空闲连接,影响服务器性能。
提高硬件资源:说白了,就是花更多的钱,买更好的设备,比如带宽、更大的内存、更多的CPU、SSD等等。
还有很多手段,可以提高整个项目的并发处理能力:
负载均衡、集群:一台服务器再怎么优化,也不如十台服务器同时工作,通过负载均衡,把请求分发到多台服务器上进行处理;另外一个好处,当一台服务器发生故障的时候,并不会影响整个项目的运行;
缓存:其目的就是减少服务器的计算,把数据直接返回给用户;比如CDN、本地缓存、分布式缓存等等;
分布式:如果说集群是把相同的项目部署在多台服务器上,那么分布式相当于把一个项目拆分成多个项目,每个子项目都可以独立地集群化部署;分布式架构意味着可以利用更多的服务器,能过处理的并发访问会越大。
异步:调用方不需要等待被调用方处理完成,可以先做其它的事情,所有的事情可以并发处理;异步可以通过消息队列来实现异步;
冗余、弹性扩缩容:根据访问量,部署更多一些的服务器;当有突发流量的时候,弹性扩容机制可以保证快速地增加机器的数量,保证系统的稳定运行;
我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。
服务器不一定要备案,这个需要根据你的需求来看是否需要备案。如果你购买一台阿里云或者是腾讯云服务器不需要通过域名来访问,直接使用IP地址是不需要备案的。你可以在服务器上部署各种服务,如:msyql、ng...
先问是不是,再问为什么 国内有OneDrive服务器。 微软在中国有个合作企业叫“世纪互联”,通过世纪互联销售的Office365,称之为Office365国内版。在上海和北京都有服务器。 OneD...
美国针对华为的“禁售令”,我们都为华为捏了一把汗,一个全球最强的国家,倾全国之力封锁一家中国的公司。 芯...
ping下那个网站看下IP,如果对方网站可以直接用IP访问(意思就是那个网站是那个IP的默认网站),那就直接把你的域名解析到那个网站的IP就可以了。但是这种情况少。 用frame框架也可以,就是你用...
本篇文章给大家谈谈张店网站制作设计公司,以及淄博网页设计招聘对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 文章目录列表: 1、淄博华创鸿图网络科技有限公司怎么样? 2、山东商祺信息技术有...
网络购物已成为人们购买商品的常用方式,人们的生活已离不开网络,所以应需求而产生各种形式的电商网站,比如:B2B、B2C、B2G、C2C、O2O等,很多消费者即使已经产生消费,也没有搞清楚自己的消费形...
缺陷还是有的,L5420停产多时,能买到的都是二手的,但是CPU基本上只要不超频,那基本上是用不坏的,还有指令集,架构,频率,制程上,L5420都不如G550。但是这两块CPU各有胜负,比个例子,G5...
你可以通过编辑Default domain Policy(在组策略中)然后找到下面的配置,修改为90。[Computer Configuration(计算机配置)\\Windows Settings(...