日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

优化-cpu

發布時間:2024/1/17 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 优化-cpu 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
優化橫向:加新的設備,架構擴展縱向:替換新的更好的設備,使設備負載能力更高下面我們討論的是不加設備也不換設備的基礎上進行系統微調前面討論的是系統安裝到業務上線之前的一些基本優化,如果業務已經在線上,你要優化,第一步如何做?比如一個web服務器慢,可以會有哪些問題?cpu->mem->io->file system->network->os參數->服務本身配置-》開發代碼首先要進行服務器數據采集,和性能監測分析方法有一:使用cacti,nagios,zabbix等監控工具二:使用linux自帶的一些監控指令:如vmstat,iostat,mpstat,sar等等硬件問題CPU子系統內存子系統IO子系統網絡子系統文件系統運行的服務等一,cpu(Central Processing Unit)子系統CPU 的占用主要取決于什么樣的資源正在 CPU 上面運行,比如拷貝一個文件通常占用較少CPU,只是在完成拷貝以后給一個中斷讓CPU知道拷貝已經完成科學計算通常占用較多的CPU,大部分計算工作都需要在CPU上完成,內存、硬盤等子系統只做暫時的數據存儲工作要想監測和理解CPU的性能需要知道一些的操作系統的基本知識,比如:中斷,進程調度,進程上下文切換,可運行隊列等cpu單核在同一個時間點只能干一件事,但單核CPU一樣可以跑多任務操作系統,其實就是分CPU資源(時間片)CPU很無辜,是個任勞任怨的打工仔,每時每刻都有工作在做(進程、線程)并且自己有一張工作清單(可運行隊列),由老板(進程調度)來決定他該干什么,他需要和老板溝通以便得到老板的想法并及時調整自己的工作  (上下文切換),部分工作做完以后還需要及時向老板匯報(中斷),所以打工仔(CPU)除了做自己該做的工作以外,還有大量時間和精力花在溝通和匯報上。中斷 設備通知內核,完成了一次數據處理過程。也可以理解為:cpu停止下來去執行別的指令。例如:完成一次IO。或者完成一次網絡數據包的發送。內核處理過程 --- 控制優先級,進行任務調度。用戶進程上下文切換 --- 把正在占用cpu的進程放回隊列中(每次內核的上下文切換,資源被用于關閉在CPU寄存器中的線程和放置在隊列中)運行隊列那么監測CPU性能的底線是什么呢?通常我們期望我們的系統能到達以下目標:  CPU利用率,如果CPU有100%利用率,那么應該到達這樣一個平衡:65%-70% User Time,30%-35% System Time,0%-5% Idle Time;  上下文切換,上下文切換應該和 CPU 利用率聯系起來看,如果能保持上面的 CPU 利用率平衡,大量的上下文切換是可以接受的;云(虛擬化)  提高資源利用率查看cpu信息# cat /proc/cpuinfo --能看到指令集,CPU核數,頻率,緩存等相關信息要采集CPU當前正在運行的信息數據,要用到下面的命令或者監控軟件(nagios,zabbix等)topuptimevmstatmpstat --需要yum install sysstatsar --需要yum install sysstat# vmstat 2 每2秒鐘采集一下數據# vmstat 2 3 每2秒鐘采集一次,一共采集3次# vmstat 2procs -----------memory---------- -swap- ----io-- --system-- -----cpu------r b swpd free buff cache si so bi bo in cs us sy id wa st1 0 0 78112 63432 1519100 0 0 233 18 1906 1190 26 13 59 1 01 0 0 78112 63432 1519100 0 0 0 0 4180 1378 33 17 50 0 0r 可運行隊列。單核cpu,不應該超過3(經驗得到的數據,只是表明大于這個值表明運行隊列有點長)b 當前被阻塞的進程,一般這些進程都是在等待某些外部資源而被阻塞。>3需要注意,而且一直出現或者經常出現,就更值得注意in 中斷數。一般代表大量設備操作成功通知內核。cs 上下文切換。一般代表任務需要緊急被cpu處理。數字高,只能說明內核在充分發揮它的任務調度作用。不能簡單通過該數字判斷cpu就出現瓶頸。us 用戶進程所占用的cpu時間的百分比sy 內核在進行任務調度所占用的cpu時間的百分比id cpu空閑所占用的時間百分比.僅僅0不能簡單判斷cpu出現瓶頸,只能說它被充分被留用。wa 等待IO所消耗時間百分比st 被硬件虛擬化的虛擬機所消耗掉的時間百分比mpstat 和 vmstat 類似,不同的是 mpstat 可以輸出多個處理器的數據# mpstat -P ALL 1 ---P ALL表示查看所有CPU核, 1表示每一秒顯示一次10:46:35 AM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s10:46:36 AM all 26.13 0.00 6.53 0.00 3.52 9.05 0.00 54.77 19478.2210:46:36 AM 0 25.74 0.00 6.93 0.00 2.97 7.92 0.00 56.44 9740.5910:46:36 AM 1 26.73 0.00 6.93 0.00 3.96 10.89 0.00 51.49 9739.60# sar -u 查看cpu相關的歷史數據 --這是歷史數據,是每十分鐘會去采集一次系統相關的數據# sar -u 2 3 --兩秒一次,顯示三次(不是歷史數據,是當前動態數據)sysstat --> 提供 sar 命令 (system activity reporter)sar的特點:可以對過去時間的系統狀態進行分析,但不能對某個進程進行深入分析,只能對系統的整體情況進行分析。yum install sysstat -y# service sysstat start# chkconfig sysstat on安裝systat包后,就會自動在 /var/log/sa/saxx 產生數據 xx代表日期可以使用sar -f /var/log/sa/saxx 去訪問 加參數就可以訪問不同類型的性能數據指定查詢之前的日期與固定時間點的方法sar -u -f /var/log/sa/sa18 --查看這個月已經過的18號的cpu歷史數據sar -u -f /var/log/sa/sa18 -s 09:00:00 -e 10:00:00 --指定只看18號9點到10點的cpu歷史數據保存性能數據sar支持保存成兩種格式的文件,一種是文本文件,一種是二進制文件 (只有通過sar自己的命令 -f 參數 才能看)保存為文本文件,可以直接cat命令查看sar -p 1 5 > /tmp/test/sar1.txt保存為二進制文件sar -p 1 5 -o /tmp/test/sar2.txt 1>/dev/null --會顯示到屏幕,可以用1>/dev/nullfile /tmp/test/sar2.txt --是data類型文件sar -f /tmp/test/sar2.txt --使用-f參數讀取可以通過做實驗,再來用vmstat,mpstat,sar來看cpu的變化如:執行下面的sh /tmp/2.sh腳本,產生一百個運算的進程[root@li ~]# cat /tmp/1.sh#!/bin/basha=1sum=0while truedosum=$[$sum+$a]let a++done[root@li ~]# cat /tmp/2.sh#!/bin/bashfor i in `seq 100`dosh /tmp/1.sh &done===========================================================總結:現在的架構cpu極少會成為瓶頸.就算是真的cpu成為了瓶頸,對cpu能做的優化太少了(要么就換硬件,要么通過擴展架構來分擔壓力,殺掉無用并且占用資源的進程)系統管理員能改的也就只有進程優先級了nice 優先級 能調的范圍是 -20到19 -20表示優先級最高,19最低用戶運行一個程序默認給的優先級為0renice 對一個已經運行的進程進行nice值的調整renice 19 pid[root@li ~]# vim /tmp/test.sha=1while [ $a -lt 1000000 ]dolet a++donenice 優先級高的能夠優先分配資源,跑得快,花費的時間少,負載越高,效果越明顯實驗在一個負載高的情況下做效果更好,比如一個大文件的cp第一個終端:[root@li ~]# time sh /tmp/test.shreal 0m39.363suser 0m26.338ssys 0m0.900s第二個終端:[root@li ~]# time nice --19 sh /tmp/test.sh --19 第一個是參數的橫杠,第二個是負號real 0m26.881suser 0m26.008ssys 0m0.871s--對比上面的時間,可以看到 高優先級的花費的時間少可以把上面的實驗再做一次,馬上用top查出-19的pid值,并使用renice修改renice 19 9683[root@li ~]# time sh /tmp/test.shreal 0m34.665suser 0m26.277ssys 0m0.896s[root@li ~]# time nice --19 sh /tmp/test.shreal 0m37.231suser 0m26.094ssys 0m0.905s--從上面的時間可以看出,-19優先級的半路被改為19后,所花費的時間反而多了注意:只有管理員才能把優先級往高調,普通用戶只能調自己的,并且只能往低調,調低后還不能再調高

轉載于:https://www.cnblogs.com/skyzy/p/9201438.html

總結

以上是生活随笔為你收集整理的优化-cpu的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。