性能測試的各類監控工具大全

轉載: https://www.cnblogs.com/finer/archive/2018/02/28/8482594.htmljavascript

 

測試監控

目錄
  • 1 引言
  • 1.1 編寫目的
  • 1.2 適用對象和範圍
  • 1.3 參考文檔
  • 2 業務指標監控
  • 2.1 監控指標
  • 2.2 監控工具
  • 3 操做系統指標監控
  • 3.1 Linux
  • 3.2 Windows
  • 4 應用中間件指標監控
  • 4.1 Tomcat
  • 4.2 JBoss
  • 4.3 IIS監控
  • 4.4 JVM
  • 4.5 .NET CLR
  • 5 數據庫指標監控
  • 5.1 MySQL
  • 5.2 SQLServer
  • 5.3 MonogoDB
  • 5.4 Redis
  • 6 前端指標監控
  • 6.1 監控指標說明
  • 6.2 監控工具

訪問性能測試控制檯php

1 引言

1.1 編寫目的

本文檔主要目標是規範使用性能測試過程當中需監控的各項技術指標,描述各指標項的具體含義,並給出相應的監控工具與方法說明。本文檔將做爲測試監控的指導性規範,用以選取監控關注指標,使用監控工具。html

1.2 適用對象和範圍

監控指標及監控工具適用於使用性能測試進行性能測試項目技術質量評價依據。 預期讀者爲測試管理人員、測試實施人員、技術支持人員、項目質量管理人員、項目管理人員等系統技術質量相關人員。前端

1.3 參考文檔

相關的指標定義及解釋能夠參照:性能測試指標,本章可能會增長及減小相關指標的描述,並不與性能測試指標中相關指標衝突。java

2 業務指標監控

2.1 監控指標

業務指標主要包括併發用戶數、響應時間、處理能力,成功率這四個指標,目前大部分壓測工具都能將這些指標放在壓測工具裏面。python

2.2 監控工具

2.2.1 性能測試

性能測試分佈式壓測工具,將相關業務指標集成在平臺上。mysql

2.2.2 後臺日誌

經過後臺日志log,採用分析工具也可進行分析得出TPS,響應時間等。linux

3 操做系統指標監控

3.1 Linux

3.1.1 監控指標說明

指標類型 指標名稱 指標描述
CPU CPU utilization CPU 的使用時間百分比
  System mode CPU utilization 在系統模式下使用 CPU 的時間百分比
  User mode CPU utilization 在用戶模式下使用 CPU 的時間百分比
Memory Page-in rate 每秒鐘讀入到物理內存中的頁數
  Page-out rate 每秒鐘寫入頁面文件和從物理內存中刪除的頁數
  Paging rate 每秒鐘讀入物理內存或寫入頁面文件的頁數
Disk Disk rate 磁盤傳輸速率

3.1.2 監控工具

3.1.2.1 性能測試

性能測試壓測工具監控操做系統指標主要有:
CPU%:全部CPU資源利用率
網絡流量:每秒入網出網多少Kb
磁盤:每秒讀寫多少Kb ios

3.1.2.2 命令

Linux提供豐富的命令進行監控,針對CPU、Memory、I/O等有一些列命令及參數進行監控。具體以下:
top : 總體查看資源狀況。
sar :CPU資源消耗
vmstat:內存相關消耗
iostat: 磁盤相關消耗
………
具體用法和參數,能夠參照聯機幫助(man top等)。 c++

3.1.2.3 Shell

能夠將以上命令經過shell來包裝,每隔多少秒監控一次,總共監控多少次,將監控結果寫到文件裏面。
例如:下面shell就是將CPU Load每隔3秒寫到文件裏面。 

while true ; do uptime | awk -F' average: ' '{print $2}' ;sleep 3;done >> `hostname`_`date +%Y%m%d_%H%M`.uptime 

3.1.2.4 nmon

  • Nmon安裝 將 nmonXXX.tar.gz 文件複製到計算機。若是使用 FTP,請記住使用二進制模式。
    解壓該文件,運行 gzip -d nmonXXX.tar.gz
    提取該文件,運行tar xvf nmonXXX.tar 

  • Nmon實時監控 登錄要監控的系統,進入nmon安裝目錄中
    輸入命令nmon,運行 nmon(如root用戶可能須要輸入./nmon).顯示的起始屏幕及CPU等信息。如圖: 

依次按c,m,d便可顯示CPU,內存,磁盤等信息。如圖: 

Nmon運行時的鍵盤命令

命令 說明
c 提供關於物理CPU使用的詳細信息
m 提供內存使用的詳細信息:系統(內核)和進程,活動虛擬內存
d 提供關於磁盤,磁盤類型大小,可用空間,卷組,適配器等更詳細的信息
t 當前進程詳細情
P Paging space 使用狀況
k 顯示內核信息
+ Nmon 結果保存爲文件
  • Nmon 結果保存爲文件 nmon -f -s 60 -c 30(每60s收集一次數據,共收集30次) nmon.sh 賦執行權限:chmod +x nmon.sh 執行nmon.sh 便可運行.

3.2 Windows

3.2.1 監控指標說明

提供的監控指標比較豐富,包括CPU、內存、網絡、磁盤以及每一個進程的資源。

3.2.2 監控工具

3.2.2.1 性能測試

同3.1.2.1 性能測試

3.2.2.2 資源管理器

Windows操做系統自帶的windows資源管理器,在任務欄裏面點擊右鍵,啓動任務管理器:

點擊性能面板,再點擊資源監視器:

3.2.2.3 性能監視器

Windows有自帶的性能監視器,能夠指定相關的監控指標進行監控,將結果保存爲文件,從windows控制面板->管理工具->性能監視器->新建數據蒐集器,添加你感興趣的指標計數器。

4 應用中間件指標監控

4.1 Tomcat

4.1.1 監控指標說明

Tomcat主要監控線程工做狀態、請求數、 會話數、線程數、虛擬主機、JAVA虛擬機內存佔用狀況。

4.1.2 監控工具

4.1.2.1 Tomcat提供的manager

