1. 程式人生 > >apache日誌分析及系統cpu,記憶體,負載情況監控

apache日誌分析及系統cpu,記憶體,負載情況監控

1.根據Apache Log,獲取當天秒併發數最多的記錄

tail -10000 ./demo.fdipzone.com_access_log.2014-01-16_01 | cut -d"[" -f 2 | awk '{print $1;}' | sort | uniq -c | sort -nr | head

tail -10000 ./demo.fdipzone.com_access_log.2014-01-16_01 | awk -F"[" '{print $2;}' | awk '{print $1;}' | sort | uniq -c | sort -nr | head
執行結果:
[email protected]
:~$ tail -100000 ./demo.fdipzone.com_access_log.2014-01-16_01 | cut -d"[" -f 2 | awk '{print $1;}' | sort | uniq -c | sort -nr | head 109 16/Jan/2014:22:51:16 95 16/Jan/2014:22:46:56 87 16/Jan/2014:23:56:30 87 16/Jan/2014:22:48:27 80 16/Jan/2014:23:55:52 79 16/Jan/2014:23:51:29 74 16/Jan/2014:23:00:33 72 16/Jan/2014:23:28:04 72 16/Jan/2014:23:17:35 70 16/Jan/2014:23:05:38

tail -10000 為access log 最大行數,此處請根據實際設定,如access log最大行數是500000 則使用tail -500000

head 預設會顯示頭10行,如要修改則可以加 -n 引數,例如 head -n 100 會顯示頭100行內容


更多查詢

每分鐘最高訪問數
awk '{print $4}' access_log |cut -c 14-18|sort|uniq -c|sort -nr|head

每小時最高訪問數
awk '{print $4}' access_log |cut -c 14-15|sort|uniq -c|sort -nr|head -n 24

指定某分鐘的每秒訪問數
grep '01/Nov/2013:15:59' access.log | cut -d"[" -f 2 | awk '{print $1;}' | sort | uniq -c | sort -nr | head -60

2.記錄cpu與記憶體使用到Log

vmstat命令是最常見的Linux/Unix監控工具,可以展現給定時間間隔的伺服器的狀態值,包括伺服器的CPU使用率,記憶體使用,虛擬記憶體交換情況,IO讀寫情況。

vmstat 共有兩個引數,一個是每次採集的時間間隔,另一個是採集的次數。

vmstat 1 11 表示每次採集時間為1秒,共採集11次。因為vmstat第一次採集的記錄是不正確的,所以如果要採集10次,請設定次數為11,這樣才可以獲取到10條有用的記錄。

[email protected]:~$ vmstat 1 11
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 0  0      0 335240  52072 241320    0    0   689    42  234  460  4 13 80  3
 1  0      0 335860  52072 241320    0    0     0     0  352  528  2  2 97  0
 2  0      0 336364  52072 241320    0    0     0     0  564  692  4  3 94  0
 0  0      0 336992  52072 241320    0    0     0     0  316  483  1  2 97  0
 2  0      0 336432  52076 241476    0    0   156     0  332  554  2  6 91  2
 0  0      0 336928  52084 241480    0    0     0    84  349  494  1  3 96  0
 0  0      0 337564  52084 241476    0    0     0     0  263  437  0  2 98  0
 0  0      0 338068  52084 241476    0    0     0     0  299  456  1  2 97  0
 0  0      0 338696  52084 241476    0    0     0     0  321  473  1  3 96  0
 1  0      0 339200  52084 241476    0    0     0     0  271  461  0  2 98  0
 0  0      0 339828  52084 241476    0    0     0     0  255  429  1  2 96  0

vmstat 1 >> vmstat.log 每秒採集,寫入vmstat.log

vmstat 輸出的每個引數說明:

r 表示執行佇列(就是說多少個程序真的分配到CPU),當這個值超過了CPU數目,就會出現CPU瓶頸了。這個也和top的負載有關係,一般負載超過了3就比較高,超過了5就高,超過了10就不正常了,伺服器的狀態很危險。top的負載類似每秒的執行佇列。如果執行佇列過大,表示你的CPU很繁忙,一般會造成CPU使用率很高。

