linux性能监控之lsof

        lsof:list open files,显示所有打开的文件以及进程信息,我们通常用来检查特定的文件被哪些进程打开

[root@k8s-master ~]# lsof --help
lsof: illegal option character: -
lsof: -e not followed by a file system path: "lp"
lsof 4.87latest revision: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/latest FAQ: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/FAQlatest man page: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_manusage: [-?abhKlnNoOPRtUvVX] [+|-c c] [+|-d s] [+D D] [+|-f[gG]] [+|-e s][-F [f]] [-g [s]] [-i [i]] [+|-L [l]] [+m [m]] [+|-M] [-o [o]] [-p s]
[+|-r [t]] [-s [p:s]] [-S [t]] [-T [t]] [-u s] [+|-w] [-x [fl]] [--] [names]
Defaults in parentheses; comma-separated set (s) items; dash-separated ranges.-?|-h list help          -a AND selections (OR)     -b avoid kernel blocks-c c  cmd c ^c /c/[bix]  +c w  COMMAND width (9)    +d s  dir s files-d s  select by FD set   +D D  dir D tree *SLOW?*   +|-e s  exempt s *RISKY*-i select IPv[46] files  -K list tasKs (threads)    -l list UID numbers-n no host names         -N select NFS files        -o list file offset-O no overhead *RISKY*   -P no port names           -R list paRent PID-s list file size        -t terse listing           -T disable TCP/TPI info-U select Unix socket    -v list version info       -V verbose search+|-w  Warnings (+)       -X skip TCP&UDP* files     -Z Z  context [Z]-- end option scan     +f|-f  +filesystem or -file names     +|-f[gG] flaGs -F [f] select fields; -F? for help  +|-L [l] list (+) suppress (-) link counts < l (0 = all; default = 0)+m [m] use|create mount supplement+|-M   portMap registration (-)       -o o   o 0t offset digits (8)-p s   exclude(^)|select PIDs         -S [t] t second stat timeout (15)-T qs TCP/TPI Q,St (s) info-g [s] exclude(^)|select and print process group IDs-i i   select by IPv[46] address: [46][proto][@host|addr][:svc_list|port_list]+|-r [t[m<fmt>]] repeat every t seconds (15);  + until no files, - forever.An optional suffix to t is m<fmt>; m must separate t from <fmt> and<fmt> is an strftime(3) format for the marker line.-s p:s  exclude(^)|select protocol (p = TCP|UDP) states by name(s).-u s   exclude(^)|select login|UID set s-x [fl] cross over +d|+D File systems or symbolic Linksnames  select named files or files on named file systems
Anyone can list all files; /dev warnings disabled; kernel ID check disabled.

选项说明:

-a

列出打开文件存在的进程
-c<进程名>列出指定进程所打开的文件
-g列出GID号进程详情
-d<文件号>列出占用该文件号的进程
+d<目录>列出目录下被打开的文件
+D<目录>递归列出目录下被打开的文件
-n<目录>列出使用NFS的文件
-i<条件>列出符合条件的进程。(4、6、协议、:端口、 @ip )
-p<进程号>列出指定进程号所打开的文件
-u列出UID号进程详情

COMMAND命令名称
PID进程ID
TID线程ID,如果为空代表列出的是进程
USER用户ID号或登录名
FD文件描述符
TYPE与文件关联结点的类型
DEVICE设备号
SIZE/OFF文件大小/偏移量,以字节为单位
NODE文件结点
NAME文件挂载点和文件所在的系统

我们常用的命令组合:

         1.列出所有打开的文件:lsof | more

[root@k8s-master ~]# lsof | more
COMMAND      PID   TID           USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME
systemd        1                 root  cwd       DIR                8,3       244         64 /
systemd        1                 root  rtd       DIR                8,3       244         64 /
systemd        1                 root  txt       REG                8,3   1632960   17033053 /usr/lib/systemd/systemd
systemd        1                 root  mem       REG                8,3     20064     167261 /usr/lib64/libuuid.so.1.3.0
systemd        1                 root  mem       REG                8,3    265576    1183915 /usr/lib64/libblkid.so.1.1.0
systemd        1                 root  mem       REG                8,3     90160     167255 /usr/lib64/libz.so.1.2.7
systemd        1                 root  mem       REG                8,3    157440     167263 /usr/lib64/liblzma.so.5.2.2
systemd        1                 root  mem       REG                8,3     23968     167346 /usr/lib64/libcap-ng.so.0.0.0
systemd        1                 root  mem       REG                8,3     19896     180865 /usr/lib64/libattr.so.1.1.0
systemd        1                 root  mem       REG                8,3     19248     164854 /usr/lib64/libdl-2.17.so
systemd        1                 root  mem       REG                8,3    402384     167265 /usr/lib64/libpcre.so.1.2.0
systemd        1                 root  mem       REG                8,3   2156592     164847 /usr/lib64/libc-2.17.so
systemd        1                 root  mem       REG                8,3    142144     165873 /usr/lib64/libpthread-2.17.so

        2.列出特定文件系统打开的文件:lsof /poc