經過使用Applications Manager(又稱opManager)來進行監控。
使用這種方式,所監控Tomcat必須運行manager應用,缺省狀況下,該應用老是運行在服務器中的。 

  • 增長Manager Role: 訪問manager應用的用戶的角色權限必須是 manager. 修改<TOMCAT_HOME>/conf目錄下的tomcat-users.xml文件,在<tomcat-users>節點下添加一個user節點,便可建立一個用戶。Tomcat版本不一樣配置也有差別,5.x和6.x建立的用戶角色應爲manager,7.x建立的用戶角色爲manager-jmx,舉例以下: 

    • 在5.x和6.x中建立一個manager角色的用戶,用戶名爲admin,密碼爲chenfeng: <user username="admin" password="chenfeng" roles="manager"/>

    • 在7.x中建立一個manager角色的用戶,用戶名爲admin,密碼爲xxxxx: <user username="admin" password="chenfeng" roles="manager-jmx,manager-script,manager-status"/> 修改配置後,須要從新啓動 Tomcat 服務器。鏈接manager時將用戶名/密碼指定爲admin/xxxxxxxx

  • 經過瀏覽器訪問http://localhost:8080/manager/jmxproxy ,輸入用戶名密碼,而後就能夠看到返回了全部的監控信息

4.1.2.2 Probe

vi /usr/local/tomcat/conf//tomcat-users.xml <?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="manager"/> <role rolename="standard"/> <role rolename="tomcat"/> <role rolename="admin"/> <role rolename="role1"/> <user username="tomcat" password="tomcat" roles="tomcat"/> <user username="both" password="tomcat" roles="tomcat,role1"/> <user username="probe" password="probe" roles="admin,manager"/> <user username="role1" password="tomcat"roles="role1"/> </tomcat-users> 
  • 設置環境變量,獲取服務器狀態 # vi /etc/profile JAVA_OPTS=-Dcom.sun.management.jmxremote export JAVA_OPTS 

  • 重啓動服務器 

  • 輸入http://localhost/probe/,輸入用戶名和密碼 便可進入,這裏比較精彩的是對內存的監視,動態顯示了JVM的內存圖表

4.1.2.3 JConsole

Linux系統下,須要修改 tomcat主目錄\bin\ catalina.sh文件 增長一行 CATALINA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=218.28.198.188 -Dcom.sun.management.jmxremote.port=9527 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false" 而後使用JConsole就能夠監控Tomcat。 點擊%JAVA_HOME%\bin下的jconsole.exe便可

4.1.2.4 JProfile

  • 安裝 首先到http://www.ej-technologies.com/download/overview.html 上下載 linux 和 windows版本的安裝文件. 將 linux版本的文件(jprofiler_linux_7_0_1.sh),上傳到服務器上, 將其安裝。 安裝命令: sh jprofile_linux_7_0_1.sh –c 便可。 Windows版本安裝忽略,一路next便可.

  • 按照上圖 設置服務器上須要監控的應用啓動參數, 如上內容是: 
    • agentpath:/home/ivanzhang/jprofile7/bin/linux-86/libjprofilerti.so=port=8849 將其加入到應用的啓動腳本

設置好以後, 服務器上的應用,會等待你客戶端鏈接上之後,才真正啓動應用。 Jprofile鏈接上以後,則能夠看到一下界面了, 它能夠幫助你分析內存信息,線程信息,jdbc鏈接等等, 如下是監控本地開發機的應用狀況,能夠看到,哪一個線程在跑哪些SQL,由哪些方法調用的。

4.2 JBoss

4.2.1 監控指標說明

JBoss主要監控線程工做狀態、請求數、 會話數、線程數、虛擬主機、JAVA虛擬機內存佔用狀況。

4.2.2 監控工具

4.2.2.1 JBoss管理控制檯

若是須要監控jboss的系統資源,如:jboss的基本配置狀況,jvm的利用率,線程池的使用狀況,可使用web-console進行監控。

  • 配置web-console 具體方法同jmx-console,就是位置不一樣,具體方法參考jmx-console配置:
  • jboss-web xml 、 web.xml 在$JBOSS_HOME/vcom/deploy/management/console-mgr.sar/web-console.war/WEB-INF下; 
  • login-config.xml仍是原來的那個,把application-policy名爲$webConsoleDomain的部分改爲你須要的web-console; 
  • web-console-users.properties、web-console-roles.properties定義了訪問 web-console的用戶、用戶角色,具體位置,使用find /jboss -name web-console-users.properties 找到之後能夠修改用戶名、密碼。

  • 監控 使用http://localhost:8080/web-console/ 中,獲取當前JBOSS-WEB應用模塊的負載分擔狀況,並能夠查看到當前JAVA虛擬機的內存使用狀況,及線程池使用狀況。 使用http://localhost:8080/web-console/status,能夠進一步監控到每一個線程的狀態。

4.2.2.2 Probe

具體能夠參照4.1.2.2 Probe

4.2.2.3 JConsole

具體能夠參照4.1.2.3 JConsole

4.2.2.4 JProfile

具體能夠參照4.1.2.4 JProfile

4.3 IIS監控

4.3.1 監控指標說明

主要針對會話、事務、緩存、內存、線程池等進行監控,具體以下:

  • ASP Session Duration 最近進行的會話所持續的時間(以毫秒爲單位)。
  • ASP Sessions Current 正在使用服務的會話數。   
  • IIS Global Total Files Cached 添加到 WWW 和 FTP 服務的緩存的文件總數。
  • Web Total Not Found Errors 因爲未找到所請求的文檔,Web 服務沒法知足的請求數;一般以 HTTP 404 錯誤代碼方式向客戶端報告。
  • ASP Transactions Committed 已提交的事務數。
  • ASP Transactions Pending 正在處理的事務數。
  • ASP Transactions/Sec 每秒啓動的事務數。
  • IIS Global URI Cache Hits URI 緩存中的成功查找總數。
  • IIS Global URI Cache Hits % URI 緩存命中數佔所有緩存請求的比率。
  • IIS Global URI Cache Misses URI 緩存中的未成功查找總數

4.3.2 監控工具

4.3.2.1 集成的性能監視器

在性能監視器裏面添加IIS應用計數器便可。

4.4 JVM

4.4.1 監控指標說明

