lsof__强大的系统监控、诊断命令

lsof 意思是‘List Open Files’它可以列出各种进程打开的文件的信息,centos6.4中默认是不带lsof这个命令的.要想使用它首先的通过yum -y install lsof 安装。

lsof 默认不带任何参数,将输出所有进程打开的所有文件.当然这个不是我们所需要的

1.lsof  文件名|设备名:    查看文件、设备被哪些进程使用

lsof /usr/local/tomcat/conf/server.xml

2.出某个目录下被打开的文件

lsof +D /var/log

3.指定进程号查看该进程打开的文件

lsof -p 1612

4.查看指定用户所打开的所有进程跟文件

lsof -u root

5.查看指定端口有哪些进程在使用

lsof -i:22

6.例出所有的tcp、udp连接

lsof -i tcp

lsof -i upd

7.查看指定网口有哪些进程在使用

lsof [email protected]

8.查看指定程序打开的文件

lsof -c java

9.lsof 组合逻辑查询

-a 与

-o 或

^ 非

lsof -a -u mysql -c java

lsof -o -u mysql -c java

lsof -u ^root

10.生产环境中用lsof解决问题的一则案例

朋友前段时间跟我说他有台服务器/dev/sda1挂载的那个目录满了,然后他清了一批日志之类的东西,过了不久又满了。他用df -h查看确实使用率为100%,容量50G使用50G ,而当他用du -sh  /dev/sda1的时候,使用才20多G,但是确实是写不进去文件了..

让他用lsof -n | grep deleted 看一下,该命令会把所有未释放文件句柄的进程例出来.朋友一查,mongodb 日志占了20多G.重启mongodb进程,把日志配置到磁盘容量大的目录,然后做日志滚动问题解决。

为什么df命令跟du命令会出有如此大的差异呢?这就跟他们的实现原理有关系了.

du 命令根据指定文件系统中的所有目录、符号连接、和文件使用的块数累加得到文件系统使用容量的总和,文件系统记录自身的数据如i节点、磁盘分布图、超级块等等这些数据du命令是不统计的。du命令是用户级程序,只能获取文件系统的部分情况.

df命令则是通过磁盘分布图得出的总块数和使用块数,获得的是真正的文件系统数据.linux下面文件只是一个指向inode的链接,inode链接包含了文件的所有属性,如权限和所有者等,当我们删除一个文件,实际上只是删除了指向inode的链接,并没有删除inode的内容,前面引用的进程还可以引用,只有当链接完全移除,这些inode才能被写入新的内容。

时间: 2024-10-06 00:28:13

lsof__强大的系统监控、诊断命令的相关文章

Linux 系统监控诊断命令—lsof

lsof命令 lsof(list open files)是一个列出当前系统打开文件的工具.系统在后台为应用程序分配了独立的文件 描述符,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口,描述符提供了大量关于 这个应用程序本身的信息,通过lsof命令能够查看这个列表,常常用于对系统监测诊断排错 [[email protected]~]# lsof COMMAND  PID     USER   FD    TYPE   DEVICE SIZE/OFF      NODE NAME in

强大的系统监控sar 命令

?sar命令常用格式 ? sar [options] [-A] [-o file] t [n] 其中:   t为采样间隔,n为采样次数,默认值是1: -o file表示将命令结果以二进制格式存放在文件中,file 是文件名. options 为命令行选项,sar命令常用选项如下: -A:所有报告的总和 -u:输出CPU使用情况的统计信息 -v:输出inode.文件和其他内核表的统计信息 -d:输出每一个块设备的活动信息 -r:输出内存和交换空间的统计信息 -b:显示I/O和传送速率的统计信息 -

Linux 系统监控常用命令

