现场工程师救火-UEFI(BIOS)节能设置导致金牌服务器只跑出龟速

news2024/10/7 12:18:16

近期协助出现场,解决了一个非常典型的UEFI 启动参数配置不当导致的服务器降效案例。错误的节能参数配置,导致价值几十万的服务器变成龟速服务器,并造成严重的生产事故。
龟速

1. 现象

朋友公司近期准备升级2010年就部署的服务器组,新升级的服务器使用了昂贵的大品牌 32 核64线程处理器,最高主频高达2.6GHz。服务器到位后,由于该配置比原先的12核心服务器不知道高了多少个档次,所以没有经过太细致的检测,就直接部署了生产逻辑。同时,鉴于新的服务器很刚,物理服务器机柜缩减了规模,服务器台数降低到1/2.

在新机器上线后,试着打开几个测试客户端,都没有问题。而后,试着运行智能客服、语音代理,也都打开了。可是到了第二天,大量用户反馈,语音客服半天没有反应,游戏的场景以及登入都变得异常缓慢。

运维初步查看日志,主要问题如下:

  1. 消息队列拥塞,写的没有落的快。
  2. NPC及智能场景算法在多用户高峰期无法实时,导致大量排队。
  3. 后台数据库查询缓慢,索引性能直线下降,比旧系统还慢了70%。

第一反应:是盘阵坏了?

磁盘

2. 分析

  1. 首先怀疑盘阵损坏,导致kafka、数据库IO瓶颈。但查看指示灯、查询SMART和日志,盘阵并没有问题。
  2. 查看系统监视器,磁盘IO很空闲,只有5%。延迟很小,固态SSD不是吃素的。
  3. 既然不是磁盘,那kafka、数据库为什么慢?查询配置,Kafka使用了数据压缩,zstd模式9。可能是CPU来不及,CPU除了Kafka压缩,还有很多游戏的算法工作。
  4. 查看CPU,64核心竟然跑满了40%多。这种负荷即使在以前老的节点上也没有遇到过。
  5. 查看CPU状态,惊奇发现主频只有 0.9GHz (该CPU理论上能达到3.1GHz峰值速率)。

3. 初步调整

这个情况运维一看,遇到过啊!就是电源节能的问题。

  1. 确认操作系统电源模式为主动散热,最大性能。没问题。
  2. 风扇是否损坏,导致CPU过热保护?查看温度,50度,这,感觉CPU在摸鱼,看似很忙其实没有出力。
  3. 试着调整各种OS参数,CPU主频始终在1.2GHz以下。
    CPU
    整到这里,运维就晕了。认为是服务器厂商忽悠买家,开始喷模式。老板找到老丁,连夜进驻。

4. 再次查看

老丁首先使用 CPU-Z 跑分,发现这个十几万的CPU跑分还没有我打游戏的i7好。无论多核还是单核,都是龟速。

而后,老丁也认为是电源管理问题,但了解后,认为OS层面已经做得差不多了。那,只剩主板层面的问题了。这种大厂服务器忽悠的可能性很小,更何况不可能每一台都有问题。一定是哪个配置不对。

吐槽一下:其实早该查看UEFI配置,无奈现在的服务器重启至少5分钟起步,老板不让下线,宁可保持着在线用户游戏到晚上再关机,也不能白天下线。

5. 锁定原因

老丁身体不好,等不及夜里3点了。找一个kafka节点服务器重启, 只要factor优于门限,应该不会影响客户体验。说干就干,F1进入 UEFI配置。

UEFI Setup——System Settings——Operating Modes

马上发现问题,系统被设置为节能模式。

直接修改为最大性能,保存重启。

服务器风扇开始暴躁模式100%Max,进入OS后,风扇开始减速,查看CPU主频到3.1GHz,完毕。

如法炮制,夜里三点,重启配置所有服务器全速工作,游戏进程流畅无比。性能比预想的还好,服务器还可以扩充其他用途。

6. 处理器电源管理参数设置