JVM關注的指標主要是java虛擬機內存年輕代、年老代堆大小以及GC頻率及回收時間。 JVM堆內存結構以下:

  • Young(年輕代) 年輕代分三個區。一個Eden區,兩個 Survivor區。大部分對象在Eden區中生成。當Eden區滿時,還存活的對象將被複制到Survivor區(兩個中的一個),當這個 Survivor區滿時,此區的存活對象將被複制到另一個Survivor區,當這個Survivor區也滿了的時候,從第一個Survivor區複製過來的而且此時還存活的對象,將被複制「年老區(Tenured)」。須要注意,Survivor的兩個區是對稱的,沒前後關係,因此同一個區中可能同時存在從Eden複製過來對象,和從前一個Survivor複製過來的對象,而複製到年老區的只有從第一個Survivor去過來的對象。並且,Survivor區總有一個是空的。
  • Tenured(年老代) 年老代存放從年輕代存活的對象。通常來講年老代存放的都是生命期較長的對象。
  • Perm(持久代) 用 於存放靜態文件,現在Java類、方法等。持久代對垃圾回收沒有顯著影響,可是有些應用可能動態生成或者調用一些class,例如Hibernate等, 在這種時候須要設置一個比較大的持久代空間來存放這些運行過程當中新增的類。持久代大小經過-XX:MaxPermSize=進行設置。 發生在年輕代的垃圾回收叫作GC/Minor GC,發生在年老代和永久代的垃圾回收叫作Full GC.

4.4.2 監控工具

4.4.2.1 JVM自帶的jstat

  • jstat -gc pid 能夠顯示gc的信息,查看gc的次數,及時間。 其中最後五項,分別是young gc的次數,young gc的時間,full gc的次數,full gc的時間,gc的總時間。
  • jstat -gccapacity pid 能夠顯示,VM內存中三代(young,old,perm)對象的使用和佔用大小,如:PGCMN顯示的是最小perm的內存使用量,PGCMX顯示的是perm的內存最大使用量, PGC是當前新生成的perm內存佔用量,PC是但前perm內存佔用量。 其餘的能夠根據這個類推, OC是old內純的佔用量。
  • jstat -gcutil pid 統計gc信息統計。
  • jstat -gcnew pid 年輕代對象的信息。
  • jstat -gcnewcapacity pid 年輕代對象的信息及其佔用量。
  • jstat -gcold pid old代對象的信息。
  • jstat -gcoldcapacity pid old代對象的信息及其佔用量。
  • jstat -gcpermcapacity pid perm對象的信息及其佔用量。
  • jstat -class pid 顯示加載class的數量,及所佔空間等信息。
  • jstat -compiler pid 顯示VM實時編譯的數量等信息。
  • jstat -printcompilation pid 當前VM執行的信息。 Jstat顯示的信息中一些術語的中文解釋:
    • S0C:年輕代中第一個survivor(倖存區)的容量 (字節)
    • S1C:年輕代中第二個survivor(倖存區)的容量 (字節)
    • S0U:年輕代中第一個survivor(倖存區)目前已使用空間 (字節)
    • S1U:年輕代中第二個survivor(倖存區)目前已使用空間 (字節)
    • EC:年輕代中Eden(伊甸園)的容量 (字節)
    • EU:年輕代中Eden(伊甸園)目前已使用空間 (字節)
    • OC:Old代的容量 (字節)
    • OU:Old代目前已使用空間 (字節)
    • PC:Perm(持久代)的容量 (字節)
    • PU:Perm(持久代)目前已使用空間 (字節)
    • YGC:從應用程序啓動到採樣時年輕代中gc次數
    • YGCT:從應用程序啓動到採樣時年輕代中gc所用時間(s)
    • FGC:從應用程序啓動到採樣時old代(全gc)gc次數
    • FGCT:從應用程序啓動到採樣時old代(全gc)gc所用時間(s)
    • GCT:從應用程序啓動到採樣時gc用的總時間(s)
    • NGCMN:年輕代(young)中初始化(最小)的大小 (字節)
    • NGCMX:年輕代(young)的最大容量 (字節)
    • NGC:年輕代(young)中當前的容量 (字節)
    • OGCMN:old代中初始化(最小)的大小 (字節) 
    • OGCMX:old代的最大容量 (字節)
    • OGC:old代當前新生成的容量 (字節)
    • PGCMN:perm代中初始化(最小)的大小 (字節) 
    • PGCMX:perm代的最大容量 (字節) 
    • PGC:perm代當前新生成的容量 (字節)
    • S0:年輕代中第一個survivor(倖存區)已使用的佔當前容量百分比
    • S1:年輕代中第二個survivor(倖存區)已使用的佔當前容量百分比
    • E:年輕代中Eden(伊甸園)已使用的佔當前容量百分比
    • O:old代已使用的佔當前容量百分比
    • P:perm代已使用的佔當前容量百分比
    • S0CMX:年輕代中第一個survivor(倖存區)的最大容量 (字節)
    • S1CMX :年輕代中第二個survivor(倖存區)的最大容量 (字節)
    • ECMX:年輕代中Eden(伊甸園)的最大容量 (字節)
    • DSS:當前須要survivor(倖存區)的容量 (字節)(Eden區已滿)
    • TT: 持有次數限制
    • MTT : 最大持有次數限制

4.4.2.2 shell

將jstat中感興趣的相關指標經過shell保存爲文件,例如如下shell是每隔2秒鐘將jstat監控的信息保存到文件中。

while true;do /usr/local/java/bin/jstat -gcutil `/usr/local/java/bin/jps | grep -v 'Jps' | grep -v 'Jstat' | egrep 'OrderPlatformLauncher|Bootstrap|TcpServerLauncher'| awk '{print $1}'` | grep -v 'S0' | awk '{print strftime("%m-%d-%H:%M:%S",systime()),$0}';sleep 2;done >> `hostname`_`date +%Y%m%d_%H%M`.jstat 

4.4.2.3 jmap

jmap命令能夠得到運行中的jvm的堆的快照,從而能夠離線分析堆,以檢查內存泄漏,檢查一些嚴重影響性能的大對象的建立,檢查系統中什麼對象最多,各類對象所佔內存的大小等等

命令格式 jmap [options] pid -dump:[live,]format=b,file=<filename> --dump堆到文件,live指明是活着的對象,file指定文件名。

由於在dump:live前會進行full gc,所以不加live的堆大小要大於加live堆的大小 -finalizerinfo 打印等待回收對象的信息

-heap 打印堆總結 

-histo[:live] 打印堆的對象統計,包括對象數、內存大小等等

-permstat 打印java堆perm區的classloader統計 

-F 強制,在jmap -dump或jmap -histo中使用,若是pid沒有相應的回覆 -J 提供jvm選項,如:-J-Xms256m

