Linux 查看内存和磁盘使用情况

目录

1. 查看内存情况

2. 查看磁盘情况

3. 查看文件或目录的磁盘空间使用情况

4. *典型场景

4.1. 前言

4.2. 场景

4.3. 原因

4.4. 措施

4.5. 参考


1. 查看内存情况

使用以下命令来查看系统内存大小:

> free -h
              total        used        free      shared  buff/cache   available
Mem:            15G         11G        244M        1.8G        3.6G        1.7G
Swap:            0B          0B          0B

这个命令的输出显示了系统的总内存(Total),已使用的内存(used)和可用的内存(available)。`-h`表示以人类可读的方式(即以K,M,G为单位)输出结果。

2. 查看磁盘情况

关于磁盘空间,您可以使用 `df` 命令来查看每个磁盘分区的空间使用情况:

> df -h
Filesystem      Size  Used Avail Use% Mounted on
none            2.0G  4.0K  2.0G   1% /mnt/wsl
none            233G  157G   76G  68% /usr/lib/wsl/drivers
/dev/sdb       1007G   20G  936G   3% /
none            2.0G   76K  2.0G   1% /mnt/wslg
none            2.0G     0  2.0G   0% /usr/lib/wsl/lib
rootfs          2.0G  2.1M  2.0G   1% /init
none            2.0G     0  2.0G   0% /dev
none            2.0G     0  2.0G   0% /run
none            2.0G     0  2.0G   0% /run/lock
none            2.0G     0  2.0G   0% /run/shm
none            2.0G     0  2.0G   0% /run/user
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
none            2.0G   76K  2.0G   1% /mnt/wslg/versions.txt
none            2.0G   76K  2.0G   1% /mnt/wslg/doc
drvfs           233G  157G   76G  68% /mnt/c
drvfs           122G   59G   63G  49% /mnt/d
drvfs           121G   84G   38G  70% /mnt/e

这个命令的输出显示了每个分区的总空间(size),已使用的空间(used)和可用的空间(avail)。`-h`同样表示以人类可读的方式输出结果。

3. 查看文件或目录的磁盘空间使用情况

# 查看当前目录的空间使用情况
> du -sh .
# 查看当前目录中所有子目录的空间使用情况
> du -sh *
  • -h:以人类可读的格式(如 K, M, G)显示文件大小。
  • -s:只显示总计,而不显示每个子目录的大小。
  • -d:指定目录的深度。例如 -d 0 只显示总计, -d 1 显示顶层目录和总计。

4. *典型场景

4.1. 前言

        在使用Docker启动应用的场景中,有些应用,比如数据库等,在运行过程中(尤其是大量数据插入的情况下)需要足够的内存和磁盘。当你需要在宿主机上运行这样一个应用容器,需要使用上述命令查看内存、磁盘情况,并按需设置。

4.2. 场景

        启动一个mongo应用容器,在运行大批量数据导入过程中,这个容器突然crash了,日志也没有明显的错误,是戛然而止。

4.3. 原因

        日志没有显示明显的错误,而且突然中断,那很有可能是由于系统资源耗尽,比如内存不足导致的。容器启动后,在运行时(尤其是大量读写,例如上面提到的数据库等应用),内存会随着处理高峰而增长。但是宿主机的内存是有限的,在Linux系统中,当系统内存不足时,内核会触发一个叫做OOM Killer(Out of Memory Killer)的机制,自动结束一些进程来释放内存。这通常是最后的手段来防止系统完全无响应。你可以通过查看系统日志来确认这一点,最常用的命令是 dmesg。运行 dmesg 命令后,查看输出信息中是否有OOM相关的信息。比如:

> dmesg | grep -i 'oom'

这个命令会搜索dmesg输出中所有包含"oom"(不区分大小写)的行,如果你看到像"Out of memory: Kill process 12345 (mongo)"这样的信息,那就说明是OOM Killer杀掉了你的进程。

4.4. 措施

        在宿主机上使用Docker启动应用容器时,先使用上述的1/2章节命令,然后再设定容器的内存使用,如下:

# 在启动时设置容器的内存上限为3g
docker run --memory=3g --name ${your_app_name} ...

4.5. 参考

ChatGPT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值