【发布时间】:2014-03-20 17:58:56
【问题描述】:
我目前正在测试两个不同消息传递系统的性能,并且有许多独立的调整和负载参数会影响消息速率。我想开发一种自动化方法,可以在给定的硬件上产生最大的每秒消息速率。
常数:
- # of CPUs、内存、网络和其他硬件参数是一个常数(或至少有一个已知的最大值)。
- 操作系统和消息传递产品的版本是一个常量(例如 WebSphere MQ 7.5)
- 消息大小
- 3 分钟完成一次测试测量
期望的结果:
- 每秒消息的最大速率
变量:
- 操作系统调整选项(内核、TCP 和其他网络和内存)
- 消息传递软件调整设置 - 其中有几十个(各种缓冲区大小、线程数、队列管理器数、队列数、客户端的不同类型绑定、安全设置、日志类型、数量和大小日志和数据文件等......)
- 消息生产者和消费者的数量(例如从 1 到 10,000)
目前,性能调整是作为一个迭代过程完成的 - 一次更改一个变量,测量 msg/sec,冲洗并重复。
我已经开发了一个可以迭代不同设置的脚本框架,但是如果我将其作为一个 50 层深的嵌套循环并迭代每个变量的每个可能值,这个过程将需要数百年才能完成。包括一个随机因素可能会有所帮助,但我想做的是使用神经网络为我的调整变量找到最佳设置。
我发现一些研究论文谈论这种事情,但找不到任何真正的实现。有人做过吗?关于如何进行的任何建议?我没有接触过神经网络,但在大学里做过数学规划(优化),正常的优化方法会花费太长时间来解决这个问题。
【问题讨论】:
-
我在这里发布了我对 WebSphere MQ 和 ActiveMQ 的性能测试结果,但这还没有实现这种“自动”性能调优的想法——所有调优都是手动完成的:whywebsphere.com/2014/04/02/…跨度>
标签: performance optimization neural-network messaging ibm-mq