4.4.2.4 jstack

  • 介紹 jstack用於打印出給定的java進程ID或core file或遠程調試服務的Java堆棧信息,若是是在64位機器上,須要指定選項"-J-d64",Windows的jstack使用方式只支持如下的這種方式:
    jstack [-l] pid
    若是java程序崩潰生成core文件,jstack工具能夠用來得到core文件的java stack和native stack的信息,從而 能夠輕鬆地知道java程序是如何崩潰和在程序何處發生問題。另外,jstack工具還能夠附屬到正在運行的java程序中,看到當時運行的java程序 的java stack和native stack的信息, 若是如今運行的java程序呈現hung的狀態,jstack是很是有用的。 
  • 命令格式
    jstack [ option ] pid
    jstack [ option ] executable core
    jstack [ option ] [server-id@]remote-hostname-or-IP 
  • 經常使用參數說明 
  • options:
    executable Java executable from which the core dump was produced.
    (多是產生core dump的java可執行程序)
    core 將被打印信息的core dump文件
    remote-hostname-or-IP 遠程debug服務的主機名或ip
    server-id 惟一id,假如一臺主機上多個遠程debug服務 
  • 基本參數:
    -F當’jstack [-l] pid’沒有相應的時候強制打印棧信息
    -l長列表. 打印關於鎖的附加信息,例如屬於java.util.concurrent的ownable synchronizers列表.
    -m打印java和native c/c++框架的全部棧信息.
    -h | -help打印幫助信息
    pid 須要被打印配置信息的java進程id,能夠用jps查詢. 
  • 使用示例

4.4.2.5 JProfile

JProfile也能夠監控JVM,而且以圖形化的方式進行展現,方便信息的查看及分析。具體能夠參照4.1.2.4章節。

4.4.2.6 JConsole

JConsole也能夠監控JVM,而且以圖形化的方式進行展現,方便信息的查看及分析。具體能夠參照4.1.2.3章節。

4.5 .NET CLR

4.5.1 監控指標說明

.NET CLR是有微軟開發的一臺虛擬平臺,支持C#/C++/VB等,此虛擬平臺功能相似於JVM. .NET CLR主要功能以下:

  • 平臺無關
  • 跨語言集成
  • 自動內存管理
  • 版本控制
  • 安全 .NET CLR Memory計數器以下:

性能計數器 說明

指標 解釋
# Bytes in all Heaps(全部堆中的字節數) 顯示如下計數器值的總和,此計數器指示在垃圾回收堆上分配的當前內存(以字節爲單位)。
# GC Handles(GC 處理數目) 顯示正在使用的垃圾回收處理的當前數目。
# Gen 0 Collections(第 2 級回收次數) 顯示自應用程序啓動後第 0 級對象(即最年輕、最近分配的對象)被垃圾回收的次數。
# Gen 1 Collections(第 2 級回收次數) 顯示自應用程序啓動後對第 1 級對象進行垃圾回收的次數。
# Gen 2 Collections(第 2 級回收次數) 顯示自應用程序啓動後對第 2 級對象進行垃圾回收的次數。此計數器在第 2 級垃圾回收(也稱做完整垃圾回收)結束時遞增。
# Induced GC(引起的 GC 的數目) 顯示因爲對 GC.Collect 的顯式調用而執行的垃圾回收的峯值次數。讓垃圾回收器對其回收的頻率進行微調是切實可行的。
# of Pinned Objects(釘住的對象的數目) 顯示上次垃圾回收中遇到的釘住的對象的數目。釘住的對象是垃圾回收器不能移入內存的對象。
# of Sink Blocks in use(正在使用的接收塊的數目) 顯示正在使用的同步塊的當前數目。同步塊是爲存儲同步信息分配的基於對象的數據結構。
# Total committed Bytes(提交字節的總數) 顯示垃圾回收器當前提交的虛擬內存量(以字節爲單位)。提交的內存是在磁盤頁面文件中保留的空間的物理內存。
# Total reserved Bytes(保留字節的總數) 顯示垃圾回收器當前保留的虛擬內存量(以字節爲單位)。保留內存是爲應用程序保留(但還沒有使用任何磁盤或主內存頁)的虛擬內存空間。
% Time in GC(GC 中時間的百分比) 顯示自上次垃圾回收週期後執行垃圾回收所用運行時間的百分比。
Allocated Bytes/second(每秒分配的字節數) 顯示每秒在垃圾回收堆上分配的字節數。
Finalization Survivors(完成時存留對象數目) 顯示因正等待完成而從回收後保留下來的進行垃圾回收的對象的數目。若是這些對象保留對其餘對象的引用,則那些對象也保留下來,但此計數器不對它們計數。
Gen 0 heap size(第 2 級堆大小) 顯示在第 0 級中能夠分配的最大字節數;它不指示在第 0 級中當前分配的字節數。
Gen 0 Promoted Bytes/Sec(從第 1 級提高的字節數/秒) 顯示每秒從第 0 級提高到第 1 級的字節數。內存在從垃圾回收保留下來後被提高。
Gen 1 heap size(第 2 級堆大小) 顯示第 1 級中的當前字節數;此計數器不顯示第 1 級的最大大小。
Gen 1 Promoted Bytes/Sec(從第 1 級提高的字節數/秒) 顯示每秒從第 1 級提高到第 2 級的字節數。在此計數器中不包括只因正等待完成而被提高的對象。
Gen 2 heap size(第 2 級堆大小) 顯示第 2 級中當前字節數。不直接在此代中分配對。
Large Object Heap size(大對象堆大小) 顯示大對象堆的當前大小(以字節爲單位)。垃圾回收器將大於 20 KB 的對象視做大對象而且直接在特殊堆中分配大對象;
Promoted Finalization-Memory from Gen 0(從第 1 級提高的完成內存) 顯示只因等待完成而從第 0 級提高到第 1 級的內存的字節數。
Promoted Finalization-Memory from Gen 1(從第 1 級提高的完成內存) 顯示只因等待完成而從第 1 級提高到第 2 級的內存的字節數。
Promoted Memory from Gen 0(從第 1 級提高的內存) 顯示在垃圾回收後保留下來而且從第 0 級提高到第 1 級的內存的字節數。
Promoted Memory from Gen 1(從第 1 級提高的內存) 顯示在垃圾回收後保留下來而且從第 1 級提高到第 2 級的內存的字節數。

4.5.2 監控工具

4.5.2.1 集成的性能監視器

Windows性能監視器中,能夠將.NET CLR Memory中相關的計數器加入到監控中。

4.5.2.2 .NET Memory Profiler

Profiler能夠調試4種類型的.NET程序,分別爲:

  • 桌面應用程序
  • WPF程序
  • ASP.NET程序
  • .NET Service程序 對應選擇軟件的文件菜單以下

