lsof 命令用法:查看已删除空间却没有释放的进程

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL DuckDB 分析主实例,集群系列 8核16GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

查看已经删除的文件,空间有没有释放,没有的话kill掉pid

lsof -n |grep deleted


lsof简介lsof(list open files)是一个列出当前系统打开文件的工具。


问题描述:

服务报警根分区使用率超过95%,上来查看发现96%使用率;

wKiom1lHd_DBY8mrAAALkx0jBwc936.png-wh_50

但是/分区下面的目录,每个查询加起来也不到4G空间,多出来的40G不知道在哪里?

find查询也没有找到大文件;


分析原因:

可能是系统进程占用的空间没有释放掉,导致的;

通过命令查看发现,php进程一共有3个,都是处于deleted状态,文件大小刚好是40G,正好是多出来的空间,找到问题所在;


解决办法:

找到对应的php进程号,kill掉即可;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@host127 WebServer] # lsof -n / |grep deleted
mysqld     2660   mysql    4u   REG    8,2           0  524290  /tmp/ibSF7sXt  (deleted)
mysqld     2660   mysql    5u   REG    8,2           0  524305  /tmp/ibCCM4u4  (deleted)
mysqld     2660   mysql    6u   REG    8,2           0  524309  /tmp/ibKuAG2E  (deleted)
mysqld     2660   mysql    7u   REG    8,2           0  524315  /tmp/ibcLe4Bf  (deleted)
mysqld     2660   mysql   11u   REG    8,2           0  524316  /tmp/ibW2n1iQ  (deleted)
php        7045    root    0r   REG    8,2        1172  524374  /tmp/sh-thd-1494029191  (deleted)
php        7045    root    2w   REG    8,2 42413952626  657428  /var/spool/at/spool/a0100c017bf37c  (deleted)
php        7054    root    0r   REG    8,2        1172  524374  /tmp/sh-thd-1494029191  (deleted)
php        7054    root    2w   REG    8,2 42413952626  657428  /var/spool/at/spool/a0100c017bf37c  (deleted)
php       12730    root    0r   REG    8,2        1172  524374  /tmp/sh-thd-1494029191  (deleted)
php       12730    root    2w   REG    8,2 42413952626  657428  /var/spool/at/spool/a0100c017bf37c  (deleted)
mysqld    17855   mysql    4u   REG    8,2           0  524384  /tmp/ibxBS5jf  (deleted)
mysqld    17855   mysql    5u   REG    8,2           0  524385  /tmp/ibmrNzfL  (deleted)
mysqld    17855   mysql    6u   REG    8,2           0  524386  /tmp/ibVDS3ah  (deleted)
mysqld    17855   mysql    7u   REG    8,2           0  524387  /tmp/ibx6YTrj  (deleted)
mysqld    17855   mysql   13u   REG    8,2           0  524388  /tmp/ibOhb8xQ  (deleted)



在对应的目录下并没有发现文件

[root@host127 WebServer]# ll /var/spool/at/spool/

总用量 0

[root@host127 WebServer]# kill -9 7045

[root@host127 WebServer]# kill -9 7054

[root@host127 WebServer]# kill -9 12730


再次查看发现没有php的进程

[root@host127 WebServer]# lsof -n / |grep deleted

mysqld     2660   mysql    4u   REG    8,2         0  524290 /tmp/ibSF7sXt (deleted)

mysqld     2660   mysql    5u   REG    8,2         0  524305 /tmp/ibCCM4u4 (deleted)

mysqld     2660   mysql    6u   REG    8,2         0  524309 /tmp/ibKuAG2E (deleted)

mysqld     2660   mysql    7u   REG    8,2         0  524315 /tmp/ibcLe4Bf (deleted)

mysqld     2660   mysql   11u   REG    8,2         0  524316 /tmp/ibW2n1iQ (deleted)

mysqld    17855   mysql    4u   REG    8,2         0  524384 /tmp/ibxBS5jf (deleted)

mysqld    17855   mysql    5u   REG    8,2         0  524385 /tmp/ibmrNzfL (deleted)

mysqld    17855   mysql    6u   REG    8,2         0  524386 /tmp/ibVDS3ah (deleted)

mysqld    17855   mysql    7u   REG    8,2         0  524387 /tmp/ibx6YTrj (deleted)

