首页 > 系统相关 >Linux 系统问题分析常用命令整理

Linux 系统问题分析常用命令整理

时间:2024-08-04 21:54:01浏览次数:15  
标签:文件 root Linux 进程 内存 常用命令 整理 lsof CPU

lsof

在许多Linux或者类Unix系统里都有lsof命令,它常用于以列表的形式显示所有打开的文件和进程。打开的文件包括磁盘文件、网络套接字、管道、设备和进程。使用这条命令的主要情形之一就是在无法挂载磁盘和显示正在使用或者打开某个文件的错误信息的时候。
常用的参数列表:

lsof filename: 显示打开指定文件的所有进程
lsof -a :表示两个参数都必须满足时才显示结果
lsof -c string : 显示COMMAND列中包含指定字符的进程所有打开的文件
lsof -u username : 显示所属user进程打开的文件
lsof -g gid : 显示归属gid的进程情况
lsof +d /DIR/ :显示目录下被进程打开的文件
lsof +D /DIR/: 同上,但是会搜索目录下的所有目录,时间相对较长
lsof -d FD : 显示指定文件描述符的进程
lsof -n : 不将IP转换为hostname,缺省是不加上-n参数
lsof -i :用以显示符合条件的进程情况

查看22端口现在运行的情况

[root@CentOS7 ~]# lsof -i :22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 925 root 3u IPv4 18374 0t0 TCP *:ssh (LISTEN)
sshd 925 root 4u IPv6 18383 0t0 TCP *:ssh (LISTEN)
sshd 9452 root 3u IPv4 1169003 0t0 TCP CentOS7.2:ssh->192.168.56.1:61347 (ESTABLISHED)

查看所属root用户进程所打开的文件类型为txt的文件

[root@CentOS7 ~]# lsof -a -u root -d txt 
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME systemd 1 root txt REG 0,34 1489960 56083 /usr/lib/systemd/systemd kthreadd 2 root txt unknown /proc/2/exe ksoftirqd 3 root txt unknown /proc/3/exe migration 7 root txt unknown /proc/7/exe rcu_bh 8 root txt unknown /proc/8/exe 

top - 进程活动

top提供一个当前运行系统实时动态的视图,也就是正在运行进程。在默认情况下,显示系统中CPU使用率最高的任务,并每5秒钟刷新一次。
常用热键

t:显示摘要信息开关
m:显示内存信息开关
A:分类显示系统不同资源的使用大户,有助于快速识别系统中资源消耗多的任务
f:添加删除所要显示栏位
r:调整一个正在运行的进程Nice值
k:结束一个正在运行的进程
z:彩色/黑白显示开关

vmstat -系统活动、硬件及系统信息

使用vmstat命令可以得到关于进程、内存、内存分页、堵塞IO、traps及CPU活动的信息。

r:表示运行队列(就是说多少个进程真的分配到CPU),当这个值超过了CPU数目,就会出现CPU瓶颈了。 这个也和top的负载有关系,一般负载超过了3就比较高,超过了5就很高了,超过了10就不正常了,服务器的状态很危险。top的负载类似每秒的运行队列。如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。 
b:表示阻塞的进程,进程阻塞。
swpd:虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器。
free:空闲的物理内存的大小,我的机器内存总共8G,剩余3415M。 
buff:Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存,我本机大概占用300多M 
cache:cache直接用来记忆我们打开的文件,给文件做缓冲,我本机大概占用300多M(这里是Linux/Unix的聪明之处,把空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。) 
si:每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。我的机器内存充裕,一切正常。 
so:每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。 
bi:块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte,我本机上没什么IO操作,所以一直是0,但是我曾在处理拷贝大量数据(2-3T)的机器上看过可以达到140000/s,磁盘写入速度差不多140M每秒。 
bo:块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。 
in:每秒CPU的中断次数,包括时间中断 
cs:每秒上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次调用系统函数,我们的代码就会进入内核空间,导致上下文切换,这个是很耗资源,也要尽量避免频繁调系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的。 
us:用户CPU时间,我曾经在一个做加密解密很频繁的服务器上,可以看到us接近100,r运行队列达到80(机器在做压力测试,性能表现不佳)。 
sy:系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。 
id:空闲 CPU时间,一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。 
wt:等待IO CPU时间。 

命令示例