当代服务器和10年前相比,出场配置一般都是“绿色节能”模式。这种模式下,CPU是根本不能跑出满分的。本文为了照顾面子,就不贴图了。不管有没有遇到性能问题,都可以检查一下自己的服务器的CPU主频,是不是设置为节能模式了。个人认为,极端节能模式大可不必,只要允许最简单的动态频率即可。为了单个服务器的节能,导致需要部署更多的服务器来横向扩展,功耗反而更大了。

主要设置:

[BIOS]
Power-Saving Mod: Maximum Performance
Maximum Performance
C-States: Disable
C1 Enhanced Mode : Disable
Energy Efficient Turbo: Disable

如此配置后,在操作系统层面再设置为“Maximum Performance”模式,即可获得最大性能。如果需要动态频率,则适当打开C1等开关。注意的是不管开关如何,所有策略都选择“最佳性能”,就不会太差。

后记

服务器的节能指标固然重要,但为了满足业务流要求,使用单台高性能服务器还是要比横向扩展多台节能服务器要划算。用户在考虑配置时,要根据自身的情况来优化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/461167.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue移动端项目通用技巧

目录 一、配置文件 1.1、取消eslint校验 1.2、基础文件引入 1.3、iconfont引入svg使用 1.4、css的简化应用 1.5、内容溢出用省略号替代 1.6、非组件库的底部导航跳转 1.7、基础版轮播图 一、配置文件 1.1、取消eslint校验 在vue.config.js文件里: const …

【论文阅读】Robustness in Reinforcement Learning

原文为 Trustworthy Reinforcement Learning Against Intrinsic Vulnerabilities: Robustness, Safety, and Generalizability,是 2022 年 CMU 发表的综述文章。 本文主要关注文章的第二部分即鲁棒性 1. 概述 鲁棒性主要解决的问题是提高策略在面对不确定性或者对抗…

Linux:文件查看:《cat》《more》《less》《head》《tail》《wc》《grep》使用方法

同样是查看为什么要有这么多查看方法??? 因为他们的用法和扩功能肯定不一样,选择与你需要匹配的一条命令可以节省时间的同时更快速 cat 文件 可以直接查看文件内的内容 直接可以查看文件内的内容 要直接看更多的文件以空格隔开的…

AI大模型+低代码,在项目管理中的应用实践

随着ChatGPT大火之后,新的AI技术和模型被证明已经具备的很高的使用价值。 诸如Copilot、Midjourney、notion等产品通过AI的加持,已经让用户能够充分地在应用层面感受到了便利性。 原本几天的工作通过AI模型,可能只需要1分钟就能完成。可以大…

面试腾讯T7,被按在地上摩擦,鬼知道我经历了什么?

时间总是过得飞快,金三银四已经过去了,人们已经开始备战互联网大厂2023年的秋招计划了。刚好最近我有个小徒弟去腾讯面试的时候挂掉了,感觉被技术吊打。根据他的描述我复盘了一下,希望能给备战秋招的朋友一些帮助。 腾讯面试的内…

Leetcode——485. 最大连续 1 的个数

