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

    文章

    1553

    浏览量

    67477
收藏 人收藏

    评论

    相关推荐

    如何入门硬件工程师

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

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

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

    如何搞崩一个硬件工程师心态?试试对ta说这几句

    硬件工程师
    扬兴科技
    发布于 :2024年02月20日 18:05:49

    #人工智能 #FPGA 怎么成为一个合格的FPGA工程师

    fpga工程师
    明德扬助教小易老师
    发布于 :2023年12月18日 21:19:01

    电子工程师第一天上班就暴揍师傅。。。#科普 #示波器 #电子工程师 #打工日记

    电子工程师示波器
    安泰小课堂
    发布于 :2023年12月18日 17:36:12

    FPGA工程师需要具备哪些技能?

    FPGA(Field-Programmable Gate Array)芯片因其具有灵活性、高定制化、高性能等特点,被广泛应用于数字系统设计、嵌入式系统、通信系统、计算机视觉等领域。作为FPGA工程师
    发表于 11-09 11:03

    如何成为一名优秀的嵌入式工程师

    利用指针直接操作内存,这有助于更高效地使用内存。 3.熟悉数据结构:C语言提供了许多基本的数据结构,如数组、链表、栈、队列等。作为嵌入式工程师需要熟悉并掌握
    发表于 11-07 15:36

    招聘数字后端工程师

    招聘数字后端工程师,北京、天津、西安、苏州、成都、无锡
    发表于 10-26 15:11

    #FPGA 本科生也能成为FPGA研发工程师

    fpga工程师
    明德扬助教小易老师
    发布于 :2023年09月23日 08:05:36

    电源工程师常用的几个典型电路分享

    具有电源知识水平的工程师来完成设计和开发。作为一名合格的电源工程师平时工作经验的积累很重要,但同时也应该提高理论水平,通过积累几个常用的电源电路,说不定下次就能用上,还是学习吧!
    发表于 09-20 07:59

    热门推荐:硬件工程师必备工具

    硬件开发的工作流程一般可分为:原理图设计、PCB Layout设计、采购电子BOM、PCB板生产、PCBA组装、功能调试及测试、小批量试产、大批量生产正式投放市场等步骤。 作为一名优秀的硬件工程师
    发表于 06-21 10:15

    电子工程师必看书籍推荐#知识分享 #知识科普 #交流#硬声创作季

    电子工程师
    也许吧
    发布于 :2023年05月24日 10:47:34