在正常手段下,这个只是压测的方法

在不正常手段下(crontab计划任务),可以提高CPU和内存的使用率

什么?你问我为什么要提高CPU和内存的使用率?只可意会不可言传,自己悟吧

内存压测

python的方式
# _*_ coding: utf-8 _*_
import sys
import re
import time

def print_help():
    print ('Usage:')
    print ('python mem.py 100MB')
    print ('python mem.py 1GB')

if __name__=="__main__":
    if len(sys.argv) == 2:
        pattern = re.compile('^(\d*)(M|G|B)$')
        match = pattern.match(sys.argv[1].upper())
        if match:
            num = int(match.group(1))
            unit = match.group(2)
            if unit == 'MB':
                s = ' '* (num * 1024 * 1024)
            else:
                s = ' '* (num * 1024 * 1024 * 1024)
                time.sleep(30)
        else:
            print_help()
    else:
        print_help()

使用方法:python mem.py 20G

mem.py是自定义的,这个不受限制

time.sleep的时间可以自己调整

好处在于,这个是利用CPU进行计算,去占用内存

shell的方式
#!/bin/bash
PWD=$(cd $(dirname $0); pwd)
MEM_DIR='/tmp/memory'
MEM_SIZE=$1

[ ! -d ${MEM_DIR} ] && mkdir ${MEM_DIR}
mount -t tmpfs -o size=${MEM_SIZE} tmpfs ${MEM_DIR} >> ${PWD}/mem_up.log 2>&1
if [ $? == 0 ]
then
    dd if=/dev/zero of=${MEM_DIR}/test count=1 bs=${MEM_SIZE} >> ${PWD}/mem_up.log 2>&1
    if [ $? == 0 ]
    then
        sleep 30
        rm ${MEM_DIR}/test && \
        umount ${MEM_DIR} && \
        rm -rf ${MEM_DIR}
    else
        rm ${MEM_DIR}/test && \
        umount ${MEM_DIR} && \
        rm -rf ${MEM_DIR}
        printf "\e[0;31msomething was error , please check ${PWD}/mem_up.log\e[0m\n"
        exit 1
    fi
else
    printf "\e[0;31msomething was error , please check ${PWD}/mem_up.log\e[0m\n"
    exit 2
fi

使用方法:sh mem.sh 20G

mem.sh是自定义的,这个不受限制

缺点:dd if 命令是使用磁盘读写,将磁盘内的/dev/zero写入到内存的tmpfs

cpu压测

#!/bin/sh
PWD=$(cd $(dirname $0); pwd)
cpu_num=$1

if [ $# != 1 ]
then
  printf "\e[0;34mUSAGE: $0 <CPUs>\e[0m\n"
  exit 1
fi

for i in $(seq ${cpu_num})
do
    echo -ne "
    i=0;
while true
do
    i=i+1;
done" | /bin/sh &
    pid_array[${i}]=$! ;
done

for i in "${pid_array[@]}"; do
    printf "\e[0;32mkill ${i}\e[0m\n" >> ${PWD}/kill_cpu_up.log 2>&1
done

使用方法:sh cpu_up.sh 2

cpu_up.sh是自定义的,这个不受限制

表示使用2个CPU,可以根据自己的情况去设定

Logo

更多推荐