💯💯欢迎来到的热爱编程的小K的Leetcode的刷题专栏 文章目录 1、题目2、滑动窗口3、一次遍历(官方题解) 1、题目 题目:给定一个二进制数组 nums , 计算其中最大连续 1 的个数。 示例 1: 输入:nums [1,1,0…

生成对抗网络pix2pixGAN

1.介绍 论文:Image-to-Image Translation with Conditional Adversarial Networks 论文地址:https://arxiv.org/abs/1611.07004 图像处理的很多问题都是将一张输入的图片转变为一张对应的 输出图片,比如灰度图、彩色图之间的转换、图像自动…

【JavaEE】SpringMVC_day02

今日内容 完成SSM的整合开发能够理解并实现统一结果封装与统一异常处理能够完成前后台功能整合开发掌握拦截器的编写 1,SSM整合 前面我们已经把Mybatis、Spring和SpringMVC三个框架进行了学习,今天主要的内容就是把这三个框架整合在一起完成我们的业务功…

网络基础-IP和端口号以及认识传输层协议

概念回顾 MAC地址仅需要在同一个局域网下唯一,就可以保证不会出现通讯问题。 通信的目的是两台机器上的应用软件要通信。即客户端进程和服务端进程要获取这个数据,借助主机来完成通信。故将数据在主机间转发仅仅是手段,机器收到后&#xff…

为什么别的测试工程师年薪30W,而你做不到?

最近收到一位同学的私信: “看到了这个岗位想去应聘,但任职要求熟悉Shell、Python、Java其中的一种语言。软件测试工程师不是对编程代码要求不高吗?我如果学习应该选择Java还是Python?” 对于刚入行的测试新人来说,在求…

深入理解Linux内核(第三版)- 进程切换

为了控制进程的执行,内核必须有能力挂起正在CPU上运行的进程,并恢复以前挂起的某个进程的执行。这种行为被称为进程切换(process switch)、任务切换(task switch)或上下文切换(context switch&a…

手把手教你Java实现栈和队列

目录 一、栈(Stack) 1、概念 2、栈的使用 3、栈的模拟实现 4、栈的应用场景 2. 队列(Queue) 1、概念 2、队列的使用 3、队列模拟实现 4、循环队列 三、双端队列 (Deque) 五、栈和队列的互相实现 用队列实现栈: 用栈实现队列: 一、栈(St…

【剑指offer】(2)

系列文章目录 剑指offer系列是一本非常著名的面试题目集,旨在帮助求职者提升编程能力和应对面试的能力。 文章目录 系列文章目录[TOC](文章目录) 前言一、 用两个栈实现队列🔥 思路🌈代码 二、青蛙跳台阶问题🔥 思路&#x1f308…

git从入门到卸载

git是什么? 从git的官网Git可以找到: Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git is easy to learn and has a tiny footpr…

SANGFOR防火墙如何查看现网运行参数

环境: 防火墙 8.0.48 AF-1000BB1510 问题描述: 公司防火墙设备使用2年多了 AF-2000-FH2130B-SC;性能参数:网络层吞吐量:20G,应用层吞吐量:9G,防病毒吞吐量:1.5G,IPS吞…

python基础实战4-python基础语法

1、注释(Comments) 注释用来向用户提示或解释某些代码的作用和功能,它可以出现在代码中的任何位置。 Python解释器在执行代码时会忽略注释,不做任何处理,就好像它不存在一样。 1.1 代码注释介绍 注释就是对代码的解…

计算机组成原理 指令系统(1)

本文是HIT计算机组成原理上课笔记,由于唐书有些内容讲的比较抽象,添加了一些王道的图片加以补充。 回忆计算机的工作过程 代码被编译器翻译成与之对等的机器指令,除了指令之外还会有一些数据同时被放到主存里 机器指令 指令格式 一条指令是…

第十四章 代理模式

文章目录 前言一、静态代理完整代码接口 ITeacherDao (代理类和被代理类都需要实现这个接口)被代理类 TeacherDao代理类 TeacherDaoProxy测试类 Client 二、JDK动态代理完整代码接口 ITeacher实现类TeacherDao代理工厂 ProxyFacyoryclient 测试 三、Cgli…

Java阶段二Day09

Java阶段二Day09 文章目录 Java阶段二Day09DQLSELECT基础查询全部查询WHERE子句连接多个条件ORDER BY子句分页查询在SELECT子句中使用函数在WHERE中使用表达式别名聚合函数 教师总结DQL语言-数据查询语言语法基础查询语法例 WHERE子句例连接多个条件例AND的优先级高于OR IN(列表…

vue使用原生bootstrap-fileinput无效(未解决)

这篇只记录一下踩到的坑,由于时间关系,此问题未解决 起因:要求替换项目框架,原先jq要替换成vue。之前bootstrap中自带的文件上传插件自带很多功能,上传进度条、上传内容预览等非常方便(如图)&a…