2. 环境准备:Linux系统要求、安装memtier_benchmark、安装vmstat(sysstat)、验证工具可用性

在进行内存压力测试之前,搭建一个干净、稳定的实验环境是保障测试结果可复现的基础。本节将指导你完成Linux系统的环境检查、memtier_benchmark(内存/Redis基准测试工具)与vmstat(sysstat包中的内存监控工具)的安装,并最终验证所有工具的可用性。

环境概览:本课程所有操作基于 CentOS 7.9 / Ubuntu 22.04 LTS 验证。如果你使用其他发行版,请根据包管理器(yum/apt)调整命令。

2.1 Linux系统要求与检查

在安装工具前,请确保你的Linux系统满足以下最低要求:

检查项 最低要求 推荐配置 检查命令
操作系统 CentOS 7+ / Ubuntu 18.04+ CentOS 7.9 / Ubuntu 22.04 cat /etc/os-release
内核版本 3.10+ 5.x+ uname -r
内存 2 GB 8 GB+ free -h
磁盘空间 5 GB 20 GB+ df -h
网络 eth0 可用 千兆以太网 ip addr
编译器/构建工具 gcc / build-essential gcc 8+ gcc --version
关键检查步骤:使用 free -m 查看内存总量与可用量;使用 nproc 查看CPU核心数,后续压测线程数建议不超过核心数的2倍。
环境检查流程 环境检查流程图 检查OS版本 检查内核版本 检查内存容量 检查磁盘空间 安装编译依赖 安装memtier/vmstat 验证工具可用性 所有检查通过后进入安装阶段

2.2 安装memtier_benchmark

memtier_benchmark 是 Redis Labs 开源的高性能负载生成工具,支持 Redis 和 Memcached 协议。我们采用源码编译安装方式,以获得最新特性和最佳性能。

2.2.1 安装编译依赖

# CentOS / RHEL
sudo yum install -y gcc gcc-c++ make autoconf automake libtool pkgconfig
sudo yum install -y libevent-devel zlib-devel openssl-devel

# Ubuntu / Debian
sudo apt update
sudo apt install -y build-essential autoconf automake libtool pkg-config
sudo apt install -y libevent-dev zlib1g-dev libssl-dev

2.2.2 下载并编译memtier_benchmark

# 克隆官方仓库(推荐使用稳定版本)
git clone https://github.com/RedisLabs/memtier_benchmark.git
cd memtier_benchmark

# 生成构建系统
autoreconf -ivf

# 配置并编译
./configure
make -j$(nproc)

# 安装到系统路径
sudo make install
常见编译错误:如果 autoreconf 失败,请检查是否安装了 autoconf 和 automake。如果 make 过程中提示缺少 libevent,请确认 libevent-dev(Ubuntu)或 libevent-devel(CentOS)已正确安装。

2.2.3 验证安装

# 查看版本信息
memtier_benchmark --version

# 快速连通性测试(假设本地Redis已启动)
memtier_benchmark -s 127.0.0.1 -p 6379 -c 1 -n 10

如果看到类似 memtier_benchmark 2.1.0 的版本输出,并且测试命令返回了吞吐量统计,则说明安装成功。

2.3 安装vmstat(sysstat包)

vmstat 是 sysstat 工具集中的一个核心组件,用于报告进程、内存、分页、块IO、陷阱和CPU活动。我们直接通过系统包管理器安装完整的 sysstat 包。

发行版 安装命令 安装后验证命令
CentOS 7/8 sudo yum install -y sysstat vmstat --version
CentOS 9 / RHEL 9 sudo dnf install -y sysstat vmstat --version
Ubuntu / Debian sudo apt install -y sysstat vmstat --version
sysstat 服务说明:安装后,sysstat 会默认启用系统级性能数据采集服务(sysstat 或 sysstat-collect)。你可以使用 systemctl status sysstat 检查服务状态。如果不需要历史数据采集,可以禁用该服务,仅使用 vmstat 等命令行工具。

2.4 验证工具可用性

完成安装后,执行以下全套验证流程,确保两个工具都能正常工作:

  1. 验证memtier_benchmark:运行 memtier_benchmark --version 确认版本号;运行 memtier_benchmark -h 查看帮助信息。
  2. 验证vmstat:运行 vmstat --version 确认版本号;运行 vmstat 1 3 查看3次实时系统状态输出。
  3. 联合快速测试:在终端1运行 vmstat 1 持续监控;在终端2运行 memtier_benchmark -s 127.0.0.1 -p 6379 -c 1 -n 1000 发起轻量负载,观察终端1中 si(swap in)和 so(swap out)列的变化。
工具验证架构 工具验证架构图 memtier_benchmark 负载生成器 Redis Server 目标服务 vmstat (sysstat) 监控代理 SET/GET 系统状态 验证流程 1. 启动 vmstat 1 持续监控内存与CPU 2. 运行 memtier_benchmark 向 Redis 发送请求 3. 观察 vmstat 输出中 si/so/cpu 列的变化

2.5 环境验证清单

使用下表快速核对你的环境是否准备就绪:

验证项 预期结果 状态(✓/✗)
memtier_benchmark --version 输出版本号(如 2.1.0) ____
memtier_benchmark -h 显示帮助信息,无报错 ____
vmstat --version 输出 sysstat 版本号(如 11.7.4) ____
vmstat 1 3 输出3行系统状态数据,无报错 ____
memtier + vmstat 联合测试 vmstat 中 si/so 列有数值变化 ____