[root@k8s-master ~]# lsof /proc
COMMAND      PID  USER   FD   TYPE DEVICE SIZE/OFF       NODE NAME
systemd        1  root    9r   REG    0,3        0        300 /proc/1/mountinfo
systemd        1  root   11r   REG    0,3        0 4026532019 /proc/swaps
systemd-j    384  root    9r   REG    0,3        0        446 /proc/sys/kernel/hostname
udisksd      594  root    8r   REG    0,3        0      28850 /proc/594/mountinfo
udisksd      594  root    9r   REG    0,3        0 4026532019 /proc/swaps
rtkit-dae    646 rtkit  cwd    DIR    0,3        0          1 /proc
rtkit-dae    646 rtkit  rtd    DIR    0,3        0          1 /proc
libvirtd     972  root   19w   REG    0,3        0 4026531960 /proc/mtrr
dockerd     1287  root   11r   REG    0,3        0 4026531956 net
X           1490  root    9w   REG    0,3        0 4026531960 /proc/mtrr
X           1490  root   10w   REG    0,3        0 4026531960 /proc/mtrr
gnome-she   1778   gdm   28r   REG    0,3        0      40875 /proc/1778/mountinfo
packageki   1937  root   10r   REG    0,3        0      40842 /proc/1937/mountinfo
lsof      119641  root    3r   DIR    0,3        0          1 /proc
lsof      119641  root    6r   DIR    0,3        0    2160211 /proc/119641/fd

        3.列出root用户打开的文件: lsof -u root | more

[root@k8s-master ~]# lsof -u root | more
COMMAND      PID USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME
systemd        1 root  cwd       DIR                8,3       244         64 /
systemd        1 root  rtd       DIR                8,3       244         64 /
systemd        1 root  txt       REG                8,3   1632960   17033053 /usr/lib/systemd/systemd

        4.列出所有打开的 IPv4 网络文件:lsof -i 4

[root@k8s-master ~]# lsof -i 4
COMMAND      PID   USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
rpcbind      597    rpc    6u  IPv4   23732      0t0  UDP *:sunrpc 
rpcbind      597    rpc    7u  IPv4   23784      0t0  UDP *:webster 
rpcbind      597    rpc    8u  IPv4   23785      0t0  TCP *:sunrpc (LISTEN)
avahi-dae    612  avahi   12u  IPv4   25053      0t0  UDP *:mdns 
avahi-dae    612  avahi   13u  IPv4   25054      0t0  UDP *:60388 
sshd         946   root    3u  IPv4   30305      0t0  TCP *:ssh (LISTEN)
cupsd        961   root   11u  IPv4   33818      0t0  TCP localhost:ipp (LISTEN)
container    968   root   15u  IPv4   34287      0t0  TCP localhost:45763 (LISTEN)
dovecot     1047   root   25u  IPv4   32668      0t0  TCP *:pop3 (LISTEN)

        5.列出在特定端口上运行的所有 TCP 和 UDP 进程:lsof -i TCP/UDP:port

[root@k8s-master ~]# lsof -i TCP:6443
COMMAND    PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
kubelet   2050 root   21u  IPv4   49332      0t0  TCP mail.linux.com:35288->mail.linux.com:sun-sr-https (ESTABLISHED)
kube-sche 2304 root    7u  IPv4   48456      0t0  TCP mail.linux.com:35298->mail.linux.com:sun-sr-https (ESTABLISHED)
kube-sche 2304 root    8u  IPv4   48619      0t0  TCP mail.linux.com:35490->mail.linux.com:sun-sr-https (ESTABLISHED)
kube-apis 2362 root    3u  IPv6   48445      0t0  TCP *:sun-sr-https (LISTEN)
kube-apis 2362 root   67u  IPv6   49518      0t0  TCP mail.linux.com:sun-sr-https->mail.linux.com:35288 (ESTABLISHED)
kube-apis 2362 root   68u  IPv6   49546      0t0  TCP mail.linux.com:sun-sr-https->mail.linux.com:35490 (ESTABLISHED)
kube-apis 2362 root   69u  IPv6   52350      0t0  TCP mail.linux.com:sun-sr-https->mail.linux.com:35498 (ESTABLISHED)

        6.查看指定设备的所有打开文件:lsof <device-name>

