您当前的位置:首页 > 电脑百科 > 网络技术 > 网络技术

高级工程师的网络优化思路,和你真的完全不同

时间:2023-05-05 15:28:53  来源:微信公众号  作者:网络工程师俱乐部

在网络这行混,我们常常会聊到各种“优化”方法,比如网络架构优化,性能优化,系统优化等。

就拿系统的性能优化来说吧,你看,网络运维工程师得查看系统的整体状况,然后从系统硬件、网络设备、操作系统配置、应用程序架构和程序代码五个方面进行综合判断。

可以看到,在做性能优化过程中,网络运维工程师其实承担着很重要的任务。

你得了解和掌握操作系统的当前运行状态,什么系统负载、内存状态、进程状态、CPU负荷等信息,这些信息是检测和判断系统性能的基础和依据。

你还得了解系统的硬件信息,例如磁盘I/O、CPU型号、内存大小、网卡带宽等参数信息,然后根据这些信息综合评估系统资源的使用情况。

性能优化本身就是一个复杂和繁琐的过程,你需要有理论基础、有实战经验,还得有一个清晰的、解决问题的思路,这样才能事半功倍。

今天的文章,就给你梳理一遍针对网络系统的性能优化所必备的思路。不是老运维,你很难总结的出来。

今日文章阅读福利:《 网络运维必备高效工具 》

私信老杨,发送“运维工具”,即可获得运维必备的高效工具合集。前10名私信的小友还可额外获得进入全国网工交流群的资格。

01 高级工程师的优化思路,长啥样?

系统性能优化是个涉及面广、繁琐、长久的工作,寻找出现性能问题的根源往往是最难的部分,一旦找到出现问题的原因,性能问题也就迎刃而解。因此,解决问题的思路变得非常重要。

例如,linux系统下的一个网站系统,用户反映,网站访问速度很慢,有时无法访问。

针对这个问题,第一步要做的是检测网络,可以通过ping命令检查网站的域名解析是否正常。

同时,ping服务器地址的延时是否过大等等,通过这种方式,首先排除网络可能出现的问题。

如果网络没有问题,接着进入第二步,对linux系统的内存使用状况进行检查。

因为网站响应速度慢,一般跟内存关联比较大,通过free、vmstat等命令判断内存资源是否紧缺。

如果内存资源不存在问题,进入第三步,检查系统CPU的负载状况,可以通过sar、vmstat、top等命令的输出综合判断CPU是否存在过载问题。

如果CPU没有问题,继续进入第四步,检查系统的磁盘I/O是否存在瓶颈,可以通过IOStat、vmstat等命令检查磁盘的读写性能。

如果磁盘读写也没有问题,linux系统自身的性能问题基本排除,最后要做的是检查程序本身是否存在问题。

通过这样的思路,层层检测,步步排查,性能问题就“无处藏身”,查找出现性能问题的环节也就变得非常简单。

02 作为网络运维,你需要知道的基础

搞运维的,难免经常会遇到系统不稳定、响应速度慢等问题。

比如说,我有一个粉丝就是老运维了,他就常和我抱怨,在linux上搭建了一个web服务,经常出现网页无法打开、打开速度慢……

遇到这类问题,多数人都会把锅推给系统,但其实这些都是表面现象。

操作系统完成一个任务时,与系统自身设置、网络拓朴结构、路由设备、路由策略、接入设备、物理线路等多个方面都密切相关,任何一个环节出现问题,都会影响整个系统的性能。

Linux操作系统是一个开源产品,也是一个开源软件的实践和应用平台,在这个平台下有无数的开源软件支撑,我们常见的ApacheTomcatMySQLphp等。

开源软件的最大理念是自由、开放,而linux作为一个开源平台,最终要实现的是通过这些开源软件的支持,以最低廉的成本,达到应用最优的性能。

因此,谈到性能问题,主要实现的是linux操作系统和应用程序的最佳结合。

我会从三个角度,即影响Linux性能的因素、系统性能优化工具、系统性能评价标准三个方面介绍优化的一般思路和方法。

01 影响Linux性能的因素

1. 系统硬件资源

(1)CPU

CPU是操作系统稳定运行的根本,CPU的速度与性能在很大程度上决定了系统整体的性能,因此,CPU数量越多、主频越高,服务器性能也就相对越好。但事实并非完全如此。

目前大部分CPU在同一时间内只能运行一个线程,超线程的处理器可以在同一时间运行多个线程,因此,可以利用处理器的超线程特性提高系统性能。