Profler調試共有三種方式選擇:

  • 啓動跟蹤(Profiler Application)
    選定對應的調試方式,如調試桌面程序,選中Profiler Application,而後選擇須要啓動的執行文件,Profiler將做爲宿主程序啓動程序開始實時監控內存. 
  • 附加進程(Attach Process)
    將Profiler附加到指定的進程上,此時不能實時監控內存狀況,只可以收集內存鏡像. 
  • 導入內存鏡像(Import Memory Dump)
    能夠選擇dmp爲後綴的內存鏡像文件,好比Windbg以及DebugDiag導出的鏡像文件,此時不能實時監控內存狀況,只可以收集內存鏡像且不能跟蹤非託管資源.
    具體操做以下: 
  • 啓動程序
    首先,選擇須要調試類型,選擇 Profiler Application,選擇好須要啓動的程序exe文件. 

若是須要設置啓動參數,則設置好命令行參數以及工做目錄.
選擇」Next」進行收集數據的一些選項設置,通常直接按」Star」按鈕開始調試程序. 

  • 收集數據
    選擇菜單欄的收集按鈕,收集堆數據,第一個爲收集所有堆上的數據,第二個爲只收集第0代的數據. 

  • 從新啓動和中止
    調試完畢後經過中止按鈕跟蹤程序,經過啓動按鈕從新啓動上一次的調試程序. 
  • 查看收集數據
    Profiler上有6個頁卡,分別爲: 

  • Type/Resource 類型/資源頁卡

  • Type/Resource Details類型/資源明細頁卡
  • Instance Details 實例明細頁卡
  • Call Stacks/Methods調用堆棧頁卡
  • Navtive Memory 本地內存頁卡
  • Real-Time-實時跟蹤頁卡

5 數據庫指標監控

5.1 MySQL

5.1.1 監控指標說明

主要針對SQL耗時、吞吐量(QPS/TPS)、命中率、鎖等待等指標進行監控。

5.1.2 監控工具

5.1.2.1 命令

  • 效率低下SQL
    mysqldumpslow -s at -t 20 host-slow.log 
  • #mysql qps查詢 QPS = Questions(or Queries) / Seconds
    mysql -u root -p123456 -e 'SHOW /!50000 GLOBAL / STATUS LIKE "Questions"'
    mysql -u root -p123456 -e 'SHOW /!50000 GLOBAL / STATUS LIKE "Queries"' 
  • #mysql Key Buffer 命中率
    key_buffer_read_hits = (1 - Key_reads / Key_read_requests) 100% key_buffer_write_hits= (1 - Key_writes / Key_write_requests) 100%
    mysql -u root -p123456 -e 'SHOW /!50000 GLOBAL / STATUS LIKE "Key%"' 
  • #mysql Innodb Buffer 命中率
    innodb_buffer_read_hits=(1-Innodb_buffer_pool_reads/ Innodb_buffer_pool_read_requests) 100%
    mysql -u root -p123456 -e 'SHOW /!50000 GLOBAL */ STATUS LIKE "Innodb_buffer_pool_read%"' 
  • #mysql Query Cache 命中率
    Query_cache_hits= (Qcache_hits / (Qcache_hits + Qcache_inserts)) 100%
    mysql -u root -p123456 -e 'SHOW /!50000 GLOBAL */ STATUS LIKE "Qcache%"' 
  • #mysql Table Cache 狀態量
    mysql -u root -p123456 -e 'SHOW /!50000 GLOBAL / STATUS LIKE "Open%"' 
  • #mysql Thread Cache 命中率
    Thread_cache_hits = (1 - Threads_created / Connections) 100% 正常來講,Thread Cache 命中率要在 90% 以上纔算比較合理。
    mysql -u root -p123456 -e 'SHOW /!50000 GLOBAL */ STATUS LIKE "Thread%"' 
  • #mysql 鎖定狀態
    鎖定狀態包括表鎖和行鎖兩種,咱們能夠經過系統狀態變量得到鎖定總次數,鎖定形成其餘線程等待的次數,以及鎖定等待時間信息
    mysql -u root -p123456 -e 'SHOW /!50000 GLOBAL / STATUS LIKE "%lock%"' 

5.1.2.2 iDBCloud

  • 在阿里雲RDS管理控制檯,點擊登錄數據庫

  • 輸入實例名、用戶名和密碼

  • 點擊實例性能

  • 點擊實例性能

MySQL Status Inoformation : MySQL狀態信息
【ins】表示insert語句每秒執行次數
【upd】表示update語句每秒執行次數
【del】表示delete語句每秒執行次數
【sel】表示select語句每秒執行次數
【hit%】表示緩存命中率,主要指innodb_buffer_pool的命中率
InnoDB Row Operation : InnoDB存儲引擎行操做
【read】表示InnoDB存儲引擎表的讀取記錄行數
【insert】表示InnoDB存儲引擎表的寫入記錄行數
【update】表示InnoDB存儲引擎表的更新記錄行數
【delete】表示InnoDB存儲引擎表的寫入記錄行數
Thread : 鏈接數相關
【running】表示活躍的鏈接數,即正在執行sql的鏈接
【connected】表示鏈接在實例上的空閒鏈接,即未執行sql的鏈接
Network : 網絡流量,單位爲KB
【in】表示進入實例的網絡流量
【out】表示流出實例的網絡流量 

5.1.2.3 PHPMyAdmin

phpMyAdmin是Mysql的管理工具。相比一些Mysql客戶端的GUI管理工具(如「MySQL Administrator」),phpMyAdmin是Web模式的。phpMyAdmin 是以PHP爲基礎,以Web-Base方式架構在網站主機上的MySQL的資料庫管理工具。
在phpMyAdmin直接點擊狀態,能夠查看SQL查詢,InnoDB,Cache,線程等狀態信息。 

5.1.2.4 性能測試

經過性能測試RDS監控,能夠監控當前活躍鏈接數、IOPS、TPS、磁盤容量、QPS。

5.2 SQLServer

5.2.1 監控指標說明

