• Linux性能模拟测试


    注意:模拟性能脚本不能满负荷运行,否则会导致系统宕机。

    一、CPU内存性能模拟

    1、脚本命令介绍

        #sh  cpumem.sh  CPU核数   内存容量 
            CPU核数:占用CPU的数量,被占用的cpu利用率100%,CPU核数不能全部占用。
            内存容量:可用内存容量,单位M。可用内存容量被占满,会导致服务器宕机。

    2、服务器资源查询

    (1)CPU核数查询

    1. #服务器可用CPU核数最大可用为2核
    2. [root@mail ~]# lscpu | grep CPU\(s\):
    3. CPU(s):                2

    (2)内存容量查询

    1. #服务器可用内存是3751M
    2. [root@mail ~]# free -m
    3.               total        used        free      shared  buff/cache   available
    4. Mem:           3751         243        2225        1026        1282        2171
    5. Swap:          3967         142        3825

    注:性能模拟测试,资源使用率尽量不要超过70%,使用率过高会致使服务器宕机。

    3、性能模拟脚本

    1. [root@mail ~]# cat cpumem.sh
    2. #!/bin/bash
    3. #####CPU性能模拟#####
    4. rm -rf /root/file.txt
    5. endless_loop()
    6. {
    7. echo -ne "i=0;
    8. while true ;do
    9. i=i+100;
    10. i=100;done" | /usr/bin/bash &
    11. }
    12. for i in `seq $1`
    13. do
    14. endless_loop
    15. pid_array[$i]=$!;
    16. done
    17. echo "#!/bin/bash" >/tmp/rm_cpumem.sh
    18. for i in "${pid_array[@]}"; do
    19. echo 'execute: kill' $i ;
    20. echo 'kill' $i >> /tmp/rm_cpumem.sh
    21. done
    22. #####内存性能模拟#####
    23. mkdir /tmp/memory
    24. mount -t tmpfs -o size=$2M tmpfs /tmp/memory
    25. dd if=/dev/zero of=/tmp/memory/block
    26. #####结束进程,请运行"sh /tmp/rm_cpumem.sh"#####
    27. echo 'End the pressure, please run "sh /tmp/rm_cpumem.sh"'
    28. echo "rm -rf /tmp/memory/block" >>/tmp/rm_cpumem.sh
    29. echo "umount /tmp/memory" >>/tmp/rm_cpumem.sh
    30. echo "rmdir /tmp/memory" >>/tmp/rm_cpumem.sh

    4、运行脚本

         模拟一颗CPU满负荷,内存2G的性能模拟测试

    1. [root@mail ~]# sh cpumem.sh 1 2048
    2. execute: kill 71318
    3. dd: 正在写入"/tmp/memory/block": 设备上没有空间
    4. 记录了4194305+0 的读入
    5. 记录了4194304+0 的写出
    6. 2147483648字节(2.1 GB)已复制,4.55903 秒,471 MB/秒
    7. End the pressure, please run "sh /tmp/rm_cpumem.sh"
    8. [root@mail ~]#

    5、结束进程

    (1)脚本结束进程,仅需运行"sh /tmp/rm_cpumem.sh"即可。

    [root@mail ~]# sh /tmp/rm_cpumem.sh

    (2)手动结束进程

    1. #结束CPU进程,进程ID请查看rm_cpumem.sh
    2. kill  进程ID
    3. #结束内存进程
    4. rm -rf /tmp/memory/block
    5. umount /tmp/memory
    6. rmdir /tmp/memory

    二、模拟硬盘空间占用

            模拟生成一个1G文件放到/tmp下

    1. [root@mail ~]# dd if=/dev/zero of=/tmp/file.txt bs=1M count=1024
    2. 记录了1024+0 的读入
    3. 记录了1024+0 的写出
    4. 1073741824字节(1.1 GB)已复制,2.28627 秒,470 MB/秒

            of:指定生成文件位置。请根据实际需要指定文件存放位置

            count:指定文件的大小,1024是1G。

            注:请根据实际需要指定文件大小和文件路径,不要把磁盘空间全部占满,磁盘爆满会影响业务运行。

    其他命令:

    1. [root@mail ~]# df -h //查下磁盘利用率
    2. 文件系统                     容量  已用  可用 已用% 挂载点
    3. /dev/mapper/centos-root       50G  7.7G   43G   16% /
    4. devtmpfs                     1.9G     0  1.9G    0% /dev
    5. tmpfs                        1.9G     0  1.9G    0% /dev/shm
    6. tmpfs                        1.9G   11M  1.9G    1% /run
    7. tmpfs                        1.9G     0  1.9G    0% /sys/fs/cgroup
    8. /dev/vda1                   1014M  209M  806M   21% /boot
    9. /dev/mapper/centos-home       46G   37M   46G    1% /home
    10. /dev/mapper/data_vg-data_lv   20G   45M   19G    1% /opt/data
    11. tmpfs                        376M     0  376M    0% /run/user/0
    12. tmpfs                        1.0G  1.0G     0  100% /tmp/memory
    13. [root@mail ~]# du -h /tmp/file.txt  //查看单文件大小
    14. 1.0G    /tmp/file.txt
    15. [root@mail ~]

  • 相关阅读:
    解决WIFI网络登录困难的方法
    什么是GPIO的推挽输出和开漏输出
    redis——缓存雪崩、缓存穿透、缓存击穿
    嵌入式汇编大合集
    springboot接收前端传参的几种方式
    手把手教你配置vscode+wsl开发环境
    基于vue项目的代码优化
    【无标题】QCC 308x 518x 517x增加usb voice 32k采样率
    JDK1.8中HashMap的底层实现
    Spring框架详解
  • 原文地址:https://blog.csdn.net/yeqinghanwu/article/details/125427513