ubuntu 降级安装 gcc/g++

ubuntu 降级安装 gcc/g++

ubuntu 默认安装的 gcc 版本可能比较高,或者我们需要较低版本的 gcc 编译器,与其他版本并存。

如下是在 ubuntu 上安装老版 gcc 的过程。

第一步:指定版本安装 gcc

1
2
3
4
5
# 在软件源中查找是否包含了我们需要安装的版本
sudo apt-cache search gcc-4.8

# 安装
sudo apt install gcc-4.8

查看更多

iowait 的理解

一、什么是 iowait

来自 linux 中的解释

1
Show the percentage of time that the CPU or CPUs were idle during which the system had an outstanding disk I/O request.

iowait 指在一个采样周期内有百分之几的时间是属于以下情况:CPU处于空闲状态并且至少有一个未完成的磁盘IO请求

那么根据 iowait 的定义可知,iowait 是属于 idle 的一个子类。可以把 iowait 当成一种等待 IO 而造成的 idle 状态。

查看更多

监控与分析

监控与分析

一、系统级 IO 监控

1. iostat 工具

统计的是通用块层经过合并后,直接向设备提交的 IO 数据,可以反映系统整体的 IO 状况,但是有如下缺点:

  • 距离业务层比较遥远,和代码中的 read、write 不对应(由于系统预读、pagecache、IO 调度算法等)
  • 是系统级,没有办法精确到进程,比如得知磁盘很忙,但是没办法告诉我们谁在忙?忙什么?

查看更多

strace 命令

strace 命令可以跟踪一个进程在执行期间的系统调用和信号。

1
2
3
4
# 跟踪一个现有的进程
strace -p pid

# -c 参数可以将进程所有的系统调用做一个统计分析,告诉我们调用了哪些系统函数,调用次数是多少。消耗了多少时间等

sysdig 工具

sysdig 工具

安装方法:

1
2
3
sudo apt install sysdig
或者
curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | bash

sysdig 提供了 Chisels 功能,Chiesls(直译为凿子)是一组 Lua 脚本,提供高度封装的监控功能。sysdig -cl 命令列出当前支持的 Chiesls 列表,使用 sysdig -c 加上具体的 Chisels 名字即可使用。

以文件 IO 举个例子。

查看更多