加压测试问题记录
IO 加压断连
问题描述:
使用stress命令加压时与测试板连接断开。
bash
# stress --vm 2 --vm-bytes 128M
stress: info: [xxxx] dispatching hogs: 0 cpu, 0 io, 0 vm, 0 hdd
Network error: Software caused connection abort
Session stopped 原因分析:
eXtremeDB 预先申请的内存过大导致加压后内存超限(排除)尝试减小预设的数据库大小,但是问题仍然存在。eXtremeDB 预先malloc的内存是虚拟内存,只有在使用时才会映射到物理内存上,所以应该与预设的数据库大小无关。
使用
top命令查看内存占用量时,发现stresscpu占用率将近100%查找关于
stress命令的资料发现stress内存加压的默认方式是不断的申请和释放指定大小的内存,CPU占用率极高,使用以下指令可以使stress任务一直占用内存而不立即释放:bashstress --vm 2 --vm-bytes 128M --vm-keep # 任务一直占用内存不释放 stress --vm 2 --vm-bytes 128M --vm-hang 5 # 任务分配到内存后转入睡眠状态 5 秒,然后释放内存,一直重复执行(分配的内存在5秒后释放掉)
混合加压时加上磁盘加压断连
命令及输出如下:
bash
# stress --cpu 4 --io 4 --hdd 2 --vm 2 --vm-bytes 128M --vm-keep
stress: info: [xxxx] dispatching hogs: 4 cpu, 4 io, 2 vm, 2 hdd
Network error: Software caused connection abort
Session stopped 猜测原因:-hdd 不加参数--hdd-bytes默1G,占用过多系统资源。