0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

作为后端工程师你应该懂得这些

工程师人生 来源:工程师吴畏 2019-07-26 17:18 次阅读

前两天公司双十一做大促活动,半夜突然来了一大波流量,你在睡梦中就收到了一大波报警短信,仔细一看,说是服务器 CPU 使用率过高。你没敢半点马虎,揉了揉眼睛,带上眼镜,打开电脑,直接就登录到了 Linux 生产服务器。

登录成功之后,你发现服务器确实有些慢,就连输个命令都比平时慢了一拍。简单输入 top 命令之后,根据参数看到系统的 CPU 使用率奇高无比,二话没说,你赶紧按照 CPU 使用率排序找出使用率最高的那个进程。从排序结果可以确定,你昨天刚升级服务的 CPU 使用率居然高达 700%,根据直觉推断,你觉得肯定是昨天升级的服务并发处理逻辑有问题。

但是这个应用的负载特别大,业务逻辑也比较复杂,你一时也不知道到底是哪块逻辑出的问题。网络有人说,可以使用 gdb 来调试应用程序,可是 gdb 会把进程中断掉,直接影响线上的业务。也有人说可以使用 perf 工具来查,你照猫画虎,发现只是一些看起来像是 Linux 内核中的函数占用来比较多的 CPU。查了半天,最终发现还是没能弄明白到底是哪里出现的问题,留下的都是无奈和迷茫。

如果你对这样的场景感同身受,那我觉得你还没有成为一个「更上一层楼」的服务器端工程师。极客们常说,只有知道一件事物的原理,它才是有用的东西。事实上,作为一个后端工程师和 Linux 打交道是司空见惯的事情,在服务器上分析系统性能情况是每个后端程序员都无法避开的事。

你愿意束手无策等待帮助,还是游刃有余庖丁解牛?

有人说,这是运维的工作范畴,我对这话是不以为然的。一个优秀的程序员,不应该在这事上给自己设边界,如果连这点事情都整不明白,那我确信,你肯定也搞不懂高并发、分布式等相关的知识,因为这些内容都是一脉相承的。

鉴于此,我们邀请了微软 Azure 资深工程师倪朋飞开设了一门《Linux 性能优化实战》,专栏+音频形式,预计 50 讲左右。

说到微软,大家总以为和 Linux 是死敌,微软工程师都用 C# 和 Window Server 等,其实根本不是。倪朋飞在微软主要负责开源容器编排系统 Kubernetes 在 Azure 的落地实践,Azure 上有大量的 Linux 云服务器。倪老师之前曾任职于盛大云和腾讯,十年来一直在云计算领域工作,主攻 IaaS 和容器技术,所以对 Linux 性能优化这套知识体系又深厚的沉淀和丰富的实践经验。

在工作期间,他尝试了大量的 Linux 性能工具,努力攀登性能之巅,在不断的实践和总结后,倪老师终于知道如何把观察到的性能问题跟系统原理关联起来,特别是把系统从应用程序、库函数、系统调用、再到内核和硬件等不同的层级贯穿起来。

为了让读者对性能有个全面的认识,倪朋飞精心绘制了一张思维导图,里面涵盖了大部分性能分析和优化的知识。(后台回复 Linux 获取)

Linux 性能和优化入门难,但进入这个领域后就会如鱼得水,学习和实践相互印证,根本停不下来。但如何入门呢?第一带着问题学习,而不是先去啃那几本厚厚的原理书籍,因为那样很容易把自己的信心压垮。第二就是从学习到输出,也就是不断实践。

事实上,只要你了解基础系统组件的原理和协作方式,掌握基本的性能指标和工具,熟悉实际工作中性能优化的常用技巧,就可以比较准确分析和优化大多数的性能问题了。在这个认知和基础上,再反过来去阅读那些经典的操作系统或者其它图书,才会事半功倍。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 工程师
    +关注

    关注

    59

    文章

    1571

    浏览量

    68537
收藏 人收藏

    评论

    相关推荐

    工程师应该掌握的几种正确电容放电姿势

    又有工程师被电伤了! 看来这是搞电子工程师,尤其是平时好奇心太强搞拆解的或搞开关电源工程师的家常便饭吧! 拿一AC-DC开关电源板来举例 在开关电源220V输入前端,都会有一个很大的滤波电容,这个
    的头像 发表于 12-04 09:36 641次阅读
    <b class='flag-5'>工程师</b><b class='flag-5'>应该</b>掌握的几种正确电容放电姿势

    FPGA算法工程师、逻辑工程师、原型验证工程师有什么区别?

    ,共同进步。 欢迎加入FPGA技术微信交流群14群! 交流问题(一) Q:FPGA中的FPGA算法工程师、FPGA逻辑工程师、FPGA原型验证工程师三者有什么区别? A:FPGA 算法工程师
    发表于 09-23 18:26

    正是拼的年纪|65岁电子工程师上班VLOG #65岁退休 #电子工程师 #搞笑 #上班vlog

    电子工程师
    安泰小课堂
    发布于 :2024年07月25日 11:31:02

    用二创,1:1复刻工程师的职场现状

    工程师
    扬兴科技
    发布于 :2024年07月19日 18:30:07

    嵌入式软件工程师如何提升自己?

    嵌入式软件工程师如何提升自己? 作为一名嵌入式软件工程师,在这个充满机遇和挑战的领域里,如何提升自己显得非常重要,它决定了未来的发展方向和成就。接下来,我们一起探讨一下。 1.奠定扎
    发表于 06-12 11:20

    嵌入式软件工程师和硬件工程师的区别?

    嵌入式软件工程师和硬件工程师的区别? 嵌入式软件工程师 嵌入式软件工程师是软件开发领域中的一种专业工程师,他们主要负责设计和开发嵌入式软件,
    发表于 05-16 11:00

    大厂电子工程师常见面试题#电子工程师 #硬件工程师 #电路知识 #面试题

    电子工程师电路
    安泰小课堂
    发布于 :2024年04月30日 17:33:15

    如何入门硬件工程师

    想跨行业做硬件设计工程师应该如何学习规划呢
    发表于 03-17 21:49

    企业老工程师和高校老师有啥区别

    电子工程师硬件
    电子发烧友网官方
    发布于 :2024年02月28日 17:50:00