zoukankan      html  css  js  c++  java
  • Linux优化不知如何下手?那你的看看这篇文章了

    这些问题或者场景,你是否曾经遇到过?

    • 流量高峰期,服务器CPU使用率过高报警,你登录Linux上去top完之后,却不知道怎么进一步定位,到底是系统CPU资源太少,还是程序并发部分写的有问题?
    • 系统并没有跑什么吃内存的程序,但是敲完free命令之后,却发现系统已经没有什么内存了,那到底是哪里占用了内存?为什么?
    • 一大早就收到Zabbix告警,你发现某台存放监控数据的数据库主机CPU的I/O Wait较高,这个时候该怎么办?

    作为一个程序员,性能优化是无法避开的事情,不管是桌面应用还是web应用,不管是前端还是后端,不管是单点应用还是分布式系统,并且性能优化也是软件系统中最有挑战的工作之一,更是每个工程师都需要掌握的核心技能。

    但是在实际的工作中,很多情况下只能看到症状,却完全不知道该从哪儿下手去排查和解决它。

    之前有读者问过到,胖哥有没有系统学习Linux性能优化的书籍推荐?

    网上的资料和书籍可以扩充底层知识体系,从虚拟化的原理、到操作系统和网络原理、再到Linux内核和硬件驱动程序等等。

    但是Linux性能优化是个系统工程,除了基础知识点之外,学习中还有两点是比较重要的:

    第一、要学习大量性能优化的思路和方法,尝试大量的Linux性能工具。

    第二、要不断的实践和总结。这样你才能把观察到的性能问题跟系统原理关联起来,特别是把系统从应用程序、库函数、系统调用、再到内核和硬件等不同的层级贯穿起来。

    对于我们大多数人来说,最好的学习方式一定是带着问题学习,而不是先去啃那几本厚厚的原理书籍,这样容易把自己的信心压垮。我认为,学习要会抓重点,只要你了解少数几个系统组件的基本原理和协作方式,掌握基本的性能指标和工具,学习实际工作中性能优化的常用技巧,你就已经可以准确分析和优化大多数的性能问题了。

    在这个认知和基础上,再反过来去阅读那些经典的操作系统或者其它图书,你才能事半功倍。

  • 相关阅读:
    ArrayList removeRange方法分析
    LinkedHashMap源码分析(基于JDK1.6)
    LinkedList原码分析(基于JDK1.6)
    TreeMap源码分析——深入分析(基于JDK1.6)
    51NOD 2072 装箱问题 背包问题 01 背包 DP 动态规划
    51 NOD 1049 最大子段和 动态规划 模板 板子 DP
    51NOD 1006 最长公共子序列 Lcs 动态规划 DP 模板题 板子
    8月20日 训练日记
    CodeForces
    CodeForces
  • 原文地址:https://www.cnblogs.com/l520/p/10259805.html
Copyright © 2011-2022 走看看