監控項 解釋
鏈接數 當前總鏈接數
緩存命中率 緩存命中率
平均每秒全表掃描數 平均每秒全表掃描次數
每秒SQL編譯 實例中每秒編譯的SQL語句數
每秒檢查點寫入Page數 每秒檢查點寫入Page數
每秒登陸次數 每秒登陸次數
每秒鎖超時次數 每秒鎖超時次數
每秒死鎖次數 每秒死鎖次數
每秒鎖等待次數 每秒鎖等待次數
網絡流量 SQL Server實例平均每秒鐘輸入和輸出的流量。單位爲KB。
QPS/TPS 平均每秒SQL語句執行次數和事務數。
CPU使用率 RDS實例CPU使用率(佔操做系統總數)
IOPS RDS實例的IOPS(每秒IO請求次數)
磁盤空間 RDS實例空間佔用

5.2.2 監控工具

5.2.2.1 SQLServer活動監視器

SQL Server 數據庫提供了專門的工具對數據庫的活動進行監控,這個工具稱爲「活動監視器」。使用活動監視器能夠獲取與數據庫引擎相關的用戶鏈接狀態及其所保存的鎖等有用信息。

  • 打開活動監視器
  • 打開SQL Server Management Studio並鏈接到數據庫引擎服務器。
  • 在「對象資源管理器」窗口中,展開「管理」節點。
  • 雙擊「活動監視器」節點,打開「活動監視器」對話框,如圖1所示。

該「活動監視器」對話框包含3組選項,分別是「進程信息」選項、「按進程分類的鎖」選項和「按對象分類的鎖」選項。
「進程信息」選項:包含有關鏈接到數據庫的信息
「按進程分類的鎖」選項:顯示按鏈接對鎖進行排序
「按對象分類的鎖」選項:顯示按對象名稱對鎖進行排序 

  • 查看當前進程的屬性
    用戶可使用「進程信息」選項:查看當前進程的屬性。
    用戶能夠經過對話框頂部的「篩選器」按鈕,打開「篩選設置」對話框,如圖2所示。 

應用篩選器能夠減小顯示的信息量。對數據庫鎖定問題進行故障排除時,可使用「活動監視器」終止死鎖或無響應的進程。 

  • 查看某一個進程的詳細信息
    若要查看某一個進程的詳細信息,能夠右擊某一進程,在彈出的快捷菜單中選擇「詳細信息」命令,打開「進程詳細信息」對話框。 

5.2.2.2 SQLServer Profile

SQL Server Profiler(事件探查器)是SQL跟蹤的圖形用戶界面,用於監視SQL Server 數據庫引擎或SQL Server Analysis Services(分析服務)的實例。用戶能夠捕獲有關每一個事件的數據,並將其保存到文件或表中供之後分析。

  • 建立跟蹤
    用戶可使用SQL Server Profiler工具建立跟蹤,具體過程以下: 
  • 依次選擇「開始」|「全部程序」|「Microsoft SQL Server」|「性能工具」|「SQL Server Profiler」,打開事件探查器。
  • 打開「文件」菜單,選擇「新建跟蹤」命令,並鏈接到SQL Server實例。此時,將顯示「跟蹤屬性」對話框,如圖所示:

  • 在「跟蹤名稱」文本框中輸入跟蹤的名稱。在「使用模板」下拉列表框中,爲此跟蹤選擇一個跟蹤模板。若是不想使用模板,則選擇「空白」選項。
  • 設置全局跟蹤選項 用戶能夠設置應用於SQL Server 2005 Profiler的全局選項,具體操做以下:
  • 依次選擇「開始」|「全部程序」|「Microsoft SQL Server 2005」|「性能工具」|「SQL Server Profiler」,打開事件探查器。
  • 依次選擇「工具」|「選項」命令,打開「常規選項」對話框,如圖所示:

  • 指定跟蹤文件的事件和數據列
    用戶可使用SQL Server Profiler指定跟蹤的事件類和數據列,具體操做過程以下: 
  • 依次選擇「開始」|「全部程序」|「Microsoft SQL Server」|「性能工具」|「SQL Server Profiler」,打開事件探查器。 
  • 依次選擇「文件」|「新建跟蹤」命令,或者在正在運行跟蹤時,選擇「文件」|「屬性」命令,打開「跟蹤屬性」選項卡。 
  • 選擇「事件選擇」選項卡,如圖所示: 

「事件選項」選項卡包含一個網格控件,網格控件是包含全部可跟蹤事件類的表。每一個事件類在表中佔一行。根據用戶所鏈接的服務器的類型和版本的不一樣,事件類會略有不一樣。事件類是由網格的「Events」列進行標識,並按事件類別進行分組。其他列則列出每一個事件類能夠返回的數據列。 

  • 將跟蹤結果保存到表
    用戶可使用SQL Server Profiler將跟蹤結果保存到數據庫表,具體操做過程以下:
    依次選擇「開始」|「全部程序」|「Microsoft SQL Server 」|「性能工具」|「SQL Server Profiler」,打開事件探查器。在「文件」菜單上,選擇「新建跟蹤」命令,並鏈接到SQL Server實例。此時,將顯示「跟蹤屬性」對話框。輸入跟蹤的名稱,而後選中「保存到表」複選框。彈出「鏈接到服務器」對話框,鏈接到將包含跟蹤表的SQL Server 2005數據庫服務器實例。在「目標表」對話框中,從「數據庫」列表中選擇相應的數據庫,全部者,輸入表的名稱,如圖所示: 

完成設置後,單擊「肯定」按鈕,返回「跟蹤屬性」對話框。

5.2.2.3 性能監視器

系統性能監視器能夠用於監視系統資源的使用率。它使用計數器形式收集和查看服務器資源(如處理器和內存使用的狀況)和許多SQL Server 2005資源(如鎖和事務)的實時性能數據。 

  • 運行系統性能監視器
    系統監視器使用遠程過程調用從SQL Server 2005收集信息。擁有運行系統監視器的Windows權限的任何用戶均可以使用系統監視器來監視SQL Server 2005。與全部性能監視器工具同樣,使用系統監視器監視SQL Server 2005時,性能方面會受到一些影響。特定實例中的實際影響取決於硬件平臺、計數器數量以及所選更新間隔。可是,將系統監視器與SQL Server 2005集成能夠儘可能減小對性能的影響。 
  • SQL Server 2005性能對象
    SQL Server 2005數據庫提供了一組針對性能的數據對象,供用戶監視SQL Server 2005時使用。當監視SQL Server 2005和Windows操做系統以調查與性能有關的問題時,請關注3個主要方面:磁盤活動、處理器使用率和內存使用量。這些性能對象在系統的「性能監視器」工具的「添加計數器」對話框的「性能對象」下拉列表框中能夠找到。 

5.2.2.4 iDBCloud

參照5.1.2.2 iDBCloud.