mysqld    17855   mysql   13u   REG    8,2         0  524388 /tmp/ibOhb8xQ (deleted)


查看空间已经恢复:

1
2
3
4
[root@host127 WebtServer] # df -h
文件系统      容量  已用  可用 已用%% 挂载点
/dev/sda2       49G  4.4G   42G  10%  /
tmpfs         16G    0   16G   0%  /dev/shm




本文转自 模范生 51CTO博客,原文链接:http://blog.51cto.com/mofansheng/1939816,如需转载请自行联系原作者
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
PHP
PHP的pcntl多进程用法实例
PHP使用PCNTL系列的函数也能做到多进程处理一个事务。
119 12
|
运维 监控 Java
使用jps命令查看Java进程
`jps`是Java开发者和系统管理员的得力助手,它简化了Java进程监控的过程,使得快速检查应用运行状态变得轻而易举。通过合理利用其提供的参数,可以高效地进行故障排查、性能监控及日常管理任务,确保Java应用稳定运行。
995 2
|
网络协议
Mac根据端口查询进程id的命令
这篇文章介绍了在Mac操作系统上如何使用两种命令来查询监听特定端口的进程ID。第一种方法是使用`netstat -anp tcp -v | grep 端口号`,例如`netstat -anp tcp -v | grep 80`,这将列出所有使用端口80的TCP连接及其相关信息。第二种方法是使用`lsof -P -n -i:端口号`,例如`lsof -P -n -i:8080`,这将显示使用指定端口的进程列表,包括进程ID、用户、文件描述符等信息。文章通过示例展示了如何使用这些命令,并提供了输出结果的截图。
983 2
|
Java Windows
【Azure Developer】Windows中通过pslist命令查看到Java进程和线程信息,但为什么和代码中打印出来的进程号不一致呢?
【Azure Developer】Windows中通过pslist命令查看到Java进程和线程信息,但为什么和代码中打印出来的进程号不一致呢?
203 1
|
Java 运维
开发与运维命令问题之使用jstack命令查看Java进程的线程栈如何解决
开发与运维命令问题之使用jstack命令查看Java进程的线程栈如何解决
205 2
|
应用服务中间件 nginx
cmd 杀掉 nginx后台进程 命令杀掉nginx后台 nginx 常用命令
cmd 杀掉 nginx后台进程 命令杀掉nginx后台 nginx 常用命令
1824 0
|
9月前
|
Linux 数据库 Perl
【YashanDB 知识库】如何避免 yasdb 进程被 Linux OOM Killer 杀掉
本文来自YashanDB官网,探讨Linux系统中OOM Killer对数据库服务器的影响及解决方法。当内存接近耗尽时,OOM Killer会杀死占用最多内存的进程,这可能导致数据库主进程被误杀。为避免此问题,可采取两种方法:一是在OS层面关闭OOM Killer,通过修改`/etc/sysctl.conf`文件并重启生效;二是豁免数据库进程,由数据库实例用户借助`sudo`权限调整`oom_score_adj`值。这些措施有助于保护数据库进程免受系统内存管理机制的影响。
|
9月前
|
Linux Shell
Linux 进程前台后台切换与作业控制
进程前台/后台切换及作业控制简介: 在 Shell 中,启动的程序默认为前台进程,会占用终端直到执行完毕。例如,执行 `./shella.sh` 时,终端会被占用。为避免不便,可将命令放到后台运行,如 `./shella.sh &`,此时终端命令行立即返回,可继续输入其他命令。 常用作业控制命令: - `fg %1`:将后台作业切换到前台。 - `Ctrl + Z`:暂停前台作业并放到后台。 - `bg %1`:让暂停的后台作业继续执行。 - `kill %1`:终止后台作业。 优先级调整:
660 5
|
运维 关系型数据库 MySQL
掌握taskset:优化你的Linux进程,提升系统性能
在多核处理器成为现代计算标准的今天,运维人员和性能调优人员面临着如何有效利用这些处理能力的挑战。优化进程运行的位置不仅可以提高性能,还能更好地管理和分配系统资源。 其中,taskset命令是一个强大的工具,它允许管理员将进程绑定到特定的CPU核心,减少上下文切换的开销,从而提升整体效率。
掌握taskset:优化你的Linux进程,提升系统性能
|
弹性计算 Linux 区块链
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
483 4
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)

热门文章

最新文章