b 表示阻塞的程序。

swpd 虛擬記憶體已使用的大小,如果大於0,表示你的機器實體記憶體不足了,如果不是程式記憶體洩露的原因,那麼你該升級記憶體了或者把耗記憶體的任務遷移到其他機器。

free   空閒的實體記憶體的大小,我的測試機器記憶體總共1G,剩餘330M。

buff   Linux/Unix系統是用來儲存,目錄裡面有什麼內容,許可權等的快取,我本機大概佔用500多M

cache cache直接用來記憶我們開啟的檔案,給檔案做緩衝,(這裡是Linux/Unix的聰明之處,把空閒的實體記憶體的一部分拿來做檔案和目錄的快取,是為了提高 程式執行的效能,當程式使用記憶體時,buffer/cached會很快地被使用。)

si  每秒從磁碟讀入虛擬記憶體的大小,如果這個值大於0,表示實體記憶體不夠用或者記憶體洩露了,要查詢耗記憶體程序解決掉。

so  每秒虛擬記憶體寫入磁碟的大小,如果這個值大於0,同上。

bi  塊裝置每秒接收的塊數量,這裡的塊裝置是指系統上所有的磁碟和其他塊裝置,預設塊大小是1024byte。

bo 塊裝置每秒傳送的塊數量,例如我們讀取檔案,bo就要大於0。bi和bo一般都要接近0,不然就是IO過於頻繁,需要調整。

in 每秒CPU的中斷次數,包括時間中斷

cs 每秒上下文切換次數,例如我們呼叫系統函式,就要進行上下文切換,執行緒的切換,也要程序上下文切換,這個值要越小越好,太大了,要考慮調低執行緒或者程序的數目,例如在apache和nginx這種web伺服器中,我們一般做效能測試時會進行幾千併發甚至幾萬併發的測試,選擇web伺服器的程序可以由程序或者執行緒的峰值一直下調,壓測,直到cs到一個比較小的值,這個程序和執行緒數就是比較合適的值了。系統呼叫也是,每次呼叫系統函式,我們的程式碼就會進入核心空間,導致上下文切換,這個是很耗資源,也要儘量避免頻繁呼叫系統函式。上下文切換次數過多表示你的CPU大部分浪費在上下文切換,導致CPU幹正經事的時間少了,CPU沒有充分利用,是不可取的。

us 使用者CPU時間,高於70%則表示CPU有壓力。

sy 系統CPU時間,如果太高,表示系統呼叫時間長,例如是IO操作頻繁。

id  空閒 CPU時間,一般來說,id + us + sy = 100,一般我認為id是空閒CPU使用率,us是使用者CPU使用率,sy是系統CPU使用率。

wt 等待IO CPU時間。

3.記錄Load Average 到Log

#!/bin/bash

load_average_file='/home/fdipzone/logs/load_average.log'

touch $load_average_file

while :
do

    #load average and cpu
    load=`uptime`

    printf "$load $(date '+%Y-%m-%d-%T')\n" >> $load_average_file

    sleep 0.2

done

exit 0
load_average.log 記錄:
 13:28:20 up 17 min,  2 users,  load average: 0.08, 0.17, 0.27 2014-02-16-13:28:20
 13:28:20 up 17 min,  2 users,  load average: 0.08, 0.17, 0.27 2014-02-16-13:28:20
 13:28:20 up 17 min,  2 users,  load average: 0.08, 0.17, 0.27 2014-02-16-13:28:21
 13:28:21 up 17 min,  2 users,  load average: 0.08, 0.17, 0.27 2014-02-16-13:28:21
 13:28:21 up 17 min,  2 users,  load average: 0.08, 0.17, 0.27 2014-02-16-13:28:21
 13:28:21 up 17 min,  2 users,  load average: 0.08, 0.17, 0.27 2014-02-16-13:28:21
 13:28:21 up 17 min,  2 users,  load average: 0.08, 0.17, 0.27 2014-02-16-13:28:21
 13:28:22 up 17 min,  2 users,  load average: 0.08, 0.17, 0.27 2014-02-16-13:28:22
 13:28:22 up 17 min,  2 users,  load average: 0.08, 0.17, 0.27 2014-02-16-13:28:22
 13:28:22 up 17 min,  2 users,  load average: 0.08, 0.16, 0.27 2014-02-16-13:28:22
 13:28:22 up 17 min,  2 users,  load average: 0.08, 0.16, 0.27 2014-02-16-13:28:22
 13:28:23 up 17 min,  2 users,  load average: 0.08, 0.16, 0.27 2014-02-16-13:28:23
 13:28:23 up 17 min,  2 users,  load average: 0.08, 0.16, 0.27 2014-02-16-13:28:23
 13:28:23 up 17 min,  2 users,  load average: 0.08, 0.16, 0.27 2014-02-16-13:28:23

