当前位置: 首页 > news >正文

达梦数据库压力测试报错超出全局hash join空间,适当增加HJ_BUF_GLOBAL_SIZE解决

1.名词解释:达梦数据库中的HJ_BUF_GLOBAL_SIZE是所有哈希连接操作可用的最大哈希缓冲区大小,单位为兆字节(MB)

2.达梦压测报错:

3.找到达梦数据库安装文件

4.压力测试脚本
 

import http.client
import multiprocessing
import time
from urllib.parse import urlparse
import json  # 新增json模块用于解析响应内容def send_request(url):try:parsed_url = urlparse(url)if parsed_url.scheme == 'http':conn = http.client.HTTPConnection(parsed_url.netloc)else:conn = http.client.HTTPSConnection(parsed_url.netloc)conn.request("GET", parsed_url.path)response = conn.getresponse()# 读取完整响应内容response_body = response.read().decode('utf-8')status_code = response.statusconn.close()# 尝试解析JSON(针对接口返回的JSON格式)try:response_data = json.loads(response_body)actual_code = response_data.get('code', status_code)  # 优先使用业务codereturn actual_code == 200  # 只有code=200才算真正成功except json.JSONDecodeError:return status_code == 200  # 非JSON响应则 fallback 到HTTP状态码except Exception as e:print(f"请求出错: {e}")return Falsedef stress_test(url, num_requests):results = []for _ in range(num_requests):start_time = time.time()is_success = send_request(url)  # 现在返回布尔值end_time = time.time()elapsed_time = end_time - start_timeresults.append((is_success, elapsed_time))return resultsdef run_single_stress_test(url, num_requests_per_process, all_results):results = stress_test(url, num_requests_per_process)all_results.extend(results)def run_stress_test(url, num_processes, num_requests_per_process):processes = []manager = multiprocessing.Manager()all_results = manager.list()for _ in range(num_processes):p = multiprocessing.Process(target=run_single_stress_test,args=(url, num_requests_per_process, all_results))processes.append(p)p.start()for p in processes:p.join()return all_resultsif __name__ == "__main__":target_url = 'http://127.0.0.1:8088/api/aaaa/project/deptList'num_processes = 500num_requests_per_process = 5try:print("开始压力测试...")results = run_stress_test(target_url, num_processes, num_requests_per_process)# 结果分析(现在基于布尔值判断)total_requests = len(results)successful_requests = sum(1 for success, _ in results if success)success_rate = (successful_requests / total_requests) * 100total_time = sum(elapsed for _, elapsed in results)print("\n===== 测试结果 =====")print(f"总请求数: {total_requests}")print(f"成功请求数: {successful_requests}")print(f"成功率: {success_rate:.2f}%")print(f"总耗时: {total_time:.2f} 秒")print(f"平均响应时间: {total_time / total_requests:.2f} 秒")# 输出详细错误信息(如果有失败请求)if successful_requests < total_requests:failed = total_requests - successful_requestsprint(f"\n警告: 有 {failed} 次请求未返回code=200!")except Exception as e:print(f"发生致命错误: {e}")

http://www.xdnf.cn/news/149563.html

相关文章:

  • 【计算机视觉】CV实战项目 - 基于YOLOv5的人脸检测与关键点定位系统深度解析
  • mysql 安装
  • 项目实战-基于大数据分析的暖通系统改造模型【感谢Akila公司以及学院的支持】
  • Lobechat使用WolframAlpha MCP工具减少LLM幻觉
  • Java 设计模式心法之第23篇 - 状态 (State) - 让对象的行为随状态优雅切换
  • 【蓝桥杯选拔赛真题104】Scratch回文数 第十五届蓝桥杯scratch图形化编程 少儿编程创意编程选拔赛真题解析
  • IPOF(Input-Process-Output-Feedback)方法学简介
  • XMOS空间音频——在任何设备上都能提供3D沉浸式空间音频且实现更安全地聆听
  • 【计算机视觉】CV实践项目- 基于PaddleSeg的遥感建筑变化检测全解析:从U-Net 3+原理到工程实践
  • numpy.random.normal与numpy.random.randn的区别与联系
  • 雷电模拟器怎么更改IP地址
  • 使用 Python 项目管理工具 uv 快速创建 MCP 服务(Cherry Studio、Trae 添加 MCP 服务)
  • Jetpack Compose 基础组件学习2.1:Surface
  • stack __ queue(栈和队列)
  • 分布式事务 两阶段提交协议(2PC的原理、挑战)
  • 大模型微调 - 自注意力机制
  • 【统计学习】递归最小二乘算法与奇异值分解
  • #什么是爬虫?——从技术原理到现实应用的全面解析 VI
  • Vue回调函数中的this
  • 【CF】Day43——Codeforces Round 906 (Div. 2) E1
  • Libconfig 修改配置文件里的某个节点
  • Linux 系统用户管理与权限掌控:从基础到精通
  • 《深入理解计算机系统》阅读笔记之第三章 程序的机器级表示
  • Python判断语句-语法:if,if else,if elif else,嵌套,if else语句扁平式写法,案例
  • LatentSync - 字节联合北交大开源的端到端唇形同步框架-附整合包
  • Cannot read properties of null (reading ‘classList‘)
  • 人工智能的100个关键词系统学习计划
  • Trae 实测:AI 助力前端开发,替代工具还远吗?
  • mysql 导入很慢,如何解决
  • 猿人学题库13题—动态css字体加密 记录