[root@CentOS7 ~]# vmstat -m
Cache Num Total Size Pages
fuse_inode 10 10 768 10
nf_conntrack_ffff88001a2d8000 0 0 320 

标签:文件,root,Linux,进程,内存,常用命令,整理,lsof,CPU
From: https://blog.csdn.net/Aurevoirs/article/details/140912633

相关文章

  • linux centos7部署zookeeper以及kafka
    一、部署zookeeper集群1.服务器配置,最好是在同一网段的IP服务器IP地址主机名node1192.168.116.6zknode1node2192.168.116.16zknode2node3192.168.116.26zknode31.1改主机名临时改主机名命令hostnametest1永久修改主机名hostnamectlset-hostnamezknode1注:要想更改后......
  • Linux基础知识
    shell定义shell是系统的用户界面,提供用户和内核交互操作的一种接口使用交互式命令行:等待用户输入一行一行执行shell脚本:写入一个文件,一起运行bashshell[root@localhost~]#[用户名@主机名目录名]权限标识目录名:光标所在目录,家目录:~权限标识:超级管理员权限:#,普通......
  • vim常用命令
    命令模式命令效果$移动光标到行尾^移动光标到行首第一个非空白字符0移动光标到行首yy复制一行内容(命令前加数字表示从当前行开始复制几行)p粘贴内容(命令前加数字表示在当前行的下一行粘贴几次)dd删除一行内容(命令前加数字表示从当前行开始删除......
  • 【pkill & pgrep】Centos/Linux pkill命令详细介绍
    简介        系统版本:Centos7.6    pkill命令用于杀死一个进程,会根据进程名称和其他属性杀死进程(默认会向进程发送SIGTERM信号,详细请看Linux信号的行为说明),与之相似的命令有killall,与kill命令相比,kill命令需要ps命令的配合查出PID,而pkill命令可以直接根据进......
  • 一张图带你了解Linux 文件目录结构,很详细!
    Linux文件目录结构是任何Linux系统的基本组成部分。它为系统提供了一个标准化的文件和目录组织方式,使得用户和应用程序能够以一致的方式访问和管理文件。与Windows系统不同,Linux的文件系统采用单一的树形结构,从根目录(/)开始,所有文件和目录都在其下。理解这一结构不仅对......
  • 【转载】ubuntu用户/linux用户登录后没有自动加载.bashrc
    版权声明:本文为CSDN博主「安安爸Chris」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/mimiduck/article/details/120041171今天遇到一个问题,linux下某用户登陆后无法加在其自身的.bashrc,通过source.bashrc发现......
  • 15:Python数据类型的综合对比整理
    #Python有六个标准的数据类型:#Numbers(数字)int#String(字符串)str字符串一旦创建,不可修改,一旦修改或者拼接,都会造成重新生成字符串#List(列表)list中号括起来,逗号分开,可以是数字、字符串、列表、布尔值,列表可以嵌套任何类型,列表有序元素可以被修改#Tup......
  • Linux的常用工具
    文章目录tar打包命令详解一、tar命令的基本语法二、常用选项及其功能三、常用操作示例1.创建tar存档文件2.同时压缩tar存档文件四.tar命令做解打包操作unzip命令:解压zip文件vim操作详解Vim查找文本Vim替换文本Vim移动光标快捷键汇总Vim快捷方向键Vim光标以单词为单位......
  • 【Linux】TCP全解析:构建可靠的网络通信桥梁
    文章目录前言1.TCP协议概述2.TCP报头结构3.如何理解封装和解包呢?4.TCP的可靠性机制4.1TCP的确认应答机制4.2超时重传机制5.TCP链接管理机制5.1经典面试题:为什么建立连接是三次握手?5.2经典面试题:为什么要进行四次挥手?6.流量控制7.滑动窗口机制8.拥塞控制9.......
  • 【Linux】网络架构探秘:网络层功能、IP协议详解及路由过程指南
    文章目录前言:1.网络层是干什么的?2.IP协议2.1理论铺垫2.2IP协议的头格式2.3网段划分(重点)2.3.1分类划分法:2.3.2子网掩码:2.3.3为什么要经行子网划分?2.4特殊的IP地址2.5IP地址的数量限制2.6私有IP地址和公网IP地址3.路由过程总结:前言:在当今数字化时代......