在Linux系统下,只有运行SMP内核才能支持超线程,但是,安装的CPU数量越多,从超线程获得的性能方面的提高就越少。

另外,Linux内核会把多核的处理器当作多个单独的CPU来识别,例如两个4核的CPU,在Lnux系统下会被当作8个单核CPU。

但是从性能角度来讲,两个4核的CPU和8个单核的CPU并不完全等价,根据权威部门得出的测试结论,前者的整体性能要比后者低25%~30%。

可能出现CPU瓶颈的应用有db服务器、动态Web服务器等,对于这类应用,要把CPU的配置和性能放在主要位置。

(2)内存

内存的大小也是影响Linux性能的一个重要的因素,内存太小,系统进程将被阻塞,应用也将变得缓慢,甚至失去响应;内存太大,导致资源浪费。

Linux系统采用了物理内存和虚拟内存两种方式,虚拟内存虽然可以缓解物理内存的不足,但是占用过多的虚拟内存,应用程序的性能将明显下降,要保证应用程序的高性能运行,物理内存一定要足够大。

但是过大的物理内存,会造成内存资源浪费,例如,在一个32位处理器的Linux操作系统上,超过8GB的物理内存都将被浪费。

因此,要使用更大的内存,建议安装64位的操作系统,同时开启Linux的大内存内核支持。

由于处理器寻址范围的限制,在32位Linux操作系统上,应用程序单个进程最大只能使用4GB的内存。

这样一来,即使系统有更大的内存,应用程序也无法“享”用,解决的办法就是使用64位处理器,安装64位操作系统。

在64位操作系统下,可以满足所有应用程序对内存的使用需求 ,几乎没有限制。

可能出现内存性能瓶颈的应用有NOSQL服务器、数据库服务器、缓存服务器等,对于这类应用要把内存大小放在主要位置。

(3)磁盘I/O性能

磁盘的I/O性能直接影响应用程序的性能,在一个有频繁读写的应用中,如果磁盘I/O性能得不到满足,就会导致应用停滞。

好在现今,磁盘都采用了很多方法来提高I/O性能,比如常见的磁盘RAID技术。

通过RAID技术组成的磁盘组,就相当于一个大硬盘,用户可以对它进行分区格式化、建立文件系统等操作,跟单个物理硬盘一模一样,唯一不同的是RAID磁盘组的I/O性能比单个硬盘要高很多,同时在数据的安全性也有很大提升。

根据磁盘组合方式的不同,RAID可以分为RAID0,RAID1、RAID2、RAID3、RAID4、RAID5、RAID6、RAID7、RAID0+1、RAID10等级别,常用的RAID级别有RAID0、RAID1、RAID5、RAID0+1。

(4)网络宽带

Linux下的各种应用,一般都是基于网络的,因此网络带宽也是影响性能的一个重要因素,低速的、不稳定的网络将导致网络应用程序的访问阻塞,而稳定、高速的网络带宽,可以保证应用程序在网络上畅通无阻地运行。

幸运的是,现在的网络一般都是千兆带宽或光纤网络,带宽问题对应用程序性能造成的影响也在逐步降低。

02 操作系统相关资源

基于操作系统的性能优化也是多方面的,可以从系统安装、系统内核参数、网络参数、文件系统等几个方面进行衡量。

1. 系统安装优化

系统优化可以从安装操作系统开始,当安装Linux系统时,磁盘的划分,SWAP内存的分配都直接影响以后系统的运行性能。例如,磁盘分配可以遵循应用的需求。

对于对写操作频繁而对数据安全性要求不高的应用,可以把磁盘做成RAID 0;

而对于对数据安全性较高,对读写没有特别要求的应用,可以把磁盘做成RAID 1;

对于对读操作要求较高,而对写操作无特殊要求,并要保证数据安全性的应用,可以选择RAID 5;

对于对读写要求都很高,并且对数据安全性要求也很高的应用,可以选择RAID10/01。

这样通过不同的应用需求设置不同的RAID级别,在磁盘底层对系统进行优化操作。

随着内存价格的降低和内存容量的日益增大,对虚拟内存SWAP的设定,现在已经没有了所谓虚拟内存是物理内存两倍的要求,但是SWAP的设定还是不能忽略,根据经验,如果内存较小(物理内存小于4GB),一般设置SWAP交换分区大小为内存的2倍。

