[英]Fast multiple Insert on SQL server from different threads
我有一个项目,涉及从多个设备(数千个)记录数据-设备每X秒钟发送一次需要记录的数据。
设备将HTTP GET请求发送到应用服务器(Apache TomEE),服务器解析该请求并将其存储到SQL Server DB。
TomEE服务器被复制了3次,并且有一个负载平衡器可以在它们之间轮流轮询请求。 我使用OpenJPA这样存储记录( em
保存需要存储的记录):
EntityTransaction tx = em.getTransaction();
try {
tx.begin();
u = execute(em);
tx.commit();
} catch (SQLException | RuntimeException e) {
u = handleError(e);
if (tx.isActive())
tx.rollback();
} finally {
em.close();
}
当我使用JMeter测试性能时,我发现该体系结构每秒处理大约200个请求-我想使其更快。 我考虑了一些方向:
有人可以考虑从其他方向改进它吗?
有人可以建议找到瓶颈的方法吗?
谢谢!
最好的方法是:1)监视数据库并查看其负载(它是有限的,中间可以扩展而不是db)。 2)在服务器上使用jstack或kill -3获取一些线程堆栈,以查看发生了什么。 如果不够,可以进行一些分析,但是我怀疑它在这里是否有用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.