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的開源分散式搜尋引擎,所以主要用來進行資訊