【网站架构】cpu、内存、带宽是否足够?负载分析,linux内核调优】

 

大家好,欢迎来到停止重构的频道。

本期,我们介绍一下Linux内核参数调优负载分析

如果不做Linux内核参数调优的话,那么4核8G和16核32G服务器的性能可能并没有多大区别。

那么为什么要做负载分析呢? 因为服务器配置的选择是很难标准化的 ,很难推断出“一台需要达到1000RPS”的服务器配置是什么样的,最终运行的性能与代码的编写方式、数据结构、数据量是紧密相关的。

因此服务器配置的选择往往是基于具体的测试结果,而负载分析就是客观地分析 CPU核数是多了、还是少了 内存是否足够, 网络带宽是否足够等问题。

内核参数调优和了解负载分析,是对软件服务调优的前提,我们按照以下顺序介绍 :

  1. 内核参数调优 

  2. 服务器负载分析 

内核参数调优

首先是内核参数调优,光有强大的物理性能 而不做内核参数调优的话, 那么服务器的性能是发挥不出来的。

内核参数调优一般调整两部分:

  1. 最大文件数 

  2. TCP相关设置

最大文件数的设置会影响系统最多可以打开的文件数, Ubuntu20.04的话可参考图中配置,一般统一设置为最大值65535即可。

这里的文件数不单单是文档 ,它还包含线程、TCP连接等等。如果不设置的话 ,那么服务器是无法启动1000个线程, 或者打开1000个TCP连接的。

 

TCP相关设置会影响高并发网络通信的性能,Ubuntu20.04的话可参考图中配置,虽然在低压力下性能影响不大,但是在高压力下,诸如通道复用、TCP最大通道数等配置就会很大程度上影响性能

无论服务器的具体配置如何, 内核参数调优我们是习惯统一设置成最大值的 ,一是为了简化内核参数调优 。二是没有必要根据具体硬件配置设置 ,因为之后我们会进行软件服务的调优, 在软件服务调优的时候根据具体硬件配置即可。

当然,一些公有云的服务器是已经做好内核参数调优的, 但是最好在服务调优之前检查一下,不然往往再怎么调整软件服务配置,性能也上不去。

服务器负载分析

接下来是服务器负载分析 ,在前面《性能测试》时提到, 最终的测试报告是由两部分组成的,其中一个就是服务器负载情况。

服务器负载分析一般就是分析 CPU、内存、网络带宽使用率、磁盘I/O情况等。 当然,如果使用其他硬件如GPU等,也需要对其进行负载分析。

CPU使用率反映的是CPU的忙碌情况 ,CPU使用率可以用htop观察 ,如果CPU使用率接近或超过100%时,就会出现明显的卡顿 所以在性能调优时 ,最好把CPU使用率控制在80%以下。

除了CPU使用率 ,还需要观察CPU平均负载,平均负载指单位时间内平均活跃的进程数,一般情况下平均负载的值应该低于当前服务器的CPU核数

​内存使用率反映的是内存的使用情况,内存使用率可以使用htop或free观察 ,内存使用率是可以接近100%的,但最好保持在80%以下,虚拟内存最好保持在0% ,因为虚拟内存实际上是磁盘空间, 虚拟内存的性能是远不如内存的 。

当然,也不要关闭虚拟内存, 因为虚拟内存可以作为突发情况时的内存空间 ,聊胜于无。

磁盘I/O情况也就是磁盘的繁忙程度,这是很容易忽略的, 因为网站系统中,日志、文件操作、数据库操作都会对磁盘造成读写压力。 如果磁盘存在性能瓶颈的话 ,再怎么增加内存CPU都是没用的。

磁盘情况可以使用iostat或iotop观察,同样磁盘也不能100%负载,为了降低磁盘压力,可以使用更高性能的磁盘或者异步写入文件。当然,也可以通过tmpfs挂载一部分内存作为磁盘空间以提高性能。

网络带宽使用情况也是很容易忽略的指标, 网络带宽使用情况可以使用nload观察 ,网络带宽使用率最好在80%以下 。当然,带宽实际上是有上行带宽和下行带宽之分的 也就是图中的Incoming和outgoing ,这两个带宽一般需要单独分析 因为它们的值一般是不相等的。

以数据库为例 ,接收到的SQL请求是占用下行带宽的, 返回数据是占用上行带宽的。另外,内网并不是带宽无上限的 ,不要因为是内网环境就忽略网络带宽的观察。

如果是云环境,一般是提供相关的负载信息的。但在性能调优时,最好通过以上工具观察物理资源使用情况。

总结

内核参数调优和负载分析是很容易被忽略的 ,如果忽略了这两项, 则没有调优的方向, 胡乱地选择硬件配置 ,就好像买衣服胡乱选择尺码一样。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值