[root@k8s-master ~]# lsof /dev/sda3 |more
COMMAND      PID           USER   FD   TYPE DEVICE  SIZE/OFF     NODE NAME
systemd        1           root  cwd    DIR    8,3       244       64 /
systemd        1           root  rtd    DIR    8,3       244       64 /
systemd        1           root  txt    REG    8,3   1632960 17033053 /usr/lib/systemd/systemd
systemd        1           root  mem    REG    8,3     20064   167261 /usr/lib64/libuuid.so.1.3.0
systemd        1           root  mem    REG    8,3    265576  1183915 /usr/lib64/libblkid.so.1.1.0
systemd        1           root  mem    REG    8,3     90160   167255 /usr/lib64/libz.so.1.2.7
systemd        1           root  mem    REG    8,3    157440   167263 /usr/lib64/liblzma.so.5.2.2
systemd        1           root  mem    REG    8,3     23968   167346 /usr/lib64/libcap-ng.so.0.0.0

        7.列出与kube-api应用程序关联的打开文件:lsof -c kube-api

[root@k8s-master ~]# lsof -c kube-api
COMMAND    PID USER   FD      TYPE  DEVICE  SIZE/OFF     NODE NAME
kube-apis 2362 root  cwd       DIR    0,95        17 35602229 /
kube-apis 2362 root  rtd       DIR    0,95        17 35602229 /
kube-apis 2362 root  txt       REG    0,95 116572160 35602231 /usr/local/bin/kube-apiserver
kube-apis 2362 root  mem       REG     8,3           35602231 /usr/local/bin/kube-apiserver (stat: No such file or directory)
kube-apis 2362 root    0u      CHR     1,3       0t0    49190 /dev/null
kube-apis 2362 root    1w     FIFO     0,9       0t0    48104 pipe
kube-apis 2362 root    2w     FIFO     0,9       0t0    48105 pipe
kube-apis 2362 root    3u     IPv6   48445       0t0      TCP *:sun-sr-https (LISTEN)
kube-apis 2362 root    4u  a_inode    0,10         0     7512 [eventpoll]
kube-apis 2362 root    5r     FIFO     0,9       0t0    48433 pipe
kube-apis 2362 root    6w     FIFO     0,9       0t0    48433 pipe
kube-apis 2362 root    7u     IPv4   48451       0t0      TCP localhost:35190->localhost:2379 (ESTABLISHED)
kube-apis 2362 root    8u     IPv4   48457       0t0      TCP localhost:35196->localhost:2379 (ESTABLISHED)
kube-apis 2362 root    9u     IPv4   49417       0t0      TCP localhost:35198->localhost:2379 (ESTABLISHED)
kube-apis 2362 root   10u     IPv4   48485       0t0      TCP localhost:35212->localhost:2379 (ESTABLISHED)
kube-apis 2362 root   11u     IPv4   49444       0t0      TCP localhost:35218->localhost:2379 (ESTABLISHED)

        8.列出属于某个进程 ID 的所有进程: lsof -p $pid

[root@k8s-master ~]# lsof -p 2362
COMMAND    PID USER   FD      TYPE  DEVICE  SIZE/OFF     NODE NAME
kube-apis 2362 root  cwd       DIR    0,95        17 35602229 /
kube-apis 2362 root  rtd       DIR    0,95        17 35602229 /
kube-apis 2362 root  txt       REG    0,95 116572160 35602231 /usr/local/bin/kube-apiserver
kube-apis 2362 root  mem       REG     8,3           35602231 /usr/local/bin/kube-apiserver (stat: No such file or directory)
kube-apis 2362 root    0u      CHR     1,3       0t0    49190 /dev/null
kube-apis 2362 root    1w     FIFO     0,9       0t0    48104 pipe
kube-apis 2362 root    2w     FIFO     0,9       0t0    48105 pipe
kube-apis 2362 root    3u     IPv6   48445       0t0      TCP *:sun-sr-https (LISTEN)
kube-apis 2362 root    4u  a_inode    0,10         0     7512 [eventpoll]
kube-apis 2362 root    5r     FIFO     0,9       0t0    48433 pipe
kube-apis 2362 root    6w     FIFO     0,9       0t0    48433 pipe

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/697654.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python探索之旅】选择结构(条件语句)

