LEP(LINUX EASY PROFILING) 是Linuxer之LEP项目组(Barry Song,Mac Xu,陈松等以及陈莉君老师)正在致力于打造的一个开源项目,这是LEP文档《LEP是什么,为什么,怎么办》的第一部分。本部分目录如下:
1.LEP是什么?
1.1 LEP的架构
1.2 LEP的特点
2.LEP的License
3.为什么要做LEP?
3.1 三类Linux开发者与LEP对他们各自的作用
3.2 第一类Linux开发者调试方法
3.3 第三类Linux开发者调试方法
4.LEP类似项目以及LEP的优势
4.1 netdata
4.2 zabbix
4.3 munin
4.4 带插件的Eclipse
5.LEP的当前状态
5.1 代码托管
5.2 支持平台
5.3 目前功能
5.3.1 概况视角
5.3.2 CPU视角
5.3.3 内存视角
5.3.4 I/O视角
5.3.5 perf视角
5.4 目前缺陷
LEP项目组欢迎开源爱好者加入和参与。关于项目的最新演讲:
点击“二维码”关注
Linuxer

LEP是什么?
LEP的全称是Linux Easy Profiling(Linux易用剖析器),核心特点在于Easy(简单),主要功能在乎Profiling(剖析)。LEP的网址是http://www.linuxep.com,网站基于Docker部署,代码仓库位于:https://github.com/linuxep/linuxep
LEP的设计目标是:便利Linux的程序员,以最快最直接的方式,定位到系统里面一些bug的源头,以及一些性能瓶颈的原因。
Linux有很多现成的调试和剖析工具,比如top、vmstat、iotop、perf、valgrind、powertop、free、pmap、slabtop等,这些工具通过读取/proc、/sys,分析硬件的PMU(Performance Monitor Unit)数据、监控内存的申请释放以及读写等手段,获知单一进程或者系统的运行状态,以及进行故障分析。LEP除了在功能上是这些工具的超集以外,在可视、交互、深度分析、数据比对、场景贴合等角度对这些工具进行进一步的增强。
1.1 LEP的架构
LEP实际上是一个all-in-one的调试工具,它的软件架构如图1。LEP与Linux现有工具重大不同的地方是:被监控的服务器或者开发板只需要部署LEPD(LEP Daemon),该程序完全用C语言,只需要完成基本的数据采集功能,因此它能最小化对被监控系统本身的影响。数据的分析和处理,都移动到了WEB服务LEPV(LEP Viewer)和浏览器一端。LEPD采集被监控目标的运行数据,这些数据被WEB服务端LEPV通过JSONRPC请求获得,LEPV以Python对从LEPD获得的原始数据进行有针对性的加工,再发送给浏览器,浏览器用Javascript等形式,把LEPV加工过的数据,以各种丰富的图形进行显示。
这种架构的主要好处是:LEPD和LEPV分离,这样使得LEPD易于部署在资源贫乏的嵌入式电脑板上(当然更加可以运行在服务器上),而LEPV一般则运行在比较