自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

看了這篇還不會Linux性能分析和優(yōu)化,你來打我

系統(tǒng) Linux
CPU是操作系統(tǒng)穩(wěn)定運行的根本,CPU的速度與性能在很大程度上決定了系統(tǒng)整體的性能,因此,CPU數(shù)量越多、主頻越高,服務(wù)器性能也就相對越好。

 [[397653]]

本文轉(zhuǎn)載自微信公眾號「程序員小飯」,作者飯米粒。轉(zhuǎn)載本文請聯(lián)系程序員小飯公眾號。

前言

一般互聯(lián)網(wǎng)的項目都是部署在linux服務(wù)器上的,如果linux服務(wù)器出了問題,那么咱們平時學(xué)習(xí)的高并發(fā),穩(wěn)定性之類的是沒有任何意義的,所以對linux性能的把握就顯得非常重要,當然很多同學(xué)可能覺得這些是運維同學(xué)的事情,但是我不這么認為,不管你是架構(gòu)師,還是crud boy,對項目有個全局的掌控是一項非常重要的基本素質(zhì),所以總結(jié)了這篇文章,希望對您有用,如果您覺得我寫的還不錯,看完記得點個贊,點個再看哦。咱們廢話不用多說,直接進入正題。

影響linux服務(wù)器性能的因素

cpu

CPU是操作系統(tǒng)穩(wěn)定運行的根本,CPU的速度與性能在很大程度上決定了系統(tǒng)整體的性能,因此,CPU數(shù)量越多、主頻越高,服務(wù)器性能也就相對越好。

內(nèi)存

內(nèi)存的大小也是影響Linux性能的一個重要的因素,內(nèi)存太小,系統(tǒng)進程將被阻塞,應(yīng)用也將變得緩慢,甚至失去響應(yīng);內(nèi)存太大,導(dǎo)致資源浪費。

磁盤IO

磁盤的I/O性能直接影響應(yīng)用程序的性能,在一個有頻繁讀寫的應(yīng)用中,如果磁盤I/O性能得不到滿足,就會導(dǎo)致應(yīng)用停滯。好在現(xiàn)今的磁盤都采用了很多方法來提高I/O性能,比如常見的磁盤RAID技術(shù)。

網(wǎng)絡(luò)

Linux下的各種應(yīng)用,一般都是基于網(wǎng)絡(luò)的,因此網(wǎng)絡(luò)帶寬也是影響性能的一個重要因素,低速的、不穩(wěn)定的網(wǎng)絡(luò)將導(dǎo)致網(wǎng)絡(luò)應(yīng)用程序的訪問阻塞,而穩(wěn)定、高速的網(wǎng)絡(luò)帶寬,可以保證應(yīng)用程序在網(wǎng)絡(luò)上暢通無阻地運行。幸運的是,現(xiàn)在的網(wǎng)絡(luò)一般都是千兆帶寬或光纖網(wǎng)絡(luò),帶寬問題對應(yīng)用程序性能造成的影響也在逐步降低。

常用的linux系統(tǒng)性能監(jiān)控的命令

uptime(系統(tǒng)整體性能評估)

這里需要注意的是:load average這個輸出值,這三個值的大小一般不能大于系統(tǒng)CPU的個數(shù)

那么如何查看cpu的個數(shù)呢?

查看系統(tǒng)cpu的信息

cat /proc/cpuinfo中的信息

其中cpu cores即為cpu的核數(shù)

也可以用cat /proc/cpuinfo |grep "cores"|uniq直接查看

  1. [root@test ~]# cat /proc/cpuinfo |grep "cores"|uniq 
  2. cpu cores : 2 

cpu的性能評估

利用vmstat命令監(jiān)控cpu

vmstat 2 10 (每2秒監(jiān)控一次 監(jiān)控10次)

procs

r表示運行和等待cpu時間片的進程數(shù),這個值如果長期大于cpu的個數(shù),則需要增加系統(tǒng)cpu

