Linux 内存相关操作

环境信息

  • Centos 7

内存压力测试工具

memtester

使用 docker 运行工具

$ docker run --rm -it dockerpinata/memtester:1 memtester
memtester version 4.3.0 (64-bit)
Copyright (C) 2001-2012 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 4096
pagesizemask is 0xfffffffffffff000
need memory argument, in MB

Usage: memtester [-p physaddrbase [-d device]] <mem>[B|K|M|G] [loops]

stress 工具

stress 是一个用于模拟系统负载的工具,可以使用它来创建临时的内存负载。通过模拟负载,系统将使用更多的内存。

yum install -y stress

使用以下命令可以创建一个临时的内存负载

stress --vm 1 --vm-bytes <MEMORY_SIZE>

dd

dd 命令可以用于创建大文件并占用磁盘空间,从而间接提升系统的内存使用率。您可以使用以下命令创建一个指定大小的临时文件

dd if=/dev/zero of=tempfile bs=1M count=<MEMORY_SIZE>

tmpfs

Linux 中 tmpfs 是一种基于内存的临时文件系统,它将内存作为存储介质,可以在需要快速读写文件的场景下使用。

注意事项

  • tmpfs 是基于内存的临时文件系统,因此上面的数据在系统重启后将丢失
  • tmpfs 文件系统使用的内存达到上限值,写入操作会失败,因此需要确保分配给 tmpfs 文件系统使用的内存适合需求
  • 要确保系统有足够的可用内存来支持挂载 tmpfs 文件系统。

tmpfs 使用步骤

  1. 创建一个目录作为文件系统挂载点
    mkdir /mnt/ramdisk/
  2. 使用 mount 命令以 tmpfs 的类型挂载文件系统
    mount -t tmpfs -o size=1G tmpfs /mnt/ramdisk/
    这将在 /mnt/ramdisk 目录下挂载一个 1GB 大小的 tmpfs 文件系统。根据需要调整 size 参数的值。之后便可以像操作其他文件系统一样在 /mnt/ramdisk 目录下读写文件。任何写入该目录的数据都将存储在内存中。