如果物理内存大于8GB小于16GB,可以设置SWAP大小等于或略小于物理内存即可。

如果内存大小在16GB以上,原则上可以设置SWAP为0,但并不建议这么做,因为设置一定大小的SWAP还是有一定作用的。

2. 内核参数优化

系统安装完成后,优化工作并没有结束,接下来还可以对系统内核参数进行优化,不过内核参数的优化要和系统中部署的应用结合起来整体考虑。

例如,如果系统部署的是Oracle数据库应用,那么就需要对系统共享内存段(kernel.shmmax、kernel.shmmni、kernel.shmall)、系统信号量(kernel.sem)、文件句柄(fs.file-max)等参数进行优化设置。

如果部署的是Web应用,那么就需要根据Web应用特性进行网络参数的优化,例如修.NET.ipv4.ip_local_port_range、net.ipv4.tcp_tw_reuse、net.core.somaxconn等网络内核参数。

3. 文件系统优化

文件系统的优化也是系统资源优化的一个重点,在Linux下可选的文件系统有ext2、ext3、ReiserFS、ext4、xfs,根据不同的应用,选择不同的文件系统。

Linux标准文件系统是从VFS开始的,然后是ext,接着就是ext2,应该说,ext2是Linux上标准的文件系统,ext3是在ext2基础上增加日志形成的,从VFS到ext4,其设计思想没有太大变化,都是早期UNIX家族基于超级块和inode的设计理念。

XFS文件系统是一个高级日志文件系统,XFS通过分布处理磁盘请求、定位数据、保持Cache 的一致性来提供对文件系统数据的低延迟、高带宽的访问,因此,XFS极具伸缩性,非常健壮,具有优秀的日志记录功能、可扩展性强、快速写入性能等优点。

目前服务器端ext4和xfs是主流文件系统,如何选择合适的文件系统,需要根据文件系统的特点加上业务的需求综合来定。



