Advertisement

shell脚本用于ab每小时运行两次,每次运行后休息十分钟

  • 5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:PDF


简介:
性能测试作为确保Web应用程序稳定性和扩展性的关键步骤,在IT领域发挥着不可替代的作用。ApacheBench(`ab`)作为一个简洁而高效的工具,主要用于评估Web服务器的负载能力和应对压力环境。本文将深入分析如何通过Shell脚本实现ApacheBench(`ab`)每30分钟同时运行多个实例,并在测试完成后进行短暂的休眠期。我们来看一下提供的脚本代码:```bash #!binbash echo 程序开始启动! echo 程序每隔15分钟停一次休息10分钟 while true do echo 本轮循环开始执行! 本次并发测试30分钟! ab -n 738100 -c 410 https:mybank.nbcb.com.cncc-test echo 本轮测试结束 休息10分钟 ! sleep 10m done echo 程序测试结束! ``` 此脚本设计了一个无尽的循环过程,在每一次循环期间,该脚本执行ab命令来执行负载测试任务。参数`-n 738100`设定了一系列的请求总量,并行处理的用户数量被设定为410。测试的目标指向该URL:https:mybank.nbcb.com.cncc-test。在测试结束后,脚本将暂停十分钟,随后立即开始下一轮循环,从而实现了每三十分钟后进行一次并行测试,并在每次测试后短暂休息十分钟以确保持续的负载压力测试目标得以实现。随后将运行一个脚本用于持续监控`abtest.sh`进程。在该进程中发生异常终止时自动重新启动。```bash #!binbash echo 启动abtest程序! while [ 1 ]; do echo abtest.sh 程序已重新启动起来了 sleep 10s result=$(pidof -x abtest.sh) if [ -z $result ]; then echo process is finished flag=0 fi if [ $flag -eq 0 ]; then echo abtes.sh程序已挂请重新启动! sh abtest.sh fi done ```该脚本利用`pidof -x abtest.sh`获取运行中的`abtest.sh`进程及其对应的PID号。若无法获取当前运行状态,则判断该进程已退出服务,并自动触发相应机制重新启动相应的`abtest.sh`进程以恢复执行流程。从而确保在`ab`测试脚本出现意外退出时,系统能够及时进行自动修复和继续执行。 总结而言,这个示例展示了如何通过集成`ab`工具与Shell脚本来进行定期性能测试,并通过监控脚本来确保测试流程的连贯性。这种自动化的测试策略对于持续监控Web应用性能和稳定性具有重要意义。在实际操作中,用户可以根据自身需求对测试参数进行调整,例如修改并发用户数量、设定总请求量以及控制测试间隔时间等。此外,还可以考虑将日志输出功能及错误处理机制加入脚本中,以便于后续分析与排查问题。最后提醒大家定期检查和更新脚本以确保其适应性,及时应对应用程序或系统的变化。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • JavaScript 函数
    优质
    简介:本教程介绍如何使用JavaScript定时器功能,实现每隔两秒自动调用特定函数的功能,适合前端开发人员学习。 每隔两秒执行一个函数的JavaScript代码可以这样编写: ```javascript setInterval(functionName, 2000); function functionName() { // 在这里插入需要每两秒钟运行一次的代码 } ``` 请将 `functionName` 替换为实际要调用的具体函数名。
  • 使crontab隔若干天种方式
    优质
    本文介绍了利用Linux系统的crontab工具定期执行Shell脚本的两种配置方法,帮助用户实现自动化任务调度。 在工作中,我们常常需要定时执行脚本或命令。这篇文章主要介绍了如何使用crontab每隔一定天数来执行一次脚本的方法,对大家有一定的参考价值。有兴趣的朋友可以看一下。
  • 启动Excel自动特定的宏
    优质
    简介:介绍如何设置Excel,使其在每次启动时自动执行预设的宏命令,提高工作效率。 每次打开Excel表格时,都可以自动执行某个宏。
  • Python日自动任务
    优质
    本项目旨在实现用Python编写脚本,通过系统计划任务让程序每天自动执行一次,轻松完成定期数据抓取、文件处理等自动化操作。 使用Python的timer模块可以实现每天执行一次的任务调度功能,在Windows环境下运行Python 3.4版本即可完成这项工作。
  • 使 Bash 登录 Shell 查看 Linux 系统信
    优质
    本教程介绍如何利用Bash脚本自动获取并展示Linux系统的关键信息,如CPU、内存和磁盘状态,使用户每次打开Shell都能快速了解系统运行状况。 在 Linux 系统中,有许多命令可以用来查看系统信息,如处理器详情、生产商名称及序列号等。为了收集这些数据可能需要执行多个命令,并且记住所有相关命令及其选项可能会有难度。因此,编写一个自定义的 shell 脚本会非常有用。以前我们为不同目的写过许多 bash 脚本。现在我们将创建一个新的脚本来在每次登录时显示所需的信息。该脚本包含六个部分: 1. 通用系统信息; 2. CPU 和内存使用情况; 3. 硬盘使用率超过80%的情况; 4. 列出系统的 WWN(World Wide Name)详情; 5. Oracle 数据库实例的状态; 6. 可更新的软件包列表。 根据具体需求,我们已经将可能需要的信息添加到了脚本中。
  • AJAX5秒进
    优质
    本项目实现了一个使用AJAX技术每隔五秒钟自动刷新数据的功能,无需用户手动操作即可获取最新的信息或数据状态。 本段落主要介绍了如何使用AJAX进行定时调用,示例中的设定是每5秒执行一次。您可以根据实际需求调整这一时间间隔。
  • 体验ESP32定器的,实现秒闪烁一LED灯(
    优质
    本教程介绍如何使用ESP32开发板和Arduino IDE设置定时器功能,使连接的LED灯每隔两秒钟闪烁一次,帮助初学者掌握ESP32基本外设操作。 通过体验ESP32的强大定时器功能,可以实现每两秒钟闪烁一次LED灯的效果。参考的博客内容展示了如何利用ESP32进行这样的操作。 要完成这个任务,首先需要了解ESP32内置定时器的工作原理及其编程方法。然后按照步骤配置好硬件连接,并编写相应的代码来设定定时器触发时间间隔为2秒,同时控制LED的状态变化(即亮和灭)。通过这种方式,可以有效地利用ESP32的资源实现简单的周期性任务。 该示例不仅有助于理解基本的微控制器操作逻辑,还能帮助开发者熟悉如何使用高级硬件平台进行更复杂的项目开发。
  • 使Shell查询进程
    优质
    本文介绍了如何利用Shell脚本来查询Linux系统中特定进程的运行时间,帮助用户轻松监控和管理后台任务。 在Linux系统管理中,Shell脚本是一个非常强大的工具,它允许我们自动化执行一系列命令和任务。有时我们需要监控或控制进程的运行状态,例如确保长时间运行的任务不会无限制地持续下去。 `ps` 命令是 Linux 中用于报告当前系统中进程状态的重要工具,提供了多种格式来展示进程的信息。在 `ps -p 4260 -o pid,start_time,etime,comm` 命令中,“start_time” 列显示了进程启动的时间,而“etime”列则表示自启动以来的总时间(以天-小时:分钟:秒格式),但在需要精确到秒时不太方便。 为了解决这个问题,我们可以编写一个 Shell 脚本来计算进程运行的确切时间。以下是一个示例脚本: ```bash #!/bin/bash function show_elapsed_time() { user_hz=$(getconf CLK_TCK) # 通常值是100在x86/x86_64系统上 pid=$1 jiffies=$(cat /proc/$pid/stat | cut -d -f22) sys_uptime=$(cat /proc/uptime | cut -d -f1) last_time=$(( ${sys_uptime%.*} * 1000000 + ${jiffies/user_hz})) echo 进程 $pid 运行了 $last_time 秒。 } if [ $# -ge 1 ]; then for pid in $@; do show_elapsed_time $pid done fi while read pid; do show_elapsed_time $pid; done ``` 这个脚本定义了一个名为 `show_elapsed_time` 的函数,该函数接收一个进程ID作为参数。它首先获取系统的时钟ticks(通常是100Hz),然后读取指定进程的 `/proc/$pid/stat` 文件中的第22个字段,这是自启动以来经历的系统时钟ticks数。接着从 `/proc/uptime` 获取系统的总运行时间,并通过计算得到进程的实际运行秒数。 在执行脚本时可以传入一个或多个进程ID,脚本将依次打印每个进程的运行时间;如果没有提供参数,则会从标准输入读取进程ID以方便与其他命令结合使用。这样我们可以更灵活地处理进程运行时间的计算,并设置超时机制来自动终止长时间未完成的任务。 了解 `/proc` 文件系统中的 `stat`, `$pid/stat`, 和 `uptime` 等文件,对于深入理解Linux内核和进程管理至关重要。这些实时更新的文件能提供系统的当前状态信息。利用Shell脚本结合 `/proc` 文件系统可以有效地监控与管理系统资源,确保合理使用并提高运维效率的同时预防潜在性能问题的发生。
  • 统计10的数据
    优质
    本项目专注于实时数据处理技术,旨在统计并分析每十分钟内收集到的具体数据量,为用户提供高效准确的大数据分析服务。 按10分钟分割时间的统计算法可以这样实现:将总时间(以秒为单位)除以600(即10分钟转换成秒),得到的结果就是总的10分钟时间段数量。这种方法简单明了,不需要额外调用其他函数或复杂的算法。