5.3 MonogoDB

5.3.1 監控指標說明

主要監控以下指標:

  • inserts/s 每秒插入次數 
  • query/s 每秒查詢次數 
  • update/s 每秒更新次數 
  • delete/s 每秒刪除次數 
  • getmore/s 每秒執行getmore次數 
  • command/s 每秒的命令數,比以上插入、查找、更新、刪除的綜合還多,還統計了別的命令 
  • flushs/s 每秒執行fsync將數據寫入硬盤的次數。 
  • mapped/s 全部的被mmap的數據量,單位是MB, 
  • vsize 虛擬內存使用量,單位MB 
  • res 物理內存使用量,單位MB 
  • faults/s 每秒訪問失敗數(只有Linux有),數據被交換出物理內存,放到swap。不要超過100,不然就是機器內存過小,形成頻繁swap寫入。此時要升級內存或者擴展 
  • locked % 被鎖的時間百分比,儘可能控制在50%如下吧 
  • idx miss % 索引不命中所佔百分比。若是過高的話就要考慮索引是否是少了 
  • q t|r|w 當Mongodb接收到太多的命令而數據庫被鎖住沒法執行完成,它會將命令加入隊列。這一欄顯示了總共、讀、寫3個隊列的長度,都爲0的話表示mongo毫無壓力。高併發時,通常隊列值會升高。
  • 慢查,效率低下的查詢

5.3.2 監控工具

5.3.2.1 MonogoStat命令

mongostat是mongdb自帶的狀態檢測工具,在命令行下使用。它會間隔固定時間獲取mongodb的當前運行狀態,並輸出。若是你發現數據庫忽然變慢或者有其餘問題的話,你第一手的操做就考慮採用mongostat來查看mongo的狀態。

5.3.2.2 Profiler

相似於MySQL的slow log, MongoDB能夠監控全部慢的以及不慢的查詢。

Profiler默認是關閉的,你能夠選擇所有開啓,或者有慢查詢的時候開啓。 例如:

> use test switched to db test > db.setProfilingLevel(2); {"was" : 0 , "slowms" : 100, "ok" : 1} // "was" is the old setting > db.getProfilingLevel() 

查看Profiler日誌: 

> db.system.profile.find().sort({$natural:-1}) {"ts" : "Thu Jan 29 2009 15:19:32 GMT-0500 (EST)" , "info" : "query test.$cmd ntoreturn:1 reslen:66 nscanned:0 query: { profile: 2 } nreturned:1 bytes:50" , "millis" : 0} ... 

3個字段的意義ts:時間戳、info:具體的操做、millis:操做所花時間,毫秒。 

5.3.2.3 使用profiler

相似於MySQL的slow log, MongoDB能夠監控全部慢的以及不慢的查詢。

Profiler默認是關閉的,你能夠選擇所有開啓,或者有慢查詢的時候開啓。

> use test switched to db test > db.setProfilingLevel(2); {"was" : 0 , "slowms" : 100, "ok" : 1} // "was" is the old setting > db.getProfilingLevel() 

查看Profile日誌

> db.system.profile.find().sort({$natural:-1}) {"ts" : "Thu Jan 29 2009 15:19:32 GMT-0500 (EST)" , "info" : "query test.$cmd ntoreturn:1 reslen:66 nscanned:0 query: { profile: 2 } nreturned:1 bytes:50" , "millis" : 0} ... 

3個字段的意義ts:時間戳、info:具體的操做、millis:操做所花時間,毫秒
注意,形成慢查詢多是索引的問題,也多是數據不在內存形成所以磁盤讀入形成。 

5.3.2.4 使用Web控制檯

Mongodb自帶了Web控制檯,默認和數據服務一同開啓。他的端口在Mongodb數據庫服務器端口的基礎上加1000,若是是默認的Mongodb數據服務端口(Which is 27017),則相應的Web端口爲28017

這個頁面能夠看到

  • 當前Mongodb的全部鏈接
  • 各個數據庫和Collection的訪問統計,包括:Reads, Writes, Queries, GetMores ,Inserts, Updates, Removes
  • 寫鎖的狀態
  • 以及日誌文件的最後幾百行(CentOS+10gen yum 安裝的mongodb默認的日誌文件位於/var/log/mongo/mongod.log)

5.3.2.5 MongoDB Monitoring Service

MongoDB Monitoring Service(MMS)是Mongodb廠商提供的監控服務,能夠在網頁和Android客戶端上監控你的MongoDB情況。

5.4 Redis

5.4.1 監控指標說明

Redis主要監空Server、Clients、Memory、Persistence、Stats、Replication、CPU、Keyspace 8大部分,具體以下:

  • Server
    redis_version:2.8.8 # Redis 的版本
    redis_git_sha1:00000000
    redis_git_dirty:0
    redis_build_id:bf5d1747be5380f
    redis_mode:standalone
    os:Linux 2.6.32-220.7.1.el6.x86_64 x86_64
    arch_bits:64
    multiplexing_api:epoll
    gcc_version:4.4.7 #gcc版本
    process_id:49324 # 當前 Redis 服務器進程id
    run_id:bbd7b17efcf108fdde285d8987e50392f6a38f48
    tcp_port:6379
    uptime_in_seconds:1739082 # 運行時間(秒)
    uptime_in_days:20 # 運行時間(天)
    hz:10
    lru_clock:1734729
    config_file:/home/s/apps/RedisMulti_video_so/conf/zzz.conf 

  • Clients
    connected_clients:1 #鏈接的客戶端數量
    client_longest_output_list:0
    client_biggest_input_buf:0
    blocked_clients:0 

  • Memory
    used_memory:821848 #Redis分配的內存總量
    used_memory_human:802.59K
    used_memory_rss:85532672 #Redis分配的內存總量(包括內存碎片)
    used_memory_peak:178987632
    used_memory_peak_human:170.70M #Redis所用內存的高峯值
    used_memory_lua:33792
    mem_fragmentation_ratio:104.07 #內存碎片比率
    mem_allocator:tcmalloc-2.0 

  • Persistence
    loading:0
    rdb_changes_since_last_save:0 #上次保存數據庫以後,執行命令的次數
    rdb_bgsave_in_progress:0 #後臺進行中的 save 操做的數量
    rdb_last_save_time:1410848505 #最後一次成功保存的時間點, rdb_last_bgsave_status:ok
    rdb_last_bgsave_time_sec:0
    rdb_current_bgsave_time_sec:-1
    aof_enabled:0 #redis是否開啓了aof
    aof_rewrite_in_progress:0
    aof_rewrite_scheduled:0
    aof_last_rewrite_time_sec:-1
    aof_current_rewrite_time_sec:-1
    aof_last_bgrewrite_status:ok
    aof_last_write_status:ok 

  • Stats
    total_connections_received:5705 #運行以來鏈接過的客戶端的總數量
    total_commands_processed:204013 #運行以來執行過的命令的總數量
    instantaneous_ops_per_sec:0
    rejected_connections:0
    sync_full:0
    sync_partial_ok:0
    sync_partial_err:0
    expired_keys:34401 #運行以來過時的 key 的數量
    evicted_keys:0 #運行以來刪除過的key的數量
    keyspace_hits:2129 #命中key 的次數
    keyspace_misses:3148 #沒命中key 的次數
    pubsub_channels:0 #當前使用中的頻道數量
    pubsub_patterns:0 #當前使用中的模式數量
    latest_fork_usec:4391 

  • Replication
    role:master #當前實例的角色master仍是slave
    connected_slaves:0
    master_repl_offset:0
    repl_backlog_active:0
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:0
    repl_backlog_histlen:0 

  • CPU
    used_cpu_sys:1551.61
    used_cpu_user:1083.37
    used_cpu_sys_children:2.52
    used_cpu_user_children:16.79 

  • Keyspace
    db0:keys=3,expires=0,avg_ttl=0 #各個數據庫的 key 的數量及生存週期 