b表示等待資源的進程數(shù)

CPU

us列顯示了用戶進程消耗CPU時間百分比,us比較高的時候,說明用戶進程消耗cpu的時間多,如果長期大于50%,就需要優(yōu)化程序和算法

sy列顯示了內(nèi)核進程消耗的cpu時間百分比,sy值較高的時候,說明內(nèi)核消耗的cpu資源很多

根據(jù)經(jīng)驗,us+sy的參考值為80%,如果us+sy大于 80%說明可能存在CPU資源不足。

利用sar命令監(jiān)控系統(tǒng)cpu

sar命令會增加系統(tǒng)開銷 但是影響不大

yum install sysstat安裝sar命令

sar -u 3 5(u顯示系統(tǒng)所有cpu在采樣時間內(nèi)的負載狀態(tài))圖片%user:用戶進程消耗cpu的時間百分比

%nice:運行正常進程所消耗cpu的百分比

%system:系統(tǒng)消耗cpu時間百分比

%iowait:IO等待所占用cpu時間百分比

%steal:內(nèi)存在相對緊張的環(huán)境下pagein強制對不同頁面進行的steal操作

%idle:cpu處在空閑時間的百分比

內(nèi)存性能評估

利用free指令監(jiān)控內(nèi)存

free -m #查看以M為單位的內(nèi)存使用情況

一般有這樣一個經(jīng)驗公式:

應(yīng)用程序可用內(nèi)存/系統(tǒng)物理內(nèi)存>70%時,表示系統(tǒng)內(nèi)存資源非常充足,不影響系統(tǒng)性能。

應(yīng)用程序可用內(nèi)存/系統(tǒng)物理內(nèi)存<20%時,表示系統(tǒng)內(nèi)存資源緊缺,需要增加系統(tǒng)內(nèi)存。

20%<應(yīng)用程序可用內(nèi)存/系統(tǒng)物理內(nèi)存<70%時,表示系統(tǒng)內(nèi)存資源基本能滿足應(yīng)用需求,暫時不影響系統(tǒng)性能。

利用vmstat監(jiān)控內(nèi)存

swpd表示切換到內(nèi)存交換去的內(nèi)存數(shù)量(k),如果swpd的值不為0,或者比較大,但是si,so的值長期為0,這種情況不用擔(dān)心,不會影響性能

free表示空閑的物理內(nèi)存數(shù)量

buffer表示buffers cache的內(nèi)存數(shù)量,一般對設(shè)備的讀寫才需要緩沖

cache表示page cached的內(nèi)存數(shù)量。一般作為文件系統(tǒng)cached,頻繁訪問的文件都會被cached,如果cache值較大,說明cached的文件較多,如果此時IO中的bi比較小,說明文件系統(tǒng)效率比較好

si表示由磁盤調(diào)入內(nèi)存,也就是內(nèi)存進入內(nèi)存交換區(qū)的數(shù)量

so表示由內(nèi)存調(diào)入磁盤,也就是內(nèi)存交換區(qū)進入內(nèi)存的數(shù)量 一般情況下,so si的值都為0。如果si so的值長期不為0,則表示系統(tǒng)內(nèi)存不足,需要增加內(nèi)存

磁盤IO性能評估

iostat

iostat -d 2 10

  1. Blk_reads/s  每秒讀取的數(shù)據(jù)塊數(shù) 
  2.  
  3. Blk_wrtn/s   每秒寫入的數(shù)據(jù)塊數(shù) 
  4.  
  5. Blk_read     讀取的所有塊數(shù) 
  6.  
  7. Blk_wrtn     寫入的所有塊數(shù) 

這幾個值沒有標準 如果長期都很大 肯定是不正常的

利用sar評估磁盤性能

sar -d 2 5

await 平均每次設(shè)備I/O操作的等待時間(毫秒)

svctm 平均每次設(shè)備I/O操作的服務(wù)時間(毫秒)