文章目录 条件结构&#xff1a; 1.1 if单分支结构 1.2 if-else 多分支结构 1.3 if-elif 多重结构&#xff1a; 完结撒花​ 前言 Python条件语句是通过一条或多条语句的执行结果&#xff08;True或者False&#xff09;来决定执行的代码块。 Python提供了顺序、选择、循环三…

OpenSSL自签证书并基于Express搭建Web服务进行SSL/TLS协议分析

OpenSSL自签证书并基于Express搭建Web服务进行SSL/TLS协议分析 起因 最近在学习安全协议&#xff0c;大多数实验都是基于Windows下IIS&#xff0c;或者Linux下nginx搭建的Web服务&#xff0c;搭建环境和编写配置文件比较麻烦。而且我有多个不同环境的设备&#xff0c;折腾起来…

01-02-4

1、中级阶段-day1作业 使用的代码 #include<stdio.h> typedef struct Student {int num;char name[20];char sex; }Stu; int main() {Stu s;scanf("%d%s %c", &s.num, s.name, &s.sex);//读取字符串时&#xff0c;scanf()的占位符用%s即可&#xff0c…

【错误的集合】力扣python

最初想法 def findErrorNums(nums):n len(nums)duplicate -1missing -1for num in nums:if nums[abs(num) - 1] < 0:duplicate abs(num)else:nums[abs(num) - 1] * -1for i in range(n):if nums[i] > 0:missing i 1breakreturn [duplicate, missing] 遇到力扣大佬…

【自动驾驶技术栈学习】1-硬件《大话自动驾驶》| 综述要点总结 by.Akaxi

----------------------------------------------------------------------------------------------------------------- 致谢&#xff1a;感谢十一号线人老师的《大话自动驾驶》书籍&#xff0c;收获颇丰 链接&#xff1a;大话自动驾驶 (豆瓣) (douban.com) -------------…

GPU性能实时监控的几种软件

在深度学习服务器上&#xff0c;各种模型的训练&#xff0c;需要监控GPU的情况&#xff0c;并且需要根据使用状态来切换不同的GPU上。 有以下四款软件&#xff0c;可以很好的进行GPU状态监控。 1. nvidia-smi 一个跨平台工具&#xff0c;用于监控和管理NVIDIA GPU的状态和性…

【数据结构】栈和队列OJ面试题

20. 有效的括号 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a;由于C语言没有栈的接口&#xff0c;所以我们需要自己造一个“模子”。我们直接copy之前的实现的栈的接口就可以了&#xff08;可以看我之前的博客【数据结构】栈和队列-CSDN博客copy接口&#xff09;&…

Linux进程间几种通信机制

一. 简介 经过前一篇文章的学习&#xff0c; 我们知道Linux下有两种标准&#xff1a;system V标准和 Posix标准。 System V 和 POSIX 标准是操作系统提供的接口标准&#xff0c;它们规定了操作系统应该如何实现一些基本功能&#xff0c;比如线程、进程间通信、文件处理等。 …

通过金山和微软虚拟打印机转换PDF文件,流程方法及优劣对比

文章目录 一、WPS/金山 PDF虚拟打印机1、常规流程2、PDF文件位置3、严重缺陷二、微软虚拟打印机Microsoft Print to Pdf1、安装流程2、微软虚拟打印机的优势一、WPS/金山 PDF虚拟打印机 1、常规流程 安装过WPS办公组件或金山PDF独立版的电脑,会有一个或两个WPS/金山 PDF虚拟…

校园志愿者管理系统带万字文档

文章目录 校园志愿者管理系统一、项目演示二、项目介绍三、10000字论文参考四、部分功能页面五、部分代码展示六、底部获取项目源码和万字论文参考&#xff08;9.9&#xffe5;带走&#xff09; 校园志愿者管理系统 一、项目演示 校园志愿者管理系统 二、项目介绍 基于Spring…

vue3中通过自定义指令实现loading加载效果

前言 在现代Web开发中&#xff0c;提升用户体验一直是开发者们追求的目标之一。其中&#xff0c;一个常见的场景就是在用户与应用程序进行交互时&#xff0c;特别是当进行异步操作时&#xff08;如网络请求&#xff09;&#xff0c;为用户提供即时的反馈&#xff0c;避免用户因…

利用香港多IP服务器进行大数据分析的潜在优势?

利用香港多IP服务器进行大数据分析的潜在优势? 在当今数据驱动的时代&#xff0c;大数据分析已经成为企业获取竞争优势的不二选择。而香港作为一个拥有世界级通信基础设施的城市&#xff0c;提供了理想的环境来部署多IP服务器&#xff0c;从而为大数据分析提供了独特的优势。…