A hands-on lab to explore and understand Linux sysctl kernel parameters through experiments.
sysctl-lab 是一个交互式实验环境,用于学习和理解 Linux 内核参数。通过这个工具,你可以:
- 查看所有可用的内核参数
- 搜索特定参数
- 查看参数详情
- 修改参数并观察效果
- 运行预设的实验来测试不同参数的影响
- 保存实验结果以便后续分析
- Linux 操作系统
- root 权限
- bash shell
- 可选:stress-ng(用于运行压力测试)
git clone <repository-url>
cd sysctl-labmake setupsudo make run运行后,你将看到以下主菜单:
- List all sysctl parameters - 列出所有可用的内核参数
- Search for parameters - 搜索特定参数
- Show parameter details - 查看参数详情
- Modify a parameter - 修改参数值
- Run predefined experiments - 运行预设实验
- Show experiment results - 查看保存的实验结果
- Exit - 退出程序
项目包含以下预设实验:
- 测试不同 swappiness 值对内存使用的影响
- 测试值:10, 50, 90
- 运行内存压力测试并记录结果
- 测试不同连接队列大小对网络性能的影响
- 测试值:128, 1024, 4096
- 运行网络测试并记录结果
- 测试不同文件句柄限制对系统的影响
- 测试值:100000, 500000, 1000000
- 检查文件句柄使用情况
- 测试自动组调度对进程性能的影响
- 测试值:0(禁用), 1(启用)
- 运行 CPU 压力测试并记录结果
所有实验结果都保存在 experiments/ 目录中,文件名包含时间戳和实验类型。你可以通过主菜单中的 "Show experiment results" 选项查看这些结果。
系统操作和实验过程会记录在 logs/ 目录中,方便后续分析和排查问题。
- 本工具需要 root 权限才能修改内核参数
- 修改内核参数可能会影响系统性能和稳定性
- 预设实验会自动恢复原始参数值,但手动修改的参数需要自行恢复
- 建议在测试环境中使用,不要在生产环境中随意修改内核参数
你可以通过修改 lab.sh 文件添加自定义实验。每个实验函数都遵循相同的模式:
- 保存原始参数值
- 测试不同参数值
- 运行相关测试
- 保存结果
- 恢复原始参数值
欢迎提交问题和改进建议!
本项目采用 MIT 许可证。