2010-01-04 49 views
3

我想以高訪問率記錄訪問我的網站的文件。我可以每秒執行多少次寫入日誌文件?每秒文件寫入次數

+0

您能否澄清Google Analytics未提供的其他所需功能? – SqlRyan 2010-01-04 18:37:00

+0

@伊利亞,你在用什麼服務器? Apache的? – 2010-01-04 18:40:44

+0

好吧,我會盡力詳細解釋我需要什麼。我有廣告網絡,我想將橫幅節目登錄到文件,然後每5分鐘將它們上傳到MySQL。橫幅顯示有一個約50每秒 – Ilya 2010-01-04 18:42:24

回答

4

不這樣做,請改用Google Analytics。你最終會遇到許多問題,試圖打開文件,寫信給他們,關閉他們,等等。當您覆蓋尚未提交的數據時會出現問題等。

如果您需要自己的本地解決方案(在專用網絡內等),您可以查看AWStats這樣的選項,你的日誌文件。

+0

謝謝,但我需要我自己的日誌記錄系統 – Ilya 2010-01-04 18:33:20

+2

Analytics提供的豐富信息非常棒。 – 2010-01-04 18:33:41

+0

我知道,但我需要一些其他功能 – Ilya 2010-01-04 18:35:53

8

如果您無法使用Google Analytics,那您爲什麼不使用您的網絡服務器現有的日誌記錄系統?如果您使用的是真正的網絡服務器,則幾乎可以肯定它是一種已針對最大吞吐量進行了優化的日誌記錄機制。

你的問題是不可能在所有其他方面回答。可能的寫入次數由硬件,操作系統和來自其他正在運行的軟件的爭用來控制。

+0

是的,只是解析服務器日誌。 – Rob 2010-01-04 18:40:21

+1

我認爲解析很難並且很長進程 – Ilya 2010-01-04 18:46:18

+2

@Ilya:幾乎沒有嘗試優化文件寫入那麼困難。 Perl主要用於執行日誌解析等操作;還有其他更有針對性的選項,例如splunk。不要堅持重新發明這個輪子。 – 2010-01-04 18:50:39

1

如果您的硬盤驅動器可以寫入40 MB/s,並且您的日誌文件行大約爲。 300字節的長度,我假設你可以寫每秒140000 HTTP請求到你的日誌文件,如果你保持打開狀態。

無論如何,你不應該自己做,因爲大多數web服務器已經寫入日誌文件,他們知道如何做到這一點,如何在達到最大限制時滾動文件以及如何格式化日誌線根據一些着名的模式。

1

文件訪問非常昂貴,特別是在寫入時。我建議將它們保存到RAM(使用任何緩存方法最適合您)並定期將結果寫入磁盤。

您也可以爲此使用數據庫。喜歡的東西:

UPDATE stats SET hits = hits + 1 

嘗試了幾個不同的解決方案,基準性能,並實現兩者的作品足夠快以最少的資源使用情況。

+0

我認爲使用關係數據庫來達到這個目的將會是過分的,並且可能會導致一些嚴重的性能下降。 – 2010-01-04 18:41:34

+0

看到我的意見,我不想每次更新數據庫 – Ilya 2010-01-04 18:44:32

1

如果使用Apache,我建議使用rotatelogs公用程序作爲標準套件的一部分。

我們使用它來允許每天輪換服務器註銷,而無需停止和啓動服務器。注:使用新的「||」語法時聲明日誌指令。

我參與的網站是互聯網上最大的網站之一,在長時間內以每秒數百萬的速度達到峯值。

編輯:我忘了說網站使用標準的Apache日誌指令,我們根本不需要定製Apache日誌代碼。

編輯:順便說一句,除非你真的需要它,不要記錄服務的字節,因爲這會導致圍繞午夜邊界的各種問題。

+0

我怎麼能解析它? – Ilya 2010-01-04 18:47:43

+0

@Ilya,參見@ EarthMind關於awstats初始起點的建議。我們使用在專用套件機器上運行的定製統計分析器,每天對日誌文件進行各種分析,例如, Sun5240的。分析器以C和Perl腳本編寫的可執行文件混合實現。該分析過程每天至少需要十個小時才能運行! – 2010-01-04 18:52:51

2

直到您實際將數據刷新到磁盤時,文件寫入並不昂貴。通常你的操作系統會積極地緩存一些東西,所以如果你不想手動嘗試數據(當然,如果發生崩潰,你可能會丟失最新的日誌條目),你可以獲得非常好的寫入性能。

但是,另一個問題是文件I/O不一定是線程安全的,並且從多個線程或進程寫入同一文件(如果我們正在討論Web應用程序,可能會發生這種情況)可能會產生錯誤結果:例如,丟失或重複或混合的日誌行。

+0

好的,你能告訴我什麼? – Ilya 2010-01-04 19:02:18

+0

線程安全性正是我想知道的類似問題。 – 2014-07-22 11:32:34

0

讓Apache做到這一點;做後端的分析工作。

相關問題