处理内存不足、开启自动挂载、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结尾的文件)