5.4.2 監控工具

5.4.2.1 redis-faina

使用redis自帶命令monitor的輸出結果作分析的python腳本,在命令行下使用,能夠作實時分析使用。 官網:https://github.com/Instagram/redis-faina

cd /opt/test git clone https://github.com/Instagram/redis-faina.git cd redis-faina/ redis-cli -p 6379 MONITOR | head -n 100 | ./redis-faina.py --redis-version=2.4 

測試結果以下:

能夠看到一些實時的數據,而且有必定的統計數據,能夠做爲一個命令行工具使用。推薦使用,不過redis版本要大於2.4。 

5.4.2.2 redis-live

用來監控redis實例,分析查詢語句而且有web界面的監控工具,python編寫。 官網:https://github.com/nkrode/RedisLive 運行環境依賴包安裝:http://www.nkrode.com/article/real-time-dashboard-for-redis redis-live安裝: 

cd /root git clone https://github.com/nkrode/RedisLive.git cd RedisLive/src ###修改redis-live.conf文件 { "RedisServers": [ { "server": "10.20.111.188", "port" : 6379 } ], "DataStoreType" : "redis", "RedisStatsServer": { "server" : "10.20.111.188", "port" : 6380}, "SqliteStatsStore" : { "path": "to your sql lite file" } } 

修改完畢
啓動監控服務,每30秒監控一次 ./redis-monitor.py --duration=30 ###再次開啓一個終端,進入/root/RedisLive/src目錄,啓動web服務 ./redis-live.py 在瀏覽器輸入: http://10.20.111.188:8888/index.html 便可看到下圖: 

一個web界面,能夠同時監控多個redis實例,作集中監控比較好。 

5.4.2.3 redis-stat

用ruby寫成的監控redis的程序,基於info命令獲取信息,而不是經過monitor獲取信息,性能應該比monitor要好。
官網:https://github.com/junegunn/redis-stat
運行環境安裝: 

apt-get install ruby
apt-get install rubygems 

redis-stat安裝:
cd /root
git clone https://github.com/junegunn/redis-stat.git
cd /root/redis-stat/bin ###./redis-stat --help 能夠看到使用幫助
./redis-stat 1
redis-stat的具體用法 

usage: redis-stat [HOST[:PORT] ...] [INTERVAL [COUNT]] 
 -a, --auth=PASSWORD    Password 
-v, --verbose          Show more info 
 --style=STYLE  Output style: unicode|ascii 
--no-color                   Suppress ANSI color codes 
--csv=OUTPUT_CSV_FILE_PATH   Save the result in CSV format --server[=PORT] Launch redis-stat web server (default port: 63790) --daemo Daemonize redis-stat. Must used with --server option. --version Show version --help 

redis-stat命令行模式: 

redis-stat 
redis-stat 1
redis-stat 1 10
redis-stat --verbose 
redis-stat localhost:6380 1 10
redis-stat localhost localhost:6380 localhost:6381 5
redis-stat localhost localhost:6380 1 10 --csv=/tmp/output.csv --verbose
redis-stat web模式: 

redis-stat --server 
redis-stat --verbose --server=8080 5
redis-stat --server --daemon

效果以下: 

運行web模式 

cd /root/redis-stat/bin ./redis-stat --server=8080 5 --daemon 

在瀏覽器輸入: http://10.20.111.188:8080/ 結果以下: 

不錯的工具,既有命令行又有web界面,能夠放到後臺運行,數據比redis-live感受直觀 ,ruby開發的,惟一的缺點是若是同時監控多個redis實例,不能單獨顯示每個實例的數據信息,貌似是總和。 

5.4.2.4 redis-monitor

一個國人用java寫的,官網的是在win下編譯的,看着不錯,官網:https://github.com/litiebiao2012/redis-monitor,我的感受,作集中監控可使用redis-live,在命令行使用可使用redis-stat,也能夠根據本身的狀況自行編寫,總之就是根據info和monitor命令獲取並展現信息。

6 前端指標監控

6.1 監控指標說明

前端指標主要包括頁面展現、網絡所花的時間以及前端有哪些地方須要優化。

6.2 監控工具

6.2.1 FireBug

Firebug是firefox下的一個擴展,可以調試全部網站語言,如Html,Css等,但FireBug最吸引個人就是javascript調試功能,使用起來很是方便,並且在各類瀏覽器下都能使用(IE,Firefox,Opera, Safari)。
Firebug主要功能有:CSS調試、CSS尺標、網絡監視器、JS調試器、Console 控制檯、修改HTML、DOM查看器。 

6.2.2 YSlow

YSlow能夠對網站的頁面進行分析,並告訴你爲了提升網站性能,如何基於某些規則而進行優化。 安裝YSlow必須首先先安裝 Firebug,而後下載YSlow,再對其安裝。
YSlow能夠分析任何網站,併爲每個規則產生一個總體報告,若是頁面能夠進行優化,則YSlow會列出具體的修改意見。 

相關文章
相關標籤/搜索