处理内存不足、开启自动挂载、df和du命令详解

 

 

一、内存不足

我的内存被吃了,无辜提示内存不足怎么办,但是在cache,buff中有看到大量的内存,如何释放

解决方案:

 

1、第一种方案

注意:以下三种都是临时释放缓存的命令

(1)命令:echo 1 > /proc/sys/vm/drop_caches

[root@WALKER ~]# free -m
                    total        used        free      shared  buff/cache   available
Mem:           2827         221        2410           9         195        2452
Swap:          3071           0        3071
[root@WALKER ~]# echo 1 > /proc/sys/vm/drop_caches
[root@WALKER ~]# free -m
                    total        used        free      shared  buff/cache   available
Mem:           2827         222        2543           9          61        2491
Swap:          3071           0        3071

[root@WALKER ~]# sysctl -w vm.drop_caches=1(两天命令作用相同!)
vm.drop_caches = 1
[root@WALKER ~]#

 

(2)清除目录缓存和inodes

[root@WALKER ~]# echo 2 > /proc/sys/vm/drop_caches

[root@WALKER ~]# sysctl -w vm.drop_caches=2(两条命令作用相同)
vm.drop_caches = 2
[root@WALKER ~]#

(3)清除内存页的缓存(如果buff和cache正在使用,这条命令是不可以用的!)

[root@WALKER ~]# echo 3> /proc/sys/vm/drop_caches

[root@WALKER ~]# sysctl -w vm.drop_caches=2(两条命令作用相同)

 

 

2、永久生效

编辑etc下的sysctl.conf文件,把命令写入其中!

[root@WALKER ~]# vim /etc/sysctl.conf
[root@WALKER ~]#

 

 

3、清理文件系统缓存

使用sync命令,可以用于清理僵尸进程!

 

[root@WALKER ~]# sync

 

sync命令的作用:将内存缓冲区的数据,写入到磁盘中!

 

 

二、开机自动挂载文件

 

由于mount命令直接输入是临时生效的,下次重启,挂载的设备就无法使用了!

/etc/fstab文件,是存放系统的一些静态文件地方,主要是系统启动的时候,系统默认的读取这个文件的信息,将指定挂载点进行挂载!

 

 

 

 

解析如上的参数:

第一列:是一个设备的名字,可以是文件系统,也可以是设备名称,NFS文件系统

 

mount   /dev/sdb1   /mnt   这是一种写法

mount   192.168.1.3:/home/nfs   /mnt/  -o  nolock   把本地的/mnt文件夹挂载到nfs文件系统上,且不加锁!

 

第二列:挂载点

就是自己创建的目录,或者已经存在的目录

 

第三列:linux能够支持的文件系统类型

 

第四列:挂载的功能选项,有很多,默认使用defaults

 

第五列:dump

表示将整个文件夹备份,一般不对挂载点备份,默认都是0

 

第六列:fsck  磁盘检查

默认都是0,不对磁盘进行检查,但是根文件系统,默认是检查的!

 

通过mount -a命令,可以读取/etc/fstab文件所有挂载情况,之后用mount -l 可以查看到!

 

三、df命令,检查挂载点

 

1、df命令,检查挂载点的使用情况

可使用的命令参数是

-h:显示kb,mb 单位大小

-i:显示inode数量

 

2、du命令,显示磁盘空间大小、文件大小的命令

 

linux文件存储最小单位是4K,也就是8个扇区

 

(1)du -h  显示文件大小,以kb mb为显示单位

 

[root@WALKER tmp]# touch test.txt
[root@WALKER tmp]# du -h test.txt
0       test.txt
[root@WALKER tmp]# echo 1 > test.txt
[root@WALKER tmp]# du -h test.txt
4.0K    test.txt
[root@WALKER tmp]# du -h * (显示当前文件夹下所有文件大小)

(2)du -ah  显示目录中所有文件的大小

du -ah *

[root@WALKER tmp]# du -ah --max-depth=1 /home/
12K     /home/slime
1.1M    /home/nginx-1.20.2.tar.gz
20M     /home/nginx-1.20.2
21M     /home/
[root@WALKER tmp]#

[root@WALKER tmp]# du -ah *(显示当前目录下所有文件大小)

[root@WALKER tmp]# du -ah --max-depth=2 /home/(统计home目录下第二层文件夹的大小)

[root@WALKER tmp]# du -ah --exclude='*.conf' /home(统计home目录下所有文件大小,除了以.conf结尾的文件)

 

posted @ 2022-05-19 12:07  屯子里唯一的架构师  阅读(418)  评论(0编辑  收藏  举报