Linux下使用queryperf进行DNS服务器性能测试

一、queryperf介绍

queryperf是bind中一款自带的压力测试软件,这里使用这款软件可以对DNS服务器做请求测试,通过使用queryperf测试多次取平均值得到DNS服务器的性能。

二、queryperf的安装

wget官网下载即可:

wget https://www.isc.org/downloads/file/bind-9-11-5/?version=tar-gz -O bind-9-11-5.tar.gz

包解压安装:

tar -xf bind-9-11-5.tar.gz

进入queryperf目录进行编译安装

cd ./bind-9.11.5/contrib/queryperf && sh configure && make

编译安装完成移动可执行文件到/usr/bin/

cp -a queryperf /usr/bin/

三、queryperf的使用

使用格式:

Usage: queryperf [-d datafile] [-s server_addr] [-p port] [-q num_queries]
                 [-b bufsize] [-t timeout] [-n] [-l limit] [-f family] [-1]
                 [-i interval] [-r arraysize] [-u unit] [-H histfile]
                 [-T qps] [-e] [-D] [-R] [-c] [-v] [-h]
  -d specifies the input data file (default: stdin)
  -s sets the server to query (default: 127.0.0.1)
  -p sets the port on which to query the server (default: 53)
  -q specifies the maximum number of queries outstanding (default: 20)
  -t specifies the timeout for query completion in seconds (default: 5)
  -n causes configuration changes to be ignored
  -l specifies how a limit for how long to run tests in seconds (no default)
  -1 run through input only once (default: multiple iff limit given)
  -b set input/output buffer size in kilobytes (default: 32 k)
  -i specifies interval of intermediate outputs in seconds (default: 0=none)
  -f specify address family of DNS transport, inet or inet6 (default: any)
  -r set RTT statistics array size (default: 50000)
  -u set RTT statistics time unit in usec (default: 100)
  -H specifies RTT histogram data file (default: none)
  -T specify the target qps (default: 0=unspecified)
  -e enable EDNS 0
  -D set the DNSSEC OK bit (implies EDNS)
  -R disable recursion
  -c print the number of packets with each rcode
  -v verbose: report the RCODE of each response on stdout
  -h print this usage

常用:queryperf [-d datafile] [-s server_addr] [-p port] [-q num_queries]

-d: 后面接文件,文件的内容是用户对DNS的请求,一行为一条请求,为了达到性能测试要求我们可以在里面不断往上增加条数,直至观察到瓶颈。
-s: DNS服务器地址
-p: DNS服务器端口
-q: 请求多少次

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个基本的Python代码示例,用于监视vSphere客户端中每个虚拟机的性能: ```python from pyVim.connect import SmartConnect from pyVmomi import vim import ssl # Disable SSL certificate verification context = ssl.SSLContext(ssl.PROTOCOL_TLSv1) context.verify_mode = ssl.CERT_NONE # Connect to vCenter Server si = SmartConnect(host="vcenter.example.com", user="username", pwd="password", sslContext=context) # Get all virtual machines content = si.RetrieveContent() vm_view = content.viewManager.CreateContainerView(content.rootFolder, [vim.VirtualMachine], True) vms = vm_view.view # Loop through each virtual machine for vm in vms: # Get virtual machine name and performance manager vm_name = vm.summary.config.name perf_manager = si.content.perfManager # Get performance counters for CPU and memory counter_cpu = perf_manager.QueryPerfCounterByLevel(entity=None, level=1) counter_mem = perf_manager.QueryPerfCounterByLevel(entity=None, level=2) # Get CPU and memory usage for the virtual machine query_spec_cpu = vim.PerformanceManager.QuerySpec(entity=vm, metricId=counter_cpu[0].key, intervalId=20) query_spec_mem = vim.PerformanceManager.QuerySpec(entity=vm, metricId=counter_mem[0].key, intervalId=20) result_cpu = perf_manager.QueryPerf(query_spec_cpu) result_mem = perf_manager.QueryPerf(query_spec_mem) # Print virtual machine name, CPU usage, and memory usage print("Virtual machine name: {}".format(vm_name)) print("CPU usage: {} MHz".format(result_cpu[0].value[0])) print("Memory usage: {} MB".format(result_mem[0].value[0] / 1024 / 1024)) # Disconnect from vCenter Server si.Disconnect() ``` 请注意,此代码仅提供了一种基本示例,您可能需要根据自己的需求进行修改和优化。此外,还需要安装pyVmomi库以与vSphere API进行交互。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值