我们知道,服务器是用来提供各类服务(如Web服务、数据库、办公系统)的专用计算机,服务器的性能及运行状态会直接影响服务的稳定性。不管你用的是云服务器还是托管的服务器,都需要定期对服务器进行维护,否则服务器总有一天会变得让你觉得“卡顿”。很多人觉得服务器的“卡顿”是因为服务器运行时间长了就会卡顿,其实这种想法还是很片面的,很多因素都会导致服务器的“卡顿”现象。
服务器硬件配置及老化程度会影响服务器运行速度及稳定性
服务器和我们家用电脑一样都是由软硬件来支撑的,如果硬件配置跟不上那服务器的性能自然提升不了。
1、检查服务器硬件配置
像Windows系统可在任务管理器中查看CPU及内存占用情况,而Linux系统可通过top命令或free、df等命令查看相关配置。
现在一般的Web站点服务器最低配置都是:CPU2核、内存2G、固态硬盘起步了,如果你的站点访问用户较多,那就要视情况升级你的服务器配置。
2、传统硬件服务器要让机房检查下硬件老化程度
现在云服务器可以不考虑硬件老化情况,但还有不少人在用传统的硬件服务器托管的,这就要看下你的服务器用了多少年了,是否存在硬件老化的情况。
检查服务器是否被人攻击
很多时候服务器的突然卡顿是因为服务器受到了攻击导致的,因为服务器是暴露在公网上的,如果不做一些防护很容易受到各种攻击。
服务器被人攻击最直观的表现有:
服务器内存及CPU占用一直居高不下;
服务器上行带宽被占满,一直对外发包;
系统里出现一些未知文件、程序、账户等。
那我们如何排查呢?这里网络圈给大家的建议是按以下步聚进行排查:
1、首先对服务器系统进行杀毒,如果是Windows系统,一定要安装杀毒软件
2、看下服务器各文件夹下是否有可疑文件及可疑程序
3、看下服务器是否有新增的用户账户,如果有,则要禁用此账户
4、CPU及内存是否占用过高
Windows通过任务管理器可以定位到CPU或内存占用过高的进程,Linux可以通过top、ps等命令定位到CPU或内存占用过高的进程。
进程定位到了之后,看下是否可疑,必要时把进程杀掉。
5、服务器上是否安装了Redis,如果安装了则要检查Redis外网是否可以访问,如果外网可以被访问很容易被人提权
6、检查是否存在可疑的定时任务及网络请求
检查服务代码逻辑
如果排除了被人攻击的情况,那就要检查一下你的服务程序代码是否存在问题了,比如:
1、是否有死循环
2、请求外部资源时是否没加超时限制
3、数据库是否存在慢查询等
服务器上的服务迁移
如果仅仅是因为当前服务器性能跟不上,那除了升级单机配置外还可以考虑将本服务器上的其它服务迁移到另外的服务器,以Web服务为例,我们的建议是:
站点及文件资源放在一台服务器上,用作Web服务器
数据库单独放一台服务器上
必要的CDN加速
以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流~我是科技领域创作者,十年互联网从业经验,欢迎在线咨询ERP的英文全称是EnterpriseResourcePlanning,直译过来是企业资源计划。
ERP最初的功能是把企业所有可用资源(资金,库存,人力,供应商,客户等等)集中到计算机数据库中,通过合理的公司运作流程,最大程度的利用这些资源,为企业创造最大的价值。
但是随着科技的高速发展,目前ERP更像是一个代词,即企业信息化综合管理系统。功能是把企业日常经营所涉及到的全部内容数据化并集中到计算机数据库中,除了最大化利用企业资源外,同时利用计算的强大计算能力,结合不同功能模块,消灭大部分重复劳动,极大提升全员工作效率,为企业节约运营成本。比如移动办公功能让员工在路上也能工作,自动报表功能秒杀枯燥的统计工作,自动单据功能秒杀办公室大部分重复劳动等等。
开发语言选择很多,完全根据自己的实际情况来选择,Java,C,VB,HTML等等都可以开发。因为开发这种软件,编程主要是为了实现两个功能,第一是访问数据库,第二就是处理数据,上面说的任何一种语言都完全能够胜任这两个功能。我曾经还用过Excel给两个企业开发过管理系统。
对于管理系统来说,比开发编程更重要的是软件功能设计,就像一座大楼,首先要设计好,才能安全好用,否则程序编得再好,做出来对企业来说也是一场灾难。不但没有提升效率和利用好资源,反而可能浪费企业大量的时间和金钱。
管理系统在发达国家普及度很高,大多数公司都有各类型的管理系统辅助公司运营管理。但是在中国,管理系统普及度很低,实施成功率也很低。第一是因为我国企业对管理系统了解很局限,它能做什么?我们应该让它做什么?第二是因为我们属于发展中国家,国家和企业都在高速发展,那么管理系统也必须跟上节奏,不断进化,否则就会拖后腿。
最佳的方式就是企业自己要有技术团队来进行开发,在充分了解软件的能力和企业的需求的基础上设计开发出最适合企业的系统,同时保持系统的及时进步更新。
当然难题也来了,对于大型企业来说,养个技术团队不但不是问题,而且绝对必要。但对于中小企业,尤其是小微企业来说,成本就太高了,只能找软件外包公司来定制。不过外包定制费用也不低,而且每次升级开发都需要再花钱,像个无底洞。
关键业务服务器对可靠性要求非常严格,调研机构曾调查过不同行业,关键业务中断服务带来的金钱损失:服务器宕机1分钟,平均会使运输业损失15万美元,银行业损失27万美元,通信业损失35万美元,制造业损失42万美元,证券业损失45万美元。而根据ITIC最新2018年底统计,1小时停机损失:
前些年关键业务服务器的金标准是要做到5个9,现在已经要求6个9,甚至7个9。他们是什么意思呢?
X个9,表示在1年时间的使用过程中,服务器可以正常使用时间与总时间(1年)的比值。
5个9:(1-99999%)3652460=526分钟,表示1年非计划停机时间不超过526分钟。
6个9:(1-999999%)365246060=315秒,表示1年非计划停机时间不超过30秒。
7个9:(1-9999999%)365246060=315秒,表示1年非计划停机时间不超过3秒。
ITIC统计2018年80%的企业最低要求4个9,可靠性要求增长非常迅速:
服务器能够做到这么短的非计划停机时间,除了在 *** 作系统上要求严格外,硬件上的保证是重中之重。服务器的RAS(Reliability, Availability,Serviceability 高可靠性、高可用性、高服务性)特性(feature)曾经是大型机的骄傲,也是它们高高在上身价的基础,但随着X86在RAS功能上的补足,服务器市场已经几乎被X86服务器占据。关键业务服务器由于 历史 和维护原因,还有部分市场份额不在X86的掌控之中,但非X86高可靠性的神话已经破灭。根据ITIC统计:
X86服务器不但占据绝大部分,而且可靠性也仅仅比Power 服务器低一点点。
那么这些RAS功能都是些什么呢?绝对不是焚香祷告哦
而是实打实的硬功夫!RAS的根本在于提供硬件冗余来避免错误;出错后及时发现、纠正和避免错误扩散;替换掉出错的设备等等。下面我们来分别了解一下。
对计算机比较了解的同学都知道磁盘的RAID模式,RAID提供了数据冗余来保证数据安全。当然RAID是服务器上的必备要求,但你知道吗,内存也有同样的模式,那就是内存镜像(Memory Mirror)。内存镜像将4个通道的内存成对存储相同的数据,类似磁盘的RAID 1,内存的数据在硬件上就被保存了两份,当一份损坏时还有备份,而更妙的是这些是对软件透明的。
这个冗余度和RAID1一样是很大的,一半的资源在大部分情况下闲置了,在提高可靠性的同时浪费也十分严重,有没有稍微省钱点的做法呢?当然有,那就是内存备用(Memory Sparing),简单来说就是保留了部分内存,当出错再把这些内存拿来顶上。它的颗粒度可以到DIMM甚至以Rank为单位。
大家知道1位奇偶校验码可以发现1位的错误,但不能纠正,对于2位以上连发现都发现不了。ECC好一些,但对于很多位错误就无能为力了。SDDC (Single Device Data Correction,单设备数据校正 )可以纠正X4的单设备错误:
SDDC+1不但可以纠正X4的内存错误,还可以把出错的颗粒替换掉,让它下次不再出错:
DDDC(Double Device Data Correction )可以和Lockstep一起,将两个DIMM拼拼,纠正两个X4颗粒的错误:
DDDC+1和ADDDC(Adaptive Double Device Data Correction)这里就不再介绍,有兴趣的可以自行Google。
这些都是内存访问的时候发现错误了如何处理,但是还有些错误可能发生在没有访问的区域,这些区域错误不加处理,积少成多,可能超过DDDC的纠错能力。这就需要Patrol Memory Scrubbing的帮助了。它会像高速巡警一样,借助一个特殊的引擎,帮助定期扫描内存的可能出现的错误。Demand Scrubbing会把发现错误的数据,纠正后写回去,避免错误积累。
我曾经有过两篇文章介绍出错的问题:
计算机硬件出错了会发生什么?
WHEA原理和架构
大家感兴趣可以翻翻前面的文章。
作为服务器必备的功能,WHEA会把错误向 *** 作系统报告, *** 作系统可以选择做出相应的动作。BIOS还可以设置poison位来标定出错的范围。
硬件发生了错误,即使已经通过各种手段(SDDC等)得到纠正,但隐患已经埋下。硬件一旦发生错误,可能会越来越严重,慢慢变得不能够纠正而变成严重错误。为了避免发生这种情况,需要把出错的设备移除和替换。
那么 *** 作系统报告给管理员错误后,该怎么办呢?按照一般的想法就是关机换设备吧。但这种 *** 作是严重影响x个9的可用性数据的。必须在 *** 作系统还在持续提供服务的情况下更换设备、内存甚至CPU!
也许你听说过PCIe设备的热插拔,但内存和CPU的热插拔就比较高冷了。CPU和内存热插拔和PCIe类似,有个attention开关。在按下后,BIOS、 *** 作系统和硬件会合作把设备周边电路隔离、内核对象移除和变更,在完成后会有状态指示灯显示准备工作结束,可以动手移除了。CPU和内存插入和这个相反,但都要BIOS、 *** 作系统和硬件支持,十分复杂,但整个 *** 作下来也十分炫酷。
6个9甚至7个9是个系统工程,需要整体上考虑。除了这些RAS功能之外,服务器硬件如磁盘驱动器等等也与民用不同,十分昂贵。
这些功能整体推高了服务器的价格,Google、FB、亚马逊和阿里等等大型云服务公司决定另辟蹊径,从 *** 作系统级别的软件冗余来解决系统X个9的可靠性问题,这样一台服务器出错,直接整台offline,而不是CPU或者内存的更换。于此同时另外2到3台服务器还在持续提供服务,服务不会中断。
但是大型关键部门如银行电信等,还在借助传统的RAS来保证系统的可靠性。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)