相關推薦

apache日誌分析系統cpu記憶體負載情況監控

1.根據Apache Log,獲取當天秒併發數最多的記錄 tail -10000 ./demo.fdipzone.com_access_log.2014-01-16_01 | cut -d"[" -

linux中日誌分析系統故障的修復

執行 term ima 查詢 mbr sys 是否 mark .com 步驟:1查看及分析/var/log/messsages日誌文件2查看及分析用戶登錄日誌Last:命令用於查詢成功登錄到系統的用戶記錄Lastb命令用於查詢登錄失敗的用戶記錄MBR扇區故障1.備份MBR扇

apache2.4編譯安裝搭建虛擬主機日誌分析訪問控制

com one httpd-2.4 combine led 定義 開啟 認證用戶 創建 這幾天在看LAMP,都編譯好了,今天打算做幾個虛擬主機,順便記錄下問題,php7是以php-fpm的方式與apache 連接的,php7有好多新特性 這裏就不一一說了。。。 這裏只是簡單

linux效能分析工具介紹(CPU記憶體磁碟I/O網路)

一. CPU效能評估 1.vmstat [-V] [-n] [depay [count]] -V : 打印出版本資訊,可選引數 -n : 在週期性迴圈輸出時,頭部資訊僅顯示一次 delay : 兩次輸出之間的時間間隔 count : 按照delay指定的時間間隔統計

C/C++獲取Windows系統CPU記憶體硬碟使用情況

//1.獲取Windows系統記憶體使用率 //windows 記憶體 使用率 DWORD getWin_MemUsage(){ MEMORYSTATUS ms; ::GlobalMemoryStatus(&ms); return ms.dwMemoryLo

如何在 Ubuntu 中檢查 CPU 顯示卡記憶體硬碟的使用情況溫度等資訊

夏天到了,筆記本過熱是最近一個常見的問題。監控硬體溫度或許可以幫助你診斷筆記本為什麼會過熱。本篇中,我們會瞭解如何在Ubuntu中檢查CPU的溫度。 我們將使用一個GUI工具Psensor,它允許你在Linux中監控硬體溫度。用Psensor你可以: 監控cpu和主機板的溫度監控NVidia GPU

Java效能分析問題解決(二)jvm致命錯誤導致程序直接掛掉錯誤日誌分析解決

前言:   最近伺服器一臺機器,經常發現jvm錯誤日誌,因為程式有監控,所以程序能夠自動啟動,沒有產生什麼大的影響,利用空閒時間分析下這個問題以及給出最後的解決方案: jvm出現的致命錯誤,會在預設工

chukwa——apache 日誌分析系統

一、概述 Apache 的開源專案 hadoop, 作為一個分散式儲存和計算系統,已經被業界廣泛應用。很多大型企業都有了各自基於 hadoop 的應用和相關擴充套件。當 1000+ 以上個節點的 hadoop 叢集變得常見時,叢集自身的相關資訊如何收集和分析呢?針對這個

十六.監控系統cpu.內存磁盤等自動報警發送郵件

subject sub percent tmp 工具 exc sendmai join pri 發送郵箱小工具,將它放在#/usr/bin/mail chmod +x /usr/bin/mail #!/usr/bin/python #-*- coding: UTF-8 -

