一.坏境准备 1.拓扑图 2.安装包 在第9节的基础上 在VM2上安装hping3依奈包 wget http://www.tcpdump.org/release/libpcap-1.9.0.tar.gz tar xf libpcap-1.9.0.tar.gz cd libpcap-1.9.0/ ./configure && make && make install [root@luoahong pcap]# pwd /root/libpcap-1.9.0/pcap [roo…
一.内存的分配和回收 1.管理内存的过程中,也很容易发生各种各样的“事故”, 对应用程序来说,动态内存的分配和回收,是既核心又复杂的一的一个逻辑功能模块.管理内存的过程中,也很容易发生各种各样的“事故”, 比如,没正确回收分配后的内存,导致了泄漏.访问的是已分配内存边界外的地址,导致程序异常退出,等等. 你在程序中定义了一个局部变量,比如一个整数数组 int data[64] ,就定义了一个可以存储 64 个整数的内存段.由于这是一个局部变量,它会从内它会从内存空间的栈中分配内存 1.栈内存由系…
一.性能优化方法论 不可中断进程案例 二.怎么评估性能优化的效果? 1.评估思路 2.几个为什么 1.为什么要选择不同维度的指标? 应用程序和系统资源是相辅相成的关系 2.性能优化的最终目的和结果? 好的应用程序 3.为什么必须要使用应用程序的指标,来评估性能优化的整体效果? 系统优化总是为应用程序服务的 4.为什么需要用系统资源的指标,来观察和分析瓶颈的来源 系统资源的使用情况是影响应用程序性能的根源 三.多个性能问题同时存在,要怎么选择? 四.有多种优化方法时,要如何选择? 五.系统优化 六…
一.案例环境描述 1.环境准备 2CPU,4GB内存 预先安装docker sysstat工具 2.温馨提示 案例中 Python 应用的核心逻辑比较简单,你可能一眼就能看出问题,但实际生产环境中的源码就复杂多了.所以,我依旧建议,操作之前别看源码,避免先入为主,要把它当成一个黑盒来分析.这样 你可以更好把握住,怎么从系统的资源使用问题出发,分析出瓶颈所在的应用,以及瓶颈在应用中大概的位置 3.测试环境准备 1.运行目标应用 docker run --name=app -p 10000:80 -…
一.环境准备 1.安装软件包 终端1 机器配置:2 CPU,8GB 内存 预先安装 docker.sysstat.perf等工具 [root@luoahong ~]# docker -v Docker version 18.09.1, build 4c52b90 [root@luoahong ~]# rpm -qa|grep sysstat sysstat-12.1.2-1.x86_64 终端2 机器配置:1 CPU,2GB 内存 预先安装ab 等工具 [root@nfs ~]#yum -y i…
一.内存映射 内存管理也是操作系统最核心的功能之一,内存主要用来存储系统和应用程序的指令.数据.缓存等 1.我们通说的内存指的是物理内存还是虚拟内存? 我们通常说的内存容量,其实这指的是物理内存,物理内存也称为主存,大多数计算机用的主存都是动态随机访问内存(DRAM).只有内核才可以直接访问物理内存. 那么,进程要访问内存时,该怎么办呢? 2.进程是如何访问内存的? Linux 内核给每个进程都提供了一个独立的虚拟地址空间,并且这个地址空间是连续的.这样,进程就可以很方便地访问内存,更确切地说是…
一.free数据的来源 1.碰到看不明白的指标时该怎么办吗? 不懂就去查手册.用 man 命令查询 free 的文档.就可以找到对应指标的详细说明.比如,我们执行 man fre... 2.free数据的来源 [root@ccb-installment-api ~]# man free NAME free - Display amount of free and used memory in the system SYNOPSIS free [options] DESCRIPTION free…
一.缓存命中率 1.引子 1.我们想利用缓存来提升程序的运行效率,应该怎么评估这个效果呢? 用衡量缓存好坏的指标 2.有没有哪个指标可以衡量缓存使用的好坏呢? 缓存命中率 3.什么是缓存命中率? 所谓缓存命中率,是指直接通过缓存获取数据的请求次数,占所有数据请求次数的百分比.命中率越高,表示使用缓存带来的收益越高,应用程序的性能也就越好 2.查看系统命中情况的工具 1.缓存在高并发系统的应用 实际上.缓存是现在所有高并发系统必须的核心模块,主要作用就是把经常访问的数据(也就是热点数据),提取读入…
一.怎么查看系统上下文切换情况 通过前面学习我么你知道,过多的上下文切换,会把CPU时间消耗在寄存器.内核栈以及虚拟内存等数据的保存和回复上,缩短进程真正运行的时间,成了系统性能大幅下降的一个元凶 既然上下文切换对系统性能影响那么大,你肯定迫不及待想知道,道题怎么查看上下文切换 1.系统总的上下文切换情况 [root@nfs ~]# vmstat 1 procs -----------memory---------- ---swap-- -----io---- -system-- ------c…
一.环境准备 1.安装软件包 终端1 机器配置:2 CPU,8GB 内存 预先安装 docker.sysstat.perf等工具 [root@luoahong ~]# docker -v Docker version 18.09.1, build 4c52b90 [root@luoahong ~]# rpm -qa|grep sysstat sysstat-12.1.2-1.x86_64 终端2 机器配置:1 CPU,2GB 内存 预先安装ab 等工具 [root@nfs ~]#yum -y i…