Linux系统相关问题记录QA
问题场景
场景 Ubuntu系统需要安装 rpm 包
- Ubuntu 使用deb 格式安装无法直接使用rpm 命令直接安装rpm包 需要进行包转换
# 安装alien 包转换工具
apt install alien
# 使用alien 将rpm 包转换为 deb 格式
alien {package.rpm}
# 安装deb 格式包
dpkg -i {package.deb}
场景 linux设置全局代理
通过
vi ~/.bashrc # 添加如下三行 IP:PORT 为代理地址
export http_proxy=“http://IP:PORT”
export https_proxy=“http:// IP:PORT”
export ftp_proxy=$http_proxy
# 保存退出后执行source ~/.bashrc即可。
性能排查场景
场景机器load高IO高
load avergaes 系统平均负载,可以理解为一段时间内 CPU中运行的R 状态和D状态 任务数量的平均值
load 高一般的原因:CPU使用率、僵尸进程、R状态进程、D状态进程、IO高、内存释放缓存、OOM、磁盘只读
Linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态。
R:运行状态,表示进程正在运行或等待CPU资源运行。
S:睡眠状态,表示进程正在等待某个事件的发生,如等待输入输出完成、等待信号量等。
D:不可中断的睡眠状态,表示进程正在等待某些事件的发生,但是这些事件不可被中断,如等待硬件设备的输入输出完成。
T:暂停状态,表示进程被挂起,等待某个信号的到来或者被其他进程唤醒。
Z:僵尸状态,表示进程已经结束,但是其父进程还没有回收其资源,因此进程的状态被标记为僵尸状态。
X:死亡状态,表示进程已经结束,但是其资源还没有被回收,因此进程的状态被标记为死亡状态。
# 查看进程状态
ps -eL h o pid,state,ucmd,wchan=WIDE-WCHAN_COLUMN | awk '{if($2=="R"||$2=="D") {print $0}}' | grep -v ps |sort | uniq -c | sort -rnk 1
# 查看进程cpu使用情况
pidstat
# 查看进程树
ps -ef --forest
场景 需要查询哪个进程大量占用网络
yum -y install iftop
iftop -i eth0 -p -n
显示结果
场景 需要查看cpu 内存 硬盘等使用情况
# cpu 内存
pidstat -t -l
# 硬盘
pidstat -t -l -d
# 单块硬盘读写负载
iostat