确保Ubuntu系统已安装Oracle Database(如11g、12c、19c等版本),且数据库服务正常运行。可通过sqlplus / as sysdba登录数据库,执行SELECT status FROM v$instance;确认状态为OPEN。
根据测试需求选择合适工具(优先推荐Swingbench,专为Oracle设计且易用性强;若需通用HTTP压测,可选择Apache Benchmark(ab)或wrk):
Swingbench是基于Java的工具(需JDK 1.8及以上),从Oracle官网下载对应版本的swingbench.zip,解压后进入bin目录,赋予执行权限:
chmod +x *.sh
./swingbench.shOrder Entry,模拟订单录入场景)或自定义事务(需编写SQL脚本)。Hostname(localhost或IP)、Port(默认1521)、SID(如ORCL)、Username(如SYSDBA)、Password。点击“Run”按钮启动压力测试,测试过程中可实时查看响应时间(平均、最大、最小)、吞吐量(TPS/QPS)、资源利用率(CPU、内存)等指标。
测试完成后,Swingbench会生成HTML格式的报告,包含事务成功率、响应时间分布、资源瓶颈分析等内容,帮助定位性能问题(如慢SQL、锁等待)。
若Oracle数据库通过Web应用(如Java EE、PHP)暴露接口,可使用ab工具测试接口性能:
在Ubuntu终端执行:
sudo apt install apache2-utils
假设Oracle Web应用的订单查询接口为http://example.com/api/orders,测试100个并发用户、1000次请求:
ab -n 1000 -c 100 http://example.com/api/orders
-n:总请求数(1000)。-c:并发用户数(100)。ab会输出请求响应时间(平均、最小、最大)、吞吐量(每秒请求数)、错误率等指标,例如:
Server Software: Apache/2.4.41
Server Hostname: example.com
Document Path: /api/orders
Document Length: 1024 bytes
Concurrency Level: 100
Time taken for tests: 5.123 seconds
Complete requests: 1000
Failed requests: 0
Total transferred: 1234000 bytes
HTML transferred: 1024000 bytes
Requests per second: 195.20 [#/sec] (mean)
Time per request: 512.300 [ms] (mean)
Time per request: 5.123 [ms] (mean, across all concurrent requests)
Transfer rate: 235.67 [Kbytes/sec] received
wrk比ab更适合高并发场景,支持Lua脚本扩展:
sudo apt install build-essential libssl-dev
git clone https://github.com/wg/wrk.git
cd wrk
make
sudo cp wrk /usr/local/bin/
测试http://example.com/api/orders接口,50个并发用户、30秒持续时间:
wrk -t4 -c50 -d30s http://example.com/api/orders
-t:线程数(4,根据CPU核心数调整)。-c:并发连接数(50)。-d:测试持续时间(30s)。wrk会输出请求速率、平均响应时间、99%分位响应时间等指标,例如:
Running 30s test @ http://example.com/api/orders
4 threads and 50 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 45.12ms 12.34ms 120.45ms 85.67%
Req/Sec 6.12k 1.23k 8.90k 78.90%
734500 requests in 30.00s, 92.34MB read
Requests/sec: 24483.33
Transfer/sec: 3.08MB
无论使用哪种工具,都需关注以下核心指标,判断数据库性能是否达标:
top命令查看)、内存(如free -h命令)、磁盘I/O(如iostat命令)的使用情况,判断是否存在瓶颈。EXPLAIN PLAN分析慢SQL,添加索引、优化查询语句。通过以上步骤,可在Ubuntu环境下对Oracle数据库进行全面压力测试,识别性能瓶颈并优化系统,确保数据库在高负载下稳定运行。