2011-09-07 25 views
1

說我有一大堆的每個服務的請求/秒100的Web服務器,我想看到的實時統計,如:什麼是創建高負載Web服務器的實時統計信息的好方法?

  • 申請率比去年5秒,60秒,5分鐘等
  • 的唯一編號用戶在每個時間窗口再次看到

或者對於一組時間戳事件,我希望看到實時導出的統計信息 - 最佳方式是什麼?

我認爲讓每個GET請求某處更新全局計數器,然後取樣,在不同的時間間隔,但在事件發生率,我看到它很難得到一個分佈式的計數器的速度不夠快。

任何想法歡迎!

加了:服務器都運行Linux的Apache/mod_wsgi的,具有一個Python(Django的)堆棧。 添加:爲了讓我能夠追蹤統計數據的事件發生率,他們以超過10K事件/秒的速度進入。即使按照這個速度遞增分佈式計數器也是一個挑戰。

回答

1

你可能想幫助我們嘗試我們在Python中的Web應用程序性能監控代理的測試版。

http://newrelic.com

再往更到應用程序的性能,而不僅僅是Web服務器,但由於任何瓶頸不會產生將是Web服務器,但您的應用程序,然後將其將會更加有用呢。

免責聲明。我爲New Relic工作,這是我正在開展的項目。這是一款付費產品,但測試版意味着它現在免費提供所有功能。稍後如果發生變化,如果您不想付費,它們仍然是免費的精簡版訂閱級別,併爲您提供基本的網絡指標報告,該報告仍涵蓋了您之後的部分內容。無論如何,現在將是一個很好的機會,可以利用它來調試性能。

+0

謝謝。在我們嘗試newrelic的時候接受你的答案,儘管它不完全是我們想要的,但它似乎是一個體面的工具,可以完成問題的提問。 –

1

幾乎所有好的服務器提供這種功能的開箱。例如,Apache有mod_status模塊,Glassfish支持JMX。此外,監控羣集的商業軟件包有很多,例如Hyperic和Zenoss。

您使用的是什麼Web或應用程序服務器?沒有這些信息就很難提供解決方案。

+0

它更多地監控和整理諸如獨特用戶(AFAIK,Apache不能這樣做)或其他任意事件的業務級別指標。我看過的大多數集羣監視器都會以10K事件/秒的速度掙扎,這正是我正在處理的事情。 –

1

看看使用的WebSockets,他們的開銷比HTTP請求小得多,它們非常適合於實時的Web應用程序。有關基於節點的websocket示例,請參見:http://nodeknockout.com/

http://en.wikipedia.org/wiki/WebSocket

您將需要運行一個後臺程序,如果你想你的Apache服務器上運行它。

也看看: http://kaazing.com/如果你不想少麻煩,但願意分出一些現金。

http://websocket.org/img/poll-ws-compare.gif

+0

沒有看到WebSockets如何爲此提供幫助。問題不在於我無法處理10K請求/秒(我可以),但是*監控*在這種規模下發生的事情是一個挑戰 –

+0

@Malcolm我不確定你到底想要達到什麼目的,但是...如果您使用Node.js(一個事件驅動平臺,所有代碼都是異步的),您可以實時跟蹤所有這些請求,並在需要時存儲它們。 – Jack

相關問題