通过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上设置:编辑->档案格式转换-> ...
随机推荐
- scrollTop、scrollHeight与clientHeight
MDN上概念 scrollTop:获取或设置一个元素的内容垂直滚动的像素数. scrollHeight:一个元素内容高度的度量,包括由于溢出导致的视图中不可见内容. clientHeight:元素内部 ...
- POJ prime distance
https://oj.shiyancang.cn/Problem/781.html 素数距离,数据范围21亿,如果用素数筛存,并且进行做的话,按照x/lnx计算会是一个非常恐怖的复杂度.确定要做什么, ...
- HDU 2099 整除的尾数(枚举 & 暴搜)
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2099 思路分析:这道题的解法可以说是相当暴力了,但也有一些小坑,以下几点萌新们值得留意一下: 1. 仔 ...
- 记一次异步处理导致Jetty Request对象泄漏
最近排查一个bug,发现了一系列有意思的东西,对「自定义线程池」.「Jetty线程模型」都有了一些新的认识. 本文预计阅读时间10分钟,包括: 问题表现 常见原因筛查 根因与源码分析 最佳实践 一些小 ...
- 【Java】子类实例化过程
子类对象实例化的全过程 子类继承父类以后,就获取了父类中声明的属性或方法.创建子类的对象,在堆空间中,就会加载所有父类中声明的属性. 当我们通过子类的构造器创建子类对象时,我们一定会调用其父类的构造器 ...
- 微服务架构 | 3.1 Netflix Eureka 注册中心
目录 前言 1. Eureka 基础知识 1.1 Eureka 模型中的服务器与客户端 1.2 Eureka 的 30s 启动机制 1.3 Eureka 为什么注册服务的 IP ,而不是主机名 1.4 ...
- java计算器(简单版)
前言 之前在学习完Java的方法后,我发现自己可以开始写计算器这个"经典"的项目了,于是我花了一点时间写下了这个计算器的程序,也写下了这篇文章. 在这里,我需要说明一下,这个程序只 ...
- Solon Web 开发,一、开始
Solon Web 开发 一.开始 二.开发知识准备 三.打包与运行 四.请求上下文 五.数据访问.事务与缓存应用 六.过滤器.处理.拦截器 七.视图模板与Mvc注解 八.校验.及定制与扩展 九.跨域 ...
- C# 实现Parallel.For
static class MyParallel { //4.0及以上用Task, Task的背后的实现也是使用了线程池线程 //static List<Task> tasks = new ...
- 解决nRF Connect for PC无法连接网络的问题(非FQ)
各位小伙伴是不是也遇到过国内不能正常使用nRF Connect的问题,现在教大家一个十分有效的办法. 1.找到nrf connect的脚本配置文件"apps.json",默认在&q ...