[英]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.