简介 列举操作系统级监控常用的几个方法,建议收藏使用 CPU top 命令可用于监控系统整体负载,包括cpu.内存使用等,能够实时显示系统中各个进程的资源占用状况 输出样例 top - 19:37:41 up 192 days, 9:14, 1 user, load average: 0.39, 0.28, 0.27 Tasks: 126 total, 1 running, 125 sleeping, 0 stopped, 0 zombie Cpu(s): 0.1%us, 0.1%sy, 0.0

LINUX系统监控常用命令

1.进程监控(TOP) Linux下的Top命令是一个性能监控程序,用来监控Linux性能,在许多Linux或者类Unix操作系统里都有这个命令. Top命令用于按一定的顺序显示所有正在运行而且处于活动状态的实时进程,而且会定期更新显示结果.这条命令显示了CPU的使用率.内存使用率.交换内存使用大小.高速缓存使用大小.缓冲区使用大小,进程PID.所使用命令以及其他.它还可以显示正在运行进程的内存和CPU占用多的情况. 进程PID,进程用户,CPU使用率,内存使用率.交换内存使用大小等等信息.to

NO.7day系统监控,硬盘分区和文件系统管理

系统监控,硬盘分区和文件系统管理 1.系统监控 top命令:top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.默认每5秒刷新屏幕数据. top pid  进程id  ppid 父进程id free命令:显示内存的使用状态 buffer是用于存放要输出到disk(块设备)的数据的,而cache是存放从disk上读出的数据.这二者是为了提高IO性能的,并由OS管理.实际系统可用内存应该以available数据为准. ps命令:进程

Linux 系统监控、诊断工具-top,vmstat,iostat,iotop

1.问题: 最近在做日志的实时同步,上线之前是做过单份线上日志压力测试的,消息队列和客户端.本机都没问题,但是没想到上了第二份日志之后,问题来了: 集群中的某台机器 top 看到负载巨高,集群中的机器硬件配置一样,部署的软件都一样,却单单这一台负载有问题,初步猜测可能硬件有问题了. 同时,我们还需要把负载有异常的罪魁祸首揪出来,到时候从软件.硬件层面分别寻找解决方案. 2.排查: 从 top 中可以看到 load average 偏高,%wa 很高,%us 偏低: 从上图我们大致可以推断 IO

linux系统监控、诊断工具摘录top IO wait lsof

linux 系统监控.诊断工具之 top 详解 http://my.oschina.net/leejun2005/blog/157910 linux系统监控.诊断工具之 IO wait http://my.oschina.net/leejun2005/blog/355915 linux 系统监控.诊断工具之 lsof 用法简介 http://my.oschina.net/leejun2005/blog/153584 CPU Load过高问题分析和解决方案 http://yikebocai.com

linux 系统监控、诊断工具之 IO wait

1.问题: 最近在做日志的实时同步,上线之前是做过单份线上日志压力测试的,消息队列和客户端.本机都没问题,但是没想到上了第二份日志之后,问题来了: 集群中的某台机器 top 看到负载巨高,集群中的机器硬件配置一样,部署的软件都一样,却单单这一台负载有问题,初步猜测可能硬件有问题了. 同时,我们还需要把负载有异常的罪魁祸首揪出来,到时候从软件.硬件层面分别寻找解决方案. 2.排查: 从 top 中可以看到 load average 偏高,%wa 偏高,%us 很低: 充分说明这个问题是由于 IO

[转]linux 系统监控、诊断工具之 IO wait

1.问题: 最近在做日志的实时同步,上线之前是做过单份线上日志压力测试的,消息队列和客户端.本机都没问题,但是没想到上了第二份日志之后,问题来了: 集群中的某台机器 top 看到负载巨高,集群中的机器硬件配置一样,部署的软件都一样,却单单这一台负载有问题,初步猜测可能硬件有问题了. 同时,我们还需要把负载有异常的罪魁祸首揪出来,到时候从软件.硬件层面分别寻找解决方案. 2.排查: 从 top 中可以看到 load average 偏高,%wa 很高,%us 偏低: 从上图我们大致可以推断 IO