Apache日誌分析工具awstats配置

日誌分析工具awstats安裝 日誌分析工具awstats配置 Apache日誌分析工具awstats Apache編譯安裝步驟 Apache日誌分析工具awstats配置 awstats軟件下載地址:http://www.awstats.org/#DOWNLOADhttps://awstat

squid代理服務的ACL訪問控制、日誌分析反向代理(4.1版本)

運行 部署 安裝 logs com 日誌文件 gcc 客戶端請求 inter squid代理服務的ACL訪問控制、日誌分析及反向代理 squid的ACL訪問控制列表 squid提供了強大的代理控制機制,通過合理的設置ACL(Access Control List,訪問控制列

linux下檢視cpu記憶體硬碟等硬體資訊的方法

說明:Linux下可以在/proc/cpuinfo中看到每個cpu的詳細資訊。但是對於雙核的cpu,在cpuinfo中會看到兩個cpu。常常會讓人誤以為是兩個單核的cpu。原文地址: http://www.hpboys.com/659.html一、linux CPU大小    [

計算機儲存結構分析(暫存器記憶體快取硬碟)

前言            一個計算機包含多種儲存器比如:暫存器、快取記憶體、記憶體、硬碟、光碟等,為啥有這麼多種儲存方式,對於不太瞭解的人,總是覺得雲裡霧裡的,搞不明白原因。        

彙編實驗一 檢視CPU記憶體用機器指令和組合語言指令程式設計

在裝完DosBox環境之後,就可以用debug模式進行彙編指令的程式設計了。 實驗內容:      首先用a指令進行資料的儲存,然後用t命令進行除錯。     可以發現ax,bx在不同的命令下發

大資料技術學習筆記之Hadoop框架基礎3-網站日誌分析MapReduce過程詳解

一、回顧     -》Hadoop啟動方式         -》單個程序             sbin/h

實驗1檢視CPU記憶體用機器指令和組合語言指令程式設計

(1)實驗截圖如下:   (2).將下面3條指令寫入從2000:0開始的記憶體單元中,利用這3條指令計算2的8次方。     mov ax,1     add ax,ax     jmp 2000:0003 給出第一次和第16次t命令結果截圖 (3)檢視日期並嘗試修改其值。 (4)向

11.如何迅速分析系統CPU的瓶頸在哪裡

 前幾節裡,通過幾個案例,分析了各種常見的 CPU 效能問題。通過這些,相信對 CPU 的效能分析已經不再陌生和恐懼,起碼有了基本的思路,也瞭解了不少 CPU 效能的分析工 具。 不過,我猜你可能也碰到了一個我曾有過的困惑: CPU 的效能指標那麼多,CPU 效能分析工具 也是一抓一大把,如果離開

11.如何迅速分析系統CPU的瓶頸在哪裏

top 經驗 dst 一定的 最大化 今天 running 測試工具 套路 前幾節裏,通過幾個案例,分析了各種常見的 CPU 性能問題。通過這些,相信對 CPU 的性能分析已經不再陌生和恐懼,起碼有了基本的思路,也了解了不少 CPU 性能的分析工 具。 不過,我猜你可能也

shell指令碼採集系統cpu記憶體、磁碟、網路資訊

有不少朋友不知道如何用shell指令碼採集linux系統相關資訊,包括cpu、記憶體、磁碟、網路等資訊,這裡指令碼小編做下講解,大家一起來看看吧。 一、cpu資訊採集 1),採集cpu使用率 採集演算法:通過/proc/stat檔案採集並計算CPU總使用率或者單個核使

ELK日誌分析平臺系統windows環境搭建和基本使用

ELK(ElasticSearch, Logstash, Kibana),三者組合在一起就可以搭建實時的日誌分析平臺啦!   Logstash主要用來收集、過濾日誌資訊並將其儲存,所以主要用來提供資訊。 ElasticSearch是一個基於Lucene的開源分散式搜尋引擎,所以主要用來進行資訊