通过shell脚本进行linux服务器的CPU和内存压测
在正常手段下,这个只是压测的方法
在不正常手段下(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,可以根据自己的情况去设定
通过shell脚本进行linux服务器的CPU和内存压测的更多相关文章
- PHP 获取linux服务器性能CPU、内存、硬盘、进程等使用率
数据库配置文件: conn.php <?php define("MONITORED_IP", "172.16.0.191"); //被监控的服务器IP地址 ...
- shell脚本监控系统负载、CPU和内存使用情况
hostname >>/home/vmuser/xunjian/xj.logdf -lh >>/home/vmuser/xunjian/xj.logtop -b -n 1 | ...
- linux服务器性能——CPU、内存、流量、磁盘使用率的监控
https://blog.csdn.net/u012859748/article/details/72731080
- 使用Shell脚本对Linux系统和进程资源进行监控
ShellLinux脚本 摘要:Shell语言对于接触Linux的人来说都比较熟悉,它是系统的用户界面,提供了用户与内核进行交互操作的一种接口.本文我们以Bash做为实例总结了使用Shell对系统和进 ...
- 使用 shell 脚本对 Linux 系统和进程资源进行监控
Shell 简介 Shell 语言对于接触 LINUX 的人来说都比较熟悉,它是系统的用户界面,提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令并把它送入内核去执行.实际上 Shell 是 ...
- shell脚本监控Linux系统性能指标
2016-11-04 22:41 原作者不详 分类: Linux(7) 在服务器运维过程中,经常需要对服务器的各种资源进行监控, 例如:CPU的负载监控,磁盘的使用率监控,进程数目监控等等,以在系统出 ...
- Shell脚本查看linux系统性能瓶颈(转)
Shell脚本查看linux系统性能瓶颈(转自:http://blog.51cto.com/lizhenliang/1687612) [root@test ~]# cat show_sys_info. ...
- 全面了解 Linux 服务器 - 1. 查看 Linux 服务器的 CPU 详细情况
1. 查看 Linux 服务器的 CPU 详细情况 判断依据: 具有相同的 core id 的 CPU 是同意个 core 超线程. 具有相同的 physical id 的 CPU 是同一个 CPU ...
- shell脚本兼容linux/unix与windows/cygwin的基础(注意处理好CR, LF, CR/LF 回车 换行的问题)
shell脚本兼容linux/unix与windows/cygwin的基础 :统一文本格式为:unix文本格式,即于LF为换行符(推荐方案) 在notepad上设置:编辑->档案格式转换-> ...
随机推荐
- react中实现css动画
- Go语言命名规范
一.变量命名规范 变量命名一般采用驼峰式,当遇到特有名词(缩写或简称,如DNS)的时候,特有名词根据是否私有全部大写或小写.例子: var apiClient var URLString 二.常量命名 ...
- elementui-日期选择器时间清空报错踩坑
今天在项目中遇到了这个大坑 具体问题:在日期清空时会报错 解决方法:给日期绑定的值添加监听
- 日K蜡烛图
股票价格涨跌趋势,常用蜡烛图技术中的K线图来表示,分为按日的日K线.按周的周K线.按月的月K线等.以日K线为例,每天股票价格从开盘到收盘走完一天,对应一根蜡烛小图,要表示四个价格:开盘价格Open(早 ...
- 《剑指offer》面试题63. 股票的最大利润
问题描述 假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少? 示例 1: 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = ...
- [C# 学习]委托和线程
委托有点像C语言的函数指针,简单总结一下如何使用委托. 1. 声明一个委托 public delegate void LabelSetEventHandler(Label la, string str ...
- IDEA2017 maven Spark HelloWorld项目(本地断点调试)
作为windows下的spark开发环境 1.应用安装 首先安装好idea2017 java8 scalaJDK spark hadoop(注意scala和spark的版本要匹配) 2.打开idea, ...
- FHQtreap(我有个绝妙的理解方法,但课的时间不够[doge])
FHQtreap板子(P1486 [NOI2004] 郁闷的出纳员) 会了FHQ,treap什么的就忘了吧...... #include<bits/stdc++.h> using name ...
- 3 Ways to Learn Whether a Windows Program is 64-bit or 32-bit
More than 90% of Windows 8.1 installations are 64-bit and, as a result, more and more people use 64- ...
- Element Plus 正式版发布啦!🎉🎉
今天,我们非常高兴地宣布 Element Plus 稳定版正式发布.自第一个 commit 起,经过 1 年零 7 个月的持续迭代开发,总计 2635 commits,经过 256 位贡献者所提交的 ...