⑴ apache ab壓力測試工具需要用戶登錄才能測得時候怎麼辦
直接登錄linux伺服器,找到ab工具進行測試
⑵ ab(Apache Bench)壓力測試工具
ab(Apache Bench)是啥?
ab是Apache自帶的一個壓力測試軟體,可以通過ab命令和選項對某個URL進行壓力測試。ab建議在linux環境下使用。
為啥要壓力測試工具?
因為你不給你的網站壓力,你不知道項目的最大的容量是多少,自己的知識有多少。 在一定范圍里,壓力達到一定程度,動力和容量也就達到頂峰 。所以說沒有最大的容量,只有極致的性能優化。
壓力測試工具,另一方面也為測試提供一個標准,為當前需要優化提供基礎數據。
ab有什麼能力?
ab作為Apache自帶的軟體,雖然性能不是最強,但是作為一般的壓力測試已經足夠了。
ab的安裝
一般已經安裝了Apache就不需要安裝,需要安裝的話可以自行搜索。
ab的主要命令
ab主要使用的兩個選項就是-n和-c。其他選項使用命令 **ab -h **進行查看。
命令格式是: ab -n10 -c10 URL
命令解說:
自帶的命令選項說明如下
上圖所示,-n指的是請求URL的數量,-c是指每次請求的並發數。展示的命令格式的意義就是:對URL進行10次請求,每次並發數是10個,總共請求了100次。
註:URL最後一定要補充一個"/",如: http://www..com/
測試性能主要關心那幾個點?
對於ab工具,我們需要關注的是伺服器軟體,每秒請求數(Requests per second),單個請求的耗時(Time per request)。
下面是測試的結果解析:
測試的幾個原則
1、測試工具和測試數據時,使用到別人的網址時,-n和-c的參數不能太大。
2、測試當前的機器,最好用另一台機器測試。
3、測試修改結果,最好是某個功能完善後才測,否則會導致結果有差異。
⑶ Linux運維人員必知必會工具匯總
領域 :工具名稱
操作系統 :CentOS、Ubuntu、Redhat、suse、Freebsd
網站服務: nginx、apache、lighttpd、php、tomcat、resin
資料庫: MySQL、MariaDB、PostgreSQL
DB中間件 :maxscale、MyCat、atlas、cobar、amoeba、MySQL-proxy
代理相關: lvs、keepalived、haproxy、nginx、heartbeat
網站緩存: squid、nginx、varnish
NoSQL庫: Redis、CacheCloud、Memcached、MongoDB、HBase、Cassandra、CouchDB
存儲相關 :Nfs、FastDFS、Moosefs(mfs)、Ceph 、Hadoop、glusterfs、lustre
版本管理 :svn、git、gitlab、gogs
監控報警 :nagios、cacti、zabbix、munin、hyperic、mrtg、graphite
域名解析: bind、powerdns、dnsmasq
同步軟體: scp、rsync、inotify、sersync、drbd
批量管理: SSH、Ansible、Saltstack、expect、puppet
虛擬化: kvm、xen
雲計算: openstack、docker、k8s
內網軟體: iptables、zebra、iftraf、ntop、tc、iftop
郵件軟體: qmail、posfix、sendmail、zimbra
遠程撥號: openvpn、pptp、openswan、ipip
統一認證: openldap
隊列工具: ActiveMQ、RabbitMQ、Metaq、MemcacheQ、Zeromq、kafka
打包發布: mvn、ants、Jenkins、Walle
測試軟體: ab、JMeter、Webbench、LoadRunner、http_load、tcp
帶寬測試 :smokeping
性能測試 ;dd、 fio(IOPS測試)、iozone(磁碟測試)
日誌相關: rsyslog、Awstats、flume、storm、ELK(Elasticsearch+Logstash+Kibana)
搜索軟體: Sphinx、Xapian、Solr
無人值守: rpm、yum(設計rpm包定製及yum倉庫構建)
大數據: HDFS、Hive、Hbase、Zookeeper、Pig、Spark、Mahout、flume、sqoop
項目管理: Jira、Redmine
linux管理: 寶塔Linux面板
滲透測試工具: SQLMap、Webscan
開源郵箱: iRedmail、extmail、Zimbra
軟體開發 :Sublime Text、Eclipse、Jetbrains
遠程連接: putty、Xshell、SecureCRT、MobaXterm、TeamViewer、向日葵
在此為伺服器運維人員推薦使用:寶塔面板 www.bt.cn
寶塔面板,近200個免費應用提供使用,如:網站管理、系統安全、系統監控、計劃任務、文件管理、軟體管理、一鍵部署等為伺服器運維人員提供安全高效的完成伺服器運維工作。
⑷ linux下調試程序用什麼工具
Linux調試程序大多數都是喜歡用gdb,gdb是一個命令行界面的程序調試工具,任何調試操作都是輸入命令來實現的。從Windows過來的程序員可能不習慣用gdb這個調試器,可以去試試一些圖形界面的的調試器,比如Kgdb、Affinic GUI Debugger,這兩款調試器雖然是圖形界面的調試器,但是它其實是調用gdb來完成它的調試功能的,也就是說它們其實是gdb的一個圖形界面的外殼,所以要先安裝好gdb再安裝它們,不習慣gdb的命令界面的話,可以試試這兩款軟體。
⑸ 如何往linux中安裝ab壓力測試環境
方法/步驟 1 打開Apache伺服器的安裝路徑,在bin目錄中有一個ab.exe的可執行程序,就是我們要介紹的壓力測試工具。 2 在Windows系統的命令行下,進入ab.exe程序所在目錄,執行ab.exe程序。注意直接雙擊無法正確運行。 3 執行ab命令成功後,可以看到如圖提示。該幫助很清楚詳細的介紹了ab的用法以及各個參數的含義。 ab 的用法是:ab [options] [http://]hostname[:port]/path 例如:ab -n 5000 -c 200 http://localhost/index.php 上例表示總共訪問http://localhost/index.php這個腳本5000次,200並發同時執行。 ab常用參數的介紹: -n :總共的請求執行數,預設是1; -c: 並發數,預設是1; -t:測試所進行的總時間,秒為單位,預設50000s -p:POST時的數據文件 -w: 以HTML表的格式輸出結果 4 執行測試用例:ab -n 1000 -c 100 -w http://localhost/index.php >>c:\1.html 上面的測試用例表示100並發的情況下,共測試訪問index.php腳本1000次,並將測試結果保存到c:\1.html文件中。 5 測試報告如圖,可知在該100並發訪問的情況下,共測試訪問1000次,失敗了852次。可知該腳本在此環境無法滿足100並發訪問的要求。
⑹ 如何在linux操作系統上做介面壓力測試
介紹個http_load壓力測試工具,http_load,類似的工具還有webbench、ab、Siege。
1、下載
官方網站:http://acme.com/software/http_load/
復制代碼
代碼如下:
cd /root
wget http://acme.com/software/http_load/http_load-12mar2006.tar.gz
tar xzf http_load-12mar2006.tar.gz
2、安裝
復制代碼
代碼如下:
cd http_load-12mar2006
make
執行完make,會在當前目錄生成一個http_load二進制文件。
3、使用方法
復制代碼
代碼如下:
root@www:~/http_load-12mar2006# ./http_load --help
usage: ./http_load [-checksum] [-throttle] [-proxy host:port] [-verbose] [-timeout secs] [-sip sip_file]
-parallel N | -rate N [-jitter]
-fetches N | -seconds N
url_file
One start specifier, either -parallel or -rate, is required.
One end specifier, either -fetches or -seconds, is required.
主要參數說明:
-parallel 簡寫-p :含義是並發的用戶進程數。
-rate 簡寫-r :含義是每秒的訪問頻率
-fetches 簡寫-f :含義是總計的訪問次數
-seconds簡寫-s :含義是總計的訪問時間
選擇參數時,-parallel和-rate選其中一個,-fetches和-seconds選其中一個。
示例:
http_load -parallel 50 -s 10 urls.txt
這段命令行是同時使用50個進程,隨機訪問urls.txt中的網址列表,總共訪問10秒。
http_load -rate 50 -f 5000 urls.txt
每秒請求50次,總共請求5000次停止。
4、基本的返回值
(1).49 fetches, 2 max parallel, 289884 bytes, in 10.0148 seconds
說明在上面的測試中運行了49個請求,最大的並發進程數是2,總計傳輸的數據是289884bytes,運行的時間是10.0148秒
(2).5916 mean bytes/connection
說明每一連接平均傳輸的數據量289884/49=5916
(3).4.89274 fetches/sec, 28945.5 bytes/sec
說明每秒的響應請求為4.89274,每秒傳遞的數據為28945.5 bytes/sec
(4).msecs/connect: 28.8932 mean, 44.243 max, 24.488 min
說明每連接的平均響應時間是28.8932 msecs,最大的響應時間44.243 msecs,最小的響應時間24.488 msecs
(5).msecs/first-response: 63.5362 mean, 81.624 max, 57.803 min
(6).HTTP response codes: code 200 -- 49
說明打開響應頁面的類型,如果403的類型過多,那可能要注意是否系統遇到了瓶頸。
特殊說明:這里,我們一般會關注到的指標是fetches/sec、msecs/connect
他們分別對應的常用性能指標參數Qpt-每秒響應用戶數和response time,每連接響應用戶時間。測試的結果主要也是看這兩個值。當然僅有這兩個指標並不能完成對性能的分析,我們還需要對伺服器的cpu、men進行分析,才能得出結論
5、如果你需要測試https,你必須將 Makefile中
復制代碼
代碼如下:
# CONFIGURE: If you want to compile in support for https, uncomment these
# definitions. You will need to have already built OpenSSL, available at
# <a href="http://www.openssl.org/">http://www.openssl.org/</a> Make sure the SSL_TREE definition points to the
# tree with your OpenSSL installation - depending on how you installed it,
# it may be in /usr/local instead of /usr/local/ssl.
SSL_TREE = /usr
SSL_DEFS = -DUSE_SSL
SSL_INC = -I$(SSL_TREE)/include
SSL_LIBS = -L$(SSL_TREE)/lib -lssl -lcrypto
由於使用到openssl,你必須安裝openssl和相應的開發環境
復制代碼
代碼如下:
apt-get install openssl
apt-get install libssl-dev</p> <p>find -name ssl.h
/usr/include/openssl/ssl.h
⑺ linux測試網速的工具
1、fast
是Netflix提供的一項服務,它不僅可以通過命令行來使用,而且可以直接在Web端使用:fast.com,我們可以通過以下命令來安裝這個工具:
$ npm install --global fast-cli
不管是網頁端還是命令行,它都提供了最基本的網路下載測速。命令行下最簡單的使用方法如下:
$ fast
93 Mbps ↓
從以上結果可以看出,直接使用fast命令的話,將只返回網路下載速度。如果你也想獲取網路的上傳速度,則需要使用-u選項。
$ fast -u
⠧ 81 Mbps ↓ / 8.3 Mbps ↑
2、speedtest
是一個更加知名的工具。它是用Python寫成的,可以使用apt或pip命令來安裝。你可以在命令行下使用,也可以直接將其導入到你的 Python
項目,使用的時候,可以直接運行speedtest命令即可:
$ speedtest
Retrieving speedtest.net configuration...
Testing from Tencent cloud computing (140.143.139.14)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Henan CMCC 5G (Zhengzhou) [9.69 km]: 28.288 ms
Testing download
speed................................................................................
Download: 56.20 Mbit/s
Testing upload
speed......................................................................................................
Upload: 1.03 Mbit/s
從運行結果可以看出,speedtest命令將直接提供上傳/下載速率,測試的過程也是挺快的。你可以編寫一個腳本來調用這個命令,然後定期進行網路測試,並在結果保存在一個文件或資料庫,這樣你就可以實時跟蹤你的網路狀態。
3、iperf
是一個網路性能測試工具,它可以測試TCP和UDP帶寬質量,可以測量最大TCP帶寬,具有多種參數和UDP特性,可以報告帶寬,延遲抖動和數據包丟失。利用iperf這一特性,可以用來測試一些網路設備如路由器,防火牆,交換機等的性能。
這個工具不僅僅在Linux系統下可以用,在Mac和Windows系統同樣可以使用。
如果你想測試網路帶寬,則需要兩台電腦。這兩台電腦需要處於同樣的網路,一台作為服務機,另一台作為客戶機,並且二者必須都要安裝
iPerf,可以通過如下命令獲取伺服器的IP地址:
$ ip addr show | grep inet.*brd
inet 192.168.242.128/24 brd 192.168.242.255 scope global dynamic
noprefixroute ens33
之後,我們再在服務機上啟動iperf工具:
$ iperf -s
然後,我們就可以等待客戶機的接入了。客戶機可以使用以下命令來連上服務機:
$ iperf -c 192.168.242.128
通過幾秒鍾的測試,它就會返回網路傳輸速率及帶寬。
⑻ linux 環境下安裝ab,但遇到了下面的問題,請大家幫忙!
ab是apache自帶的一個壓力測試工具,你httpd是apache的web服務,兩者沒有直接關系。
而且你service是啟動httpd服務,現在(centos7)一般使用systemctl來啟動服務了。
⑼ linux 性能優化-- cpu 切換以及cpu過高
本文先介紹了cpu上下文切換的基礎知識,以及上下文切換的類型(進程,線程等切換)。然後介紹了如何查看cpu切換次數的工具和指標的解釋。同時對日常分析種cpu過高的情況下如何分析和定位的方法做了一定的介紹,使用一個簡單的案例進行分析,先用top,pidstat等工具找出佔用過高的進程id,然後通過分析到底是用戶態cpu過高,還是內核態cpu過高,並用perf 定位到具體的調用函數。(來自極客時間課程學習筆記)
1、多任務競爭CPU,cpu變換任務的時候進行CPU上下文切換(context switch)。CPU執行任務有4種方式:進程、線程、或者硬體通過觸發信號導致中斷的調用。
2、當切換任務的時候,需要記錄任務當前的狀態和獲取下一任務的信息和地址(指針),這就是上下文的內容。因此,上下文是指某一時間點CPU寄存器(CPU register)和程序計數器(PC)的內容, 廣義上還包括內存中進程的虛擬地址映射信息.
3、上下文切換的過程:
4、根據任務的執行形式,相應的下上文切換,有進程上下文切換、線程上下文切換、以及中斷上下文切換三類。
5、進程和線程的區別:
進程是資源分配和執行的基本單位;線程是任務調度和運行的基本單位。線程沒有資源,進程給指針提供虛擬內存、棧、變數等共享資源,而線程可以共享進程的資源。
6、進程上下文切換:是指從一個進程切換到另一個進程。
(1)進程運行態為內核運行態和進程運行態。內核空間態資源包括內核的堆棧、寄存器等;用戶空間態資源包括虛擬內存、棧、變數、正文、數據等
(2)系統調用(軟中斷)在內核態完成的,需要進行2次CPU上下文切換(用戶空間-->內核空間-->用戶空間),不涉及用戶態資源,也不會切換進程。
(3)進程是由內核來管理和調度的,進程的切換只能發生在內核態。所以,進程的上下文不僅包括了用戶空間的資源,也包括內核空間資源。
(4)進程的上下文切換過程:
(5)、下列將會觸發進程上下文切換的場景:
7、線程上下文切換:
8、中斷上下文切換
快速響應硬體的事件,中斷處理會打斷進程的正常調度和執行。同一CPU內,硬體中斷優先順序高於進程。切換過程類似於系統調用的時候,不涉及到用戶運行態資源。但大量的中斷上下文切換同樣可能引發性能問題。
重點關注信息:
系統的就緒隊列過長,也就是正在運行和等待 CPU 的進程數過多,導致了大量的上下文切換,而上下文切換又導致了系統 CPU 的佔用率升高。
這個結果中有兩列內容是我們的重點關注對象。一個是 cswch ,表示每秒自願上下文切換(voluntary context switches)的次數,另一個則是 nvcswch ,表示每秒非自願上下文切換(non voluntary context switches)的次數。
linux的中斷使用情況可以從 /proc/interrupts 這個只讀文件中讀取。/proc 實際上是 Linux 的一個虛擬文件系統,用於內核空間與用戶空間之間的通信。/proc/interrupts 就是這種通信機制的一部分,提供了一個只讀的中斷使用情況。
重調度中斷(RES),這個中斷類型表示,喚醒空閑狀態的 CPU 來調度新的任務運行。這是多處理器系統(SMP)中,調度器用來分散任務到不同 CPU 的機制,通常也被稱為處理器間中斷(Inter-Processor Interrupts,IPI)。
這個數值其實取決於系統本身的 CPU 性能。如果系統的上下文切換次數比較穩定,那麼從數百到一萬以內,都應該算是正常的。但當上下文切換次數超過一萬次,或者切換次數出現數量級的增長時,就很可能已經出現了性能問題。這時,需要根據上下文切換的類型,再做具體分析。
比方說:
首先通過uptime查看系統負載,然後使用mpstat結合pidstat來初步判斷到底是cpu計算量大還是進程爭搶過大或者是io過多,接著使用vmstat分析切換次數,以及切換類型,來進一步判斷到底是io過多導致問題還是進程爭搶激烈導致問題。
CPU 使用率相關的重要指標:
性能分析工具給出的都是間隔一段時間的平均 CPU 使用率,所以要注意間隔時間的設置,特別是用多個工具對比分析時,你一定要保證它們用的是相同的間隔時間。比如,對比一下 top 和 ps 這兩個工具報告的 CPU 使用率,默認的結果很可能不一樣,因為 top 默認使用 3 秒時間間隔,而 ps 使用的卻是進程的整個生命周期。
top 和 ps 是最常用的性能分析工具:
這個輸出結果中,第三行 %Cpu 就是系統的 CPU 使用率,top 默認顯示的是所有 CPU 的平均值,這個時候你只需要按下數字 1 ,就可以切換到每個 CPU 的使用率了。繼續往下看,空白行之後是進程的實時信息,每個進程都有一個 %CPU 列,表示進程的 CPU 使用率。它是用戶態和內核態 CPU 使用率的總和,包括進程用戶空間使用的 CPU、通過系統調用執行的內核空間 CPU 、以及在就緒隊列等待運行的 CPU。在虛擬化環境中,它還包括了運行虛擬機佔用的 CPU。
預先安裝 stress 和 sysstat 包,如 apt install stress sysstat。
stress 是一個 Linux 系統壓力測試工具,這里我們用作異常進程模擬平均負載升高的場景。而 sysstat 包含了常用的 Linux 性能工具,用來監控和分析系統的性能。我們的案例會用到這個包的兩個命令 mpstat 和 pidstat。
下面的 pidstat 命令,就間隔 1 秒展示了進程的 5 組 CPU 使用率,
包括:
perf 是 Linux 2.6.31 以後內置的性能分析工具。它以性能事件采樣為基礎,不僅可以分析系統的各種事件和內核性能,還可以用來分析指定應用程序的性能問題。
第一種常見用法是 perf top,類似於 top,它能夠實時顯示佔用 CPU 時鍾最多的函數或者指令,因此可以用來查找熱點函數,使用界面如下所示:
輸出結果中,第一行包含三個數據,分別是采樣數(Samples)如2K、事件類型(event)如cpu-clock:pppH和事件總數量(Event count)如:371909314。
第二種常見用法,也就是 perf record 和 perf report。 perf top 雖然實時展示了系統的性能信息,但它的缺點是並不保存數據,也就無法用於離線或者後續的分析。而 perf record 則提供了保存數據的功能,保存後的數據,需要你用 perf report 解析展示。
1.啟動docker 運行進程:
2.ab工具測試伺服器性能
ab(apache bench)是一個常用的 HTTP 服務性能測試工具,這里用來模擬 Ngnix 的客戶端。
3.分析過程
CPU 使用率是最直觀和最常用的系統性能指標,在排查性能問題時,通常會關注的第一個指標。所以更要熟悉它的含義,尤其要弄清楚:
這幾種不同 CPU 的使用率。比如說:
碰到 CPU 使用率升高的問題,你可以藉助 top、pidstat 等工具,確認引發 CPU 性能問題的來源;再使用 perf 等工具,排查出引起性能問題的具體函數.
⑽ 一名優秀的Linux運維人員該掌握哪些工具
運維人員必須熟悉的運維工具匯總
某日受邀請參加了一個BBS活動,於是有了下面的內容。
下面是在linux網站運維方向老男孩最近幾年常用的免費的開源軟體,臨時即興想起來的,在這里和大家分享,希望給初學者指引一點路。
linux的世界真的很精彩,還沒入門的朋友趕緊進來吧!
操作系統:Centos※,Ubuntu,Redhat※,suse,Freebsd
網站服務:nginx※,apache※,lighttpd,php※,tomcat※,resin※
數據 庫:MySQL※,Mysql-proxy,MariaDB,PostgreSQL
DB中間件:MyCat,amoeba,MySQL-proxy
代理相關:lvs,keepalived,haproxy,nginx,apache,heartbeat(此行都是※)
網站緩存:squid※,nginx※,varnish
NOSQL庫:memcached※,memcachedb,TokyoTyrant※,MongoDB※,Cassandra※,redis※,CouchDB
存儲相關:Nfs※,Moosefs(mfs)※,Hadoop※,glusterfs※,lustre,FastDFS
版本管理:svn※,git※
監控報警:nagios※,cacti※,zabbix※,munin,hyperic,mrtg,graphite
域名解析:bind※,powerdns,dnsmasq※
同步軟體:rsync※,inotify※,sersync※,drbd※,csync2,union,lsyncd,scp※
批量管理:ssh+rsync+sersync※,Saltstack※,expect※,puppet※,ansible,cfengine
虛擬 化:kvm※,xen※
雲計 算:openstack※,docker,cloudstack
內網軟體:iptables※,zebra※,iftraf,ntop※,tc※,iftop
郵件軟體:qmail,posfix※,sendmail
遠程撥號:openvpn※,pptp,openswan※,ipip※
統一認證:openldap(可結合微軟活動目錄)※
隊列工具:ActiveMQ,RabbitMQ※,Metaq,MemcacheQ,Zeromq
打包發布:mvn※,ants※,jenkins※,svn
測試軟體:ab,smokeping,siege,JMeter,Webbench,LoadRunner,http_load(都是※)
日誌相關:syslog,rsyslog,Awstats,flume logstash scribe kafka,storm,ELK(Elasticsearch+Logstash+Kibana)DB代理:mysql-proxy,amoeba(更多還是程序實現讀寫分離)
搜索軟體:Sphinx,Xapian(大公司會自己開發類似網路的小規模內部搜索引擎)
提示:
1)以上所有軟體都是老男孩用過或測試過的。
2)帶※的為老男孩最近幾年用的比較多,可信任使用的。也是近年來linux運維的大眾。
3)有了功能分類和軟體名,大家有需求,可以按功能找軟體直接G就知道了。
4)學習要有舍有得,什麼都抓必然短時間都不會精,希望大家能抓重點,抓精髓,大眾軟體(帶※)先熟練了,這是基礎加提高,在研究小眾軟體(不帶※),這是高手之路,最後在研究偏門的,世外高手之路,當然前提是先掌握前面的大眾和小眾。
5)當然還有一些沒有大眾開源的有一些也很棒,如審計堡壘機程序。