Tags:网络优化   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
神经网络优化算法的新思路:从梯度下降到自适应学习率
神经网络的优化是深度学习中的关键问题之一。传统的优化算法,如梯度下降,虽然在训练神经网络时取得了一定的成功,但其存在一些问题,如学习率的选择困难、收敛速度慢等。为了克服...【详细内容】
2023-11-16  Search: 网络优化  点击:(131)  评论:(0)  加入收藏
高级工程师的网络优化思路,和你真的完全不同
在网络这行混,我们常常会聊到各种“优化”方法,比如网络架构优化,性能优化,系统优化等。就拿系统的性能优化来说吧,你看,网络运维工程师得查看系统的整体状况,然后从系统硬件、网络...【详细内容】
2023-05-05  Search: 网络优化  点击:(400)  评论:(0)  加入收藏
我的Android网络优化为什么不行?
前言:为什么网络优化比别人慢?优化那些还不够?应该加强哪里?1.Android应用为什么需要考虑网络优化,主要基于以下几个原因: 流量:App的移动网络流量消耗对用户来说是比较敏感的; 电量...【详细内容】
2022-04-27  Search: 网络优化  点击:(369)  评论:(0)  加入收藏
谷歌发布Network-Opt开源网络优化库
在周二的一篇博客文章中,Google 简要地宣布了一个名为“Network-Opt”的新开源库,且专注于优化网络拓补的处理。Google 将之描述为一个支持网络拓补优化的 C++ 库,结合了复杂的...【详细内容】
2022-02-24  Search: 网络优化  点击:(449)  评论:(0)  加入收藏
无线网络优化——通信老姜的解读
我们大家在规划无线网络(WLAN)的时候,首先肯定是按照CAD图纸,定AP点位,生成热力覆盖范围,那么已经部署完成后,WLAN网络的优化是一件很头疼的事情,信道的冲突,无线信号弱,丢包严重等等,...【详细内容】
2021-05-08  Search: 网络优化  点击:(407)  评论:(0)  加入收藏
令人着迷的无梯度神经网络优化方法
\ 梯度下降是机器学习中最重要的思想之一:给定一些代价函数以使其最小化,该算法迭代地采取最大下降斜率的步骤,理论上在经过足够的迭代次数后才达到最小值。柯西(Cauchy)于1847...【详细内容】
2020-08-02  Search: 网络优化  点击:(427)  评论:(0)  加入收藏
Android网络优化篇-从DNS开始
什么是DNSDNS是域名系统(DomainNameSystem)的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务。域名是由圆点分开一串单词或缩写组成的,每一个域名都对应一个惟一的...【详细内容】
2019-07-31  Search: 网络优化  点击:(1443)  评论:(0)  加入收藏
▌简易百科推荐
手机就可以修改WiFi密码,进行网络提速,还能防止别人蹭网
随着网络的普及和使用频率的增加,很多人可能遇到了一些网络管理上的问题,比如忘记了WiFi密码、网络速度缓慢、或者发现有不明设备在家中蹭网。相信朋友们也曾遇到过吧?但是,你知...【详细内容】
2024-04-03  老毛桃    Tags:WiFi密码   点击:(6)  评论:(0)  加入收藏
手机WiFi信号满格却接收消息延迟?这里有妙招帮你解决!
在现代社会,手机已经成为了我们生活中不可或缺的一部分。无论是工作、学习还是娱乐,手机都扮演着重要的角色。然而,有时我们会遇到一些令人烦恼的问题,比如明明手机WiFi信号满格...【详细内容】
2024-04-03  蔡前进    Tags:手机WiFi   点击:(5)  评论:(0)  加入收藏
SASE技术应用落地的五个关键趋势
在Gartner 最新发布的《2023网络技术成熟度曲线》报告中认为,SASE技术已经开始走出最初的技术炒作期,将逐步迈向新一轮的实用落地阶段。在Gartner发布的《Hype Cycle for Ente...【详细内容】
2024-04-01    安全牛  Tags:SASE   点击:(10)  评论:(0)  加入收藏
提示“该网站安全证书存在问题,连接可能不安全”如何解决
在你输入网址并浏览网页时,如果你的浏览器弹出一个警告,提示“网站的安全证书存在问题”,或是显示一个红色的锁标志,这些都是网站不安全的警示。这些提示通常是由HTTPS协议中的S...【详细内容】
2024-03-18  倏然间    Tags:网站安全证书   点击:(8)  评论:(0)  加入收藏
如何有效排除CAN总线错误
控制器局域网(CAN)控制器局域网(CAN)是现代车辆中电子元件无缝运行的基础。在远程信息处理领域,CAN总线系统的效率至关重要,其能够实现支撑当今汽车技术的复杂功能。然而,CAN总...【详细内容】
2024-02-20    千家网  Tags:CAN   点击:(46)  评论:(0)  加入收藏
网络连接受限或无连接怎么办?这里提供几个修复办法
可能错误提示 连接受限或无连接:连接具有有限的连接或无连接。你可能无法访问Internet或某些网络资源。 连接受限。排除和解决“连接受限或无连接”错误此错误可能由计算机上...【详细内容】
2024-02-06  驾驭信息纵横科技    Tags:网络连接受限   点击:(43)  评论:(0)  加入收藏
如何将Mac连接到以太网?这里有详细步骤
在Wi-Fi成为最流行、最简单的互联网连接方式之前,每台Mac和电脑都使用以太网电缆连接。这是Mac可用端口的标准功能。如何将Mac连接到以太网如果你的Mac有以太网端口,则需要以...【详细内容】
2024-02-03  驾驭信息纵横科技    Tags:Mac   点击:(66)  评论:(0)  加入收藏
简易百科之什么是端口映射
端口映射,也称为端口转发,是一种网络通信中的技术手段,通过将内网中的一个端口上的数据流量转发到另一个端口,使得外部网络能够访问到内部网络中的特定服务。在实现上,端口映射通...【详细内容】
2024-01-26    简易百科  Tags:端口映射   点击:(155)  评论:(0)  加入收藏
ip因频繁登陆已被禁止访问 无法显示图片 怎么办
首先,我们要明白,部分网站为了有效遏制数据爬取和非法攻击,保证访问速度和普通用户查询,会在系统中增加网络安全设备,加强安全防护机制,并提前设置安全访问规则。因此,一旦用户的行...【详细内容】
2024-01-20  何福意思    Tags:ip   点击:(63)  评论:(0)  加入收藏
电脑连上wifi却上不了网怎么办
当电脑连接上 WiFi 却无法上网时,可能会让人感到困惑和沮丧。这个问题通常会有多种可能的原因,包括网络配置问题、路由器故障、无线适配器问题等。在面对这个问题时,可以尝试以...【详细内容】
2024-01-16  编程资料站    Tags:wifi   点击:(69)  评论:(0)  加入收藏
站内最新
站内热门
站内头条