Loading... # linux 虚拟内存 ## `CentOS7`开启`swap`分区 场景: 华为云购买的机器,默认不会开启`swap`分区,服务器运行内存只有`4GB`,不满足使用,开启`swap`交换分区 ## 开启步骤 ### 1、**开启`swap`分区** 新建一个专门的文件用于`swap`分区 ```bash mkdir /data/ dd if=/dev/zero of=/data/swap bs=1024 count=8388616 ``` 注:此文件的大小是`count`的大小乘以`bs`大小,上面命令的大小是`8GB` ### 2、**通过`mkswap`命令将上面新建出的文件做成`swap`分区** ```bash mkswap /data/swap ``` ### 3、**查看内核参数`vm.swappiness`** 若`vm.swappiness`为`0`则根据实际需要调整成`30`或者`60`, 若就是60,则直接跳到第四步 ```bash # 查看参数值 方式一 cat /proc/sys/vm/swappiness # 查看参数值 方式二 sysctl -a | grep swappiness # 临时修改(重启失效) sysctl -w vm.swappiness=60 ``` > 注:若想永久修改,则编辑`/etc/sysctl.conf`文件 > > ```sh > vim /etc/sysctl.conf > # 最后面添加一行 > vm.swappiness=60 > ``` ### 4、**启用此交换分区的交换功能** ```bash # 如果需要一直保持这个 swap ,可以把它写入 /etc/fstab 文件 echo "/data/swap swap swap defaults 0 0" >> /etc/fstab ``` ![image.png](http://type.zimopy.com/usr/uploads/2023/02/367928919.png) 现在就已经开启成功了 ### 5、**关闭`swap`分区** ```bash swapoff /data/swap swapoff -a >/dev/null ``` ### 6、**重新激活`swap`分区,没有写入系统配置文件中,系统重启后,就需要重新激活** ```bash sudo swapon /swap/swapfile free -h ``` ![image.png](http://type.zimopy.com/usr/uploads/2023/02/720831949.png) ### 7、**关机重启确认`Swap`大小** ```bash free -m # 或者 htop ``` # 系统压力测试 # [Linux系统压力测试工具stress](https://www.cnblogs.com/jiftle/p/12904248.html) > **可以先运行 htop** linux系统下,可以使用stress 命令主要用来模拟系统负载较高时的场景,本文介绍其基本用法。文中 demo 的演示环境为 ubuntu 18.04。 ## 基本语法 语法格式: **stress <options>** 常用选项: **-c, --cpu N** 产生 N 个进程,每个进程都反复不停的计算随机数的平方根 **-i, --io N** 产生 N 个进程,每个进程反复调用 sync() 将内存上的内容写到硬盘上 **-m, --vm N** 产生 N 个进程,每个进程不断分配和释放内存 **--vm-bytes B** 指定分配内存的大小 **--vm-stride B** 不断的给部分内存赋值,让 COW(Copy On Write)发生 **--vm-hang N** 指示每个消耗内存的进程在分配到内存后转入睡眠状态 N 秒,然后释放内存,一直重复执行这个过程 **--vm-keep** 一直占用内存,区别于不断的释放和重新分配(默认是不断释放并重新分配内存) **-d, --hadd N** 产生 N 个不断执行 write 和 unlink 函数的进程(创建文件,写入内容,删除文件) **--hadd-bytes B** 指定文件大小 **-t, --timeout N** 在 N 秒后结束程序 **--backoff N** 等待N微妙后开始运行 **-q, --quiet** 程序在运行的过程中不输出信息 **-n, --dry-run** 输出程序会做什么而并不实际执行相关的操作 **--version** 显示版本号 **-v, --verbose** 显示详细的信息 ## 安装 stress Ubuntu 系统默认没有安装 stress,需要通过下面的命令安装: ```bash $ sudo apt install stress $ stress --version ``` ## 消耗 CPU 资源 stress 消耗 CPU 资源的方式是通过调用 sqrt 函数计算由 rand 函数产生的随机数的平方根实现的。下面的命令会产生 4 个这样的进程不断的进行计算: ```bash $ stress -c 4 ``` 使用 top 命令查看 CPU 的状态如下(CPU 在用户态满负荷运转): ## 消耗内存资源 下面的命令产生两个子进程,每个进程分配 300M 内存: ```bash # 2表示两个进程 $ stress --vm 2 --vm-bytes 300M --vm-keep ``` ## 压测磁盘及 IO 下面的命令创建一个进程不断的在磁盘上创建 10M 大小的文件并写入内容: ```bash $ stress -d 1 --hdd-bytes 10M ``` 最后修改:2023 年 02 月 06 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