%util 一秒中有百分之幾的時間用于I/O操作

評判標準

正常情況下svctm應(yīng)該是小于await的,svctm的值和磁盤性能,cpu內(nèi)存等都有關(guān)系

如果svctm的值和await的值相近表示幾乎沒有I/O等待,磁盤性能很好,如果await的值遠高于svctm,表示I/O隊列等待時間太長,系統(tǒng)上的應(yīng)用程序?qū)⒆兟?,此時可以通過更換更快的硬盤來解決問題

%util越小越好,如果%util接近100%表示磁盤產(chǎn)生的I/O請求太多,I/O系統(tǒng)已經(jīng)滿負載在工作,此時可以通過優(yōu)化程序或者更換更快的磁盤來解決問題

網(wǎng)絡(luò)性能評估

通過ping命令檢測網(wǎng)絡(luò)的連通性。

通過netstat -i 組合檢測網(wǎng)絡(luò)接口狀況。

通過netstat -r 組合檢測系統(tǒng)路由表信息。

通過sar -n 組合顯示系統(tǒng)的網(wǎng)絡(luò)運行狀態(tài)(sar -n DEV 5 3)。

常用分析:

查看tcp連接數(shù)最多的ip:

  1. sudo netstat -pant | grep ":22" | awk '{print $5}' | awk -F":" '{print $4}' |sort|uniq -c|sort -nr 

解釋:

awk -F":" '{print $4}' 表示把結(jié)果的第4列用:號分割

sort -nr 排序,-n以數(shù)值大小排序,-r倒序,從大到小。

uniq -c 刪除重復(fù)的行,-c表示加上每行出現(xiàn)的次數(shù)。

netstat命令是一個監(jiān)控TCP/IP網(wǎng)絡(luò)的非常有用的工具, 它可以顯示路由表、實際的網(wǎng)絡(luò)連接以及每一個網(wǎng)絡(luò)接口設(shè)備的狀態(tài)信息。

netstat -pant

參數(shù)-p :顯示正在使用Socket的程序識別碼和程序名稱;

參數(shù)-a :顯示所有連線中的Socket;

參數(shù)-n :直接使用ip地址,而不通過域名服務(wù)器;

參數(shù)-t :顯示TCP傳輸協(xié)議的連線狀況。

提取訪問nginx服務(wù)器最多的10個ip。

  1. cat access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -n10 

 

 

責(zé)任編輯:武曉燕 來源: 程序員小飯
相關(guān)推薦

2021-09-06 07:58:47

鏈表數(shù)據(jù)結(jié)構(gòu)

2023-08-09 09:03:49

CPU密集型運算

2020-05-20 22:13:26

JVM加載機制虛擬機

2022-09-09 14:56:18

Linuxcpu

2021-11-10 07:47:48

Traefik邊緣網(wǎng)關(guān)

2022-08-01 08:17:46

mysqlwindows系統(tǒng)

2019-07-24 09:22:45

Elasticsear數(shù)據(jù)Oracle

2021-03-16 15:12:57

CompletableFuture機制java

2019-09-11 14:40:44

數(shù)據(jù)清洗數(shù)據(jù)分析數(shù)據(jù)類型

2023-05-04 00:06:40

2020-03-10 08:33:04

HTTP演變協(xié)議

2017-09-06 15:15:48

Python正則表達式

2022-07-15 08:52:03

Linux優(yōu)化

2020-05-14 08:59:28

API網(wǎng)關(guān)性能

2019-03-24 19:45:44

JavaScriptHtml5移動端Web

2023-08-04 09:43:16

Socket編程Python

2023-10-18 16:25:23

2011-05-11 17:26:17

Minify

2019-12-19 09:08:42

HTTP瀏覽器緩存

2022-02-22 08:25:51

typeScript泛型概念泛型使用
點贊
收藏

51CTO技術(shù)棧公眾號