2010-05-21 54 views
3

說實話,開發人員生產的大多數軟件都具有非常適中的性能要求。例如。如果有的話,系統可能每秒處理100個請求。性能統計鉤子

但讓我們假設你有可能參與「下一件大事」(無論這意味着什麼),並且你想把某種性能統計日誌記錄到位以幫助你在什麼時候所有這些用戶飛過來英寸

性能統計記錄,你會如何處理這個要求?也許你會爲此使用某種通用框架?或者推出自己的解決方案?你會記錄什麼?粒度如何?

或者,你甚至懶得把任何東西的地方,而解決這個問題的時候,它實際上成爲一個問題?

這將是非常有趣的聽到關於這個話題您的想法。

回答

1

我只是扔了這一點有:登錄請求事件的時間。還記錄發送的數據包的大小。堆疊所有事件日誌。 然後重播它們。使用計數器,然後做一個差分隨着時間的推移,以獲得率,你可以繪製結果和觀察模式。基本上每秒的增量字節是一個很好的警報。

1

最近我對自己提出了同樣的問題。我開發了自己的統計數據庫。但是我並不完全滿意結果(統計數據消耗過多的堆,在決定選擇存儲模型時做出了錯誤的選擇)。

你必須回答的問題是:我多久看一次這些統計數據?

在我的情況下,不是很經常(這就是爲什麼只有內存的存儲對我來說是不好的選擇)。

我想知道是否應該將存儲模型移動到類似jrobin(Round Robin數據庫模型的java impl)之類的東西。

我最近還發現了perf4j(http://perf4j.codehaus.org/)項目

+0

perf4j看起來很有趣。日誌會變得非常龐大,所以我想知道是否有可用的工具可以幫助您將這些信息彙總成有用的東西? – tinny 2010-05-21 08:15:18

+0

自2010年以來,已經生產了許多新的酷玩意兒。我的首選工具是Metrics(https://dropwizard.github.io/metrics/3.1.0/)。 – 2015-02-21 12:30:26