文档章节

用bootchart分析Linux开机过程,关掉影响开机速度的程序

eechen
 eechen
发布于 2015/12/11 00:22
字数 433
阅读 1796
收藏 5
sudo apt-get install bootchart pybootchartgui
https://wiki.ubuntu.com/BootCharting
http://www.bootchart.org/samples.html
截图见文末.

安装bootchart时会执行以下操作:
update-initramfs: Generating /boot/initrd.img-3.14.18-031418-generic
由一个运行在initramfs里的工具执行审计操作,记录计算机启动时的状态.
/usr/share/initramfs-tools/scripts/init-top/bootchart
update-initramfs - generate an initramfs image
sudo nano /etc/init/bootchart.conf 注释掉 start on 这一行即可禁用 bootchart.

bootchart用于记录开机过程中各种进程消耗的时间,CPU,I/O操作.
bootchart收集的数据打包在/var/log/bootchart,里面包含PNG或SVG图片(需要安装pybootchartgui):
/var/log/bootchart/ubuntu-trusty-20150111-1.png
/var/log/bootchart/ubuntu-trusty-20150111-1.tgz
通过分析bootchart启动图和dmesg日志找出Linux系统启动慢的原因.
启动记录图主要包含这些内容:
1.CPU使用率和I/O等待
2.磁盘吞吐量和使用率
3.进程的CPU时间,等待I/O的时间,睡眠时间
另外注意有3条时间分隔线,第一条标记hostname启动,中间那一条标记Xorg启动,第三条标记开机完成(对应头部的time开机总计时间).

关闭VirtualBox/MySQL/PHP-FPM/Nginx后开机时间从70秒降到60秒.
Linux上在Chrome里打开两次开机的启动图,在Chrome标签上滚动切换,对比分析,更加直观.
对比可见,hostname到Xorg的时间明显缩短了.
Xorg的启动是在/etc/rc.local之后的,也就是在屏幕亮度降低之后的.

注意到systemd-udevd这个进程消耗的CPU和磁盘都挺多.
udev是Linux Kernel的设备管理器,它主要的功能是管理/dev下的设备节点.


© 著作权归作者所有

eechen

eechen

粉丝 1023
博文 107
码字总数 55962
作品 1
深圳
私信 提问
加载中

评论(3)

eechen
eechen 博主

引用来自“ajavaloser”的评论

在ubuntu15上能用么,昨天装了一下,啥都没有,后来死机了两次,卸了
我用的是Xubuntu 14.04 LTS,我从来不用非LTS的版本,所以不知道是什么情况.
ajavaloser
ajavaloser
在ubuntu15上能用么,昨天装了一下,啥都没有,后来死机了两次,卸了
linux系统的启动过程简要分析

接触linux系统运维已经好几年了,常常被问到linux系统启动流程问题,刚好今天有空来梳理下这个过程: 一般来说,所有的操作系统的启动流程基本就是: 总的来说,linux系统启动流程可以简单总...

ActiveCode
2018/08/10
0
0
AMDcpu安装ubuntu/deepin

1、问题 电脑是thinkpad e485,cpu 锐龙2500u,安装ubuntu系统黑屏 2、安装 开机狂按F1,进BIOS,记得在security的选项里找到secure boot,关掉。 选择u盘启动,需要按E编辑一下(目前E485(...

徐曙辉
04/16
94
0
android的init过程分析

前言 Android系统是运作在linux kernal上的,因此它的启动过程也遵循linux的启动过程,当linux内核启动之后,运行的第一个进程是init,这个进程是一个守护进程,它的生命周期贯穿整个linux 内...

雨焰
2013/03/29
1K
0
Using Bootchart on Android 在开机测量中的应用

Bootchart is a system designed to show a graphical display of the activity of a system during boot. 。。。 省略官方简介,下面是相关连接: http://www.elinux.org/UsingBootcharton......

austinyancanlin
2015/09/01
83
0
Linux系统下服务启动和禁止及对应端口号

/etc/services 查看系统预设服务及端口对应.各个DAEMONS(服务)的启动与关闭的scripts是放置在/etc/init.d/内,而RED HAT系统则是放到/etc/rc.d/init.d里面,至于super daemon的控制参数档案则放...

JavaGG
2009/05/23
925
0

没有更多内容

加载失败,请刷新页面

加载更多

JS 打印控制

JS 打印控制 var PrintStartString = "<!--打印开始标示符-->";//设置打印开始区域var PrintEndString = "<!--打印结束标示符-->";//设置打印结束区域var HtmlText = window.do......

DrChenXX
21分钟前
5
0
LevelDB:使用介绍

LevelDB 提供的接口其实很简单,下面举例进行简单说明。 安装 git clone https://github.com/google/leveldb cd leveldb mkdir -p build && cd build cmake -DCMAKE_BUILD_TYPE=Release .. ......

slagga
26分钟前
5
0
《JavaScript正则表达式迷你书》读书笔记

正则基础 常见简写形式 字符组 具体含义 记忆方式 \d 表示 [0-9]。表示是一位数字。 其英文是 digit(数字) \D 表示 [^0-9]。表示除数字外的任意字符。 \w 表示 [0-9a-zA-Z_]。表示数字、大小...

muzi131313
31分钟前
4
0
Git的反悔操作

概述 这次主要来讲讲Git的反悔操作,自己平时在写代码的过程中经常会出现想要弃用所有的改动或回滚到上一次commit的情况。Git上的反悔操作有reset、rebase、revert等,每个操作各有区别和对应...

duduYZ
32分钟前
3
0
实现双向绑定Proxy比defineproperty优劣如何?

前言 双向绑定其实已经是一个老掉牙的问题了,只要涉及到MVVM框架就不得不谈的知识点,但它毕竟是Vue的三要素之一. Vue三要素 响应式: 例如如何监听数据变化,其中的实现方法就是我们提到的双向...

寻找海蓝
44分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部