寶典高頻筆試題2017 7v1_第1頁(yè)
寶典高頻筆試題2017 7v1_第2頁(yè)
寶典高頻筆試題2017 7v1_第3頁(yè)
寶典高頻筆試題2017 7v1_第4頁(yè)
寶典高頻筆試題2017 7v1_第5頁(yè)
已閱讀5頁(yè),還剩54頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

講師:周陽2017V1.8就業(yè)串講-技術(shù)Java部分常見經(jīng)典面試題資料==和equals有什么區(qū)別?從我面試的反饋,85%的求職者“理直氣壯”的回答錯(cuò)誤……代碼說話TestEquals.java、Person.java==和equals的區(qū)別==既可以比較基本類型也可以比較引用類型。對(duì)于基本類型就是比較值,對(duì)于引用類型就是比較內(nèi)存地址Equals的話,它是屬于java.lang.Object類里面的方法,如果該方法沒有被重寫過默認(rèn)也是==;我們可以看到String類的equals方法是被重寫過的,而且String類在日常開發(fā)中用的比較多,久而久之,形成了equals是比較值的錯(cuò)誤觀點(diǎn)。具體要看這有沒有重寫Object的hashCode方法和equals方法來判斷。equals的重寫

以Person為例,何時(shí)需要重寫equals()?當(dāng)一個(gè)類有自己特有的“邏輯相等”概念,當(dāng)改寫equals()的時(shí)候,總是要改寫hashCode(),根據(jù)一個(gè)類的equals方法(改寫后),兩個(gè)截然不同的實(shí)例有可能在邏輯上是相等的,但是,根據(jù)Object.hashCode方法,它們僅僅是兩個(gè)對(duì)象。

因此,違反了“相等的對(duì)象必須具有相等的散列碼”。

結(jié)論:復(fù)寫equals方法的時(shí)候一般都需要同時(shí)復(fù)寫hashCode方法Eclipse工具里equals的重寫

以eclipse為例,直接鼠標(biāo)右鍵即可復(fù)寫equals和hashCode,^_^問題:為什么用eclipse復(fù)寫hashCode方法,有31這個(gè)數(shù)字?計(jì)算機(jī)的乘法涉及到移位計(jì)算。當(dāng)一個(gè)數(shù)乘以2時(shí),就直接拿該數(shù)左移一位即可!選擇31原因是因?yàn)?1是一個(gè)素?cái)?shù)!所謂素?cái)?shù):質(zhì)數(shù)又稱素?cái)?shù)(在一個(gè)大于1的自然數(shù)中,除了1和此整數(shù)自身外,沒法被其他自然數(shù)整除的數(shù))在存儲(chǔ)數(shù)據(jù)計(jì)算hash地址的時(shí)候,我們希望盡量減少有同樣的hash地址,所謂“沖突”。因?yàn)槿魏螖?shù)n*31就可以被JVM優(yōu)化為(n<<5)-n,移位和減法的操作效率要比乘法的操作效率高的多,對(duì)左移虛擬機(jī)里面都有做相關(guān)優(yōu)化,并且31只占用5bits!String相關(guān)TestString.java1生成地方和地址指向,intern()方法2String可否被繼承?多態(tài)什么是多態(tài)?Java里通過方法重載和方法重寫來體現(xiàn)多態(tài)是否正確?多態(tài)是編譯時(shí)行為還是運(yùn)行時(shí)行為?傳值TestTransferValueStatic加載加載TestStaticSeq.java

方法重寫(overide)提示一下談?wù)勀銓?duì)java.io.Serializable接口的理解,我們知道它用于序列化,是空方法接口,還有其它認(rèn)識(shí)嗎?實(shí)現(xiàn)了Serializable接口的對(duì)象,可將它們轉(zhuǎn)換成一系列字節(jié),并可在以后完全恢復(fù)回原來的樣子。這一過程亦可通過網(wǎng)絡(luò)進(jìn)行。這意味著序列化機(jī)制能自動(dòng)補(bǔ)償操作系統(tǒng)間的差異。換句話說,可以先在Windows機(jī)器上創(chuàng)建一個(gè)對(duì)象,對(duì)其序列化,然后通過網(wǎng)絡(luò)發(fā)給一臺(tái)Unix機(jī)器,然后在那里準(zhǔn)確無誤地重新“裝配”。不必關(guān)心數(shù)據(jù)在不同機(jī)器上如何表示,也不必關(guān)心字節(jié)的順序或者其他任何細(xì)節(jié)。談?wù)勀銓?duì)HashMap中put/get方法的認(rèn)識(shí)?如果了解再談?wù)凥ashMap的擴(kuò)容機(jī)制?默認(rèn)大小是多少?什么是負(fù)載因子?什么是吞吐臨界值?JDK1.7版本為例順便帶同學(xué)們復(fù)習(xí)下hashCode、equals、HashSet、HashMap之間到底有什么樣的關(guān)系?1HashSet底層是采用HashMap實(shí)現(xiàn)2集合里面放置的永遠(yuǎn)是對(duì)象的引用而不是對(duì)象本身3當(dāng)你在HashSet里add對(duì)象的時(shí)候,實(shí)際是HashMap里面put了key-value鍵值對(duì),其中key就是你add進(jìn)來的對(duì)象,value是一個(gè)固定的Object常量4HashMap底層是個(gè)Entry類型的,名字叫table的數(shù)組5put:當(dāng)程序試圖將一個(gè)key-value對(duì)放入HashMap中時(shí),程序首先根據(jù)該key的hashCode()返回值決定該Entry的存儲(chǔ)位置:如果兩個(gè)Entry的key的hashCode()返回值相同,那它們的存儲(chǔ)位置相同。如果這兩個(gè)Entry的key通過equals比較返回true,新添加Entry的value將覆蓋集合中原有Entry的value,但key不會(huì)覆蓋。如果這兩個(gè)Entry的key通過equals比較返回false,新添加的Entry將與集合中原有Entry形成Entry鏈,而且新添加的Entry位于Entry鏈的頭部——具體說明繼續(xù)看addEntry()方法的說明。請(qǐng)問ArrayList/LinkedList/Vector的區(qū)別?談?wù)勀愕睦斫猓緼rrayList底層是什么?擴(kuò)容機(jī)制?Vector和ArrayList的最大區(qū)別?JDK1.7還需要給同學(xué)們講解嗎?請(qǐng)問ArrayList定義ArrayList以數(shù)組實(shí)現(xiàn),允許重復(fù)。超出限制時(shí)會(huì)增加50%的容量(grow()方法中實(shí)現(xiàn),如下所示),每次擴(kuò)容都底層采用Arrays.arrayCopy()復(fù)制到新的數(shù)組,因此最好能給出數(shù)組大小的預(yù)估值。默認(rèn)第一次插入元素時(shí)創(chuàng)建數(shù)組的大小為10.請(qǐng)問ArrayList/LinkedList/Vector的區(qū)別ArrayList和LinkedList的區(qū)別ArrayList是實(shí)現(xiàn)了基于動(dòng)態(tài)數(shù)組的數(shù)據(jù)結(jié)構(gòu),LinkedList基于鏈表的數(shù)據(jù)結(jié)構(gòu)。對(duì)于隨機(jī)訪問get和set,ArrayList覺得優(yōu)于LinkedList,因?yàn)長(zhǎng)inkedList要移動(dòng)指針。對(duì)于新增和刪除操作add和remove,LinkedList比較占優(yōu)勢(shì),因?yàn)锳rrayList要移動(dòng)數(shù)據(jù)。ArrayList和Vector的區(qū)別Vector和ArrayList幾乎是完全相同的,唯一的區(qū)別在于Vector是同步類(synchronized),屬于強(qiáng)同步類。因此開銷就比ArrayList要大,訪問要慢。正常情況下,大多數(shù)的Java程序員使用ArrayList而不是Vector,因?yàn)橥酵耆梢杂沙绦騿T自己來控制。Vector每次擴(kuò)容請(qǐng)求其大小的2倍空間,而ArrayList是1.5倍。Vector還有一個(gè)子類Stack.Servlet中service、doGet、doPost的區(qū)別請(qǐng)求轉(zhuǎn)發(fā)和重定向有什么區(qū)別?Answer:IE地址欄是否變化?參數(shù)可否取得?發(fā)送了幾次請(qǐng)求Servlet線程相關(guān),提示不講Answer:多線程+單實(shí)例,后續(xù)都是同一個(gè)對(duì)象為我們服務(wù)。寫servlet的時(shí)候一定不要去定義成員變量,除非它是只讀的,盡量縮小范圍定義局部變量。Servlet生命周期,提示不講HTTP協(xié)議請(qǐng)自行腦補(bǔ)狀態(tài)碼206-斷點(diǎn)下載時(shí)用到,客戶端請(qǐng)求了一部分內(nèi)容,服務(wù)器成功把這部分內(nèi)容返回給它,這時(shí)候就是用這個(gè)狀態(tài)。301-永久跳轉(zhuǎn),原地址不存在了,url被指向到另一個(gè)地址。這個(gè)主要是搜索引擎相關(guān),影響爬蟲的檢索行為。302-臨時(shí)跳轉(zhuǎn),服務(wù)器會(huì)返回一個(gè)新的url給客戶端,客戶端可以繼續(xù)訪問這個(gè)url來獲取內(nèi)容。304-資源沒有改變,客戶端可以使用本地緩存的內(nèi)容,常見于靜態(tài)內(nèi)容訪問。413-請(qǐng)求實(shí)體太大。常見的情況是上傳大文件,但超出了服務(wù)器(比如nginx)限制?;蛘哒?qǐng)求頭或請(qǐng)求體超出了后端的server(比如tomcat)的設(shè)置(比如當(dāng)前域名下cookie太多,超出了請(qǐng)求頭限制)416-跟斷點(diǎn)續(xù)傳有關(guān),客戶端請(qǐng)求的范圍超出了服務(wù)器上文件大小404-notFound400-請(qǐng)求參數(shù)非法,基本上是表單提交到業(yè)務(wù)層時(shí)出現(xiàn)500-服務(wù)器內(nèi)部錯(cuò)誤,不能返回正常的結(jié)果。比如最常見的應(yīng)用拋出空指針異常未進(jìn)行處理。502-網(wǎng)關(guān)錯(cuò)誤。常見的情況是反向代理后端的服務(wù)器(比如resin或tomcat)沒有啟動(dòng)。503-服務(wù)不可用。比如服務(wù)器負(fù)載太高或者服務(wù)器已經(jīng)停止服務(wù)。504-網(wǎng)關(guān)超時(shí)。比如請(qǐng)求時(shí)長(zhǎng)超出了服務(wù)器的響應(yīng)時(shí)間限制。Session和Cookiehttp請(qǐng)求是無狀態(tài)的請(qǐng)求,但是在我們的互聯(lián)網(wǎng)應(yīng)用中,經(jīng)常需要標(biāo)識(shí)用戶狀態(tài)信息來完成一些交互性的操作,比如用戶認(rèn)證要記錄用戶登錄狀態(tài),購(gòu)物車應(yīng)用要記住用戶選擇的商品,廣告投放應(yīng)用要記錄用戶的歷史瀏覽行為等等。這里就會(huì)用到session和cookie了。session:是指http請(qǐng)求-響應(yīng)的過程中客戶端與服務(wù)器端的交互狀態(tài),這些信息被保存在服務(wù)器端,比如內(nèi)存,數(shù)據(jù)庫(kù)等。每個(gè)session都有一個(gè)唯一標(biāo)識(shí),由服務(wù)器生成,這個(gè)標(biāo)識(shí)也要在客戶端進(jìn)行保存,這樣客戶端在下次請(qǐng)求時(shí)可以帶上這個(gè)標(biāo)識(shí),方便服務(wù)器判斷客戶端的狀態(tài)??蛻舳藢?duì)session的支持:1 通過cookie保存sessionid,在請(qǐng)求時(shí)發(fā)送給服務(wù)器。2 通過url的參數(shù)攜帶sessionid與服務(wù)器通信。3 通過表單的隱藏字段攜帶sessionid與服務(wù)器通信。線程用題目將線程知識(shí)給大家復(fù)習(xí)和講解線程-1復(fù)習(xí)下賣票程序ThreadDemo0.java線程-2Callable接口演示在主線程中需要執(zhí)行比較耗時(shí)的操作時(shí),但又不想阻塞主線程時(shí),可以把這些作業(yè)交給Future對(duì)象在后臺(tái)完成,當(dāng)主線程將來需要時(shí),就可以通過Future對(duì)象獲得后臺(tái)作業(yè)的計(jì)算結(jié)果或者執(zhí)行狀態(tài)。一般FutureTask多用于耗時(shí)的計(jì)算,主線程可以在完成自己的任務(wù)后,再去獲取結(jié)果。僅在計(jì)算完成時(shí)才能檢索結(jié)果;如果計(jì)算尚未完成,則阻塞get方法。一旦計(jì)算完成,就不能再重新開始或取消計(jì)算。get方法而獲取結(jié)果只有在計(jì)算完成時(shí)獲取,否則會(huì)一直阻塞直到任務(wù)轉(zhuǎn)入完成狀態(tài),然后會(huì)返回結(jié)果或者拋出異常。線程-3線程的同步和通信生產(chǎn)者消費(fèi)者+等待+通知喚醒ThreadDemo2.java線程-4(8鎖)加同步方法,方法講解加靜態(tài)同步方法,方法講解筆記見后一頁(yè)線程-4筆記一個(gè)對(duì)象里面如果有多個(gè)synchronized方法,某一個(gè)時(shí)刻內(nèi),只要一個(gè)線程去調(diào)用其中的一個(gè)synchronized方法了,其它的線程都只能等待,換句話說,某一個(gè)時(shí)刻內(nèi),只能有唯一一個(gè)線程去訪問這些synchronized方法鎖的是當(dāng)前對(duì)象this,被鎖定后,其它的線程都不能進(jìn)入到當(dāng)前對(duì)象的其它的synchronized方法加個(gè)普通方法后發(fā)現(xiàn)和同步鎖無關(guān)換成兩個(gè)對(duì)象后,不是同一把鎖了,情況立刻變化。都換成靜態(tài)同步方法后,情況又變化所有的非靜態(tài)同步方法用的都是同一把鎖——實(shí)例對(duì)象本身,也就是說如果一個(gè)實(shí)例對(duì)象的非靜態(tài)同步方法獲取鎖后,該實(shí)例對(duì)象的其他非靜態(tài)同步方法必須等待獲取鎖的方法釋放鎖后才能獲取鎖,可是別的實(shí)例對(duì)象的非靜態(tài)同步方法因?yàn)楦搶?shí)例對(duì)象的非靜態(tài)同步方法用的是不同的鎖,所以毋須等待該實(shí)例對(duì)象已獲取鎖的非靜態(tài)同步方法釋放鎖就可以獲取他們自己的鎖。

所有的靜態(tài)同步方法用的也是同一把鎖——類對(duì)象本身,這兩把鎖是兩個(gè)不同的對(duì)象,所以靜態(tài)同步方法與非靜態(tài)同步方法之間是不會(huì)有競(jìng)態(tài)條件的。但是一旦一個(gè)靜態(tài)同步方法獲取鎖后,其他的靜態(tài)同步方法都必須等待該方法釋放鎖后才能獲取鎖,而不管是同一個(gè)實(shí)例對(duì)象的靜態(tài)同步方法之間,還是不同的實(shí)例對(duì)象的靜態(tài)同步方法之間,只要它們同一個(gè)類的實(shí)例對(duì)象!線程-5(

按序接力)A->B->C線程-6(

讀寫鎖)接口:

ReadWriteLock線程-7(

線程池)第四種獲得線程的方法綜合你在項(xiàng)目中碰到SVN或者Git沖突了你如何解決的?Answer:見陽哥的Vcr課程講解Mybatis中動(dòng)態(tài)sql拼裝<if>開發(fā)錯(cuò)誤:Causedby:org.apache.ibatis.reflection.ReflectionException:ThereisnogetterforpropertynamedXXX'in'classjava.lang.XXX'Mysql

什么是索引?

什么時(shí)候新建、什么時(shí)候不應(yīng)該建?說出平時(shí)開發(fā)中使用索引優(yōu)化需要注意的情況?也即索引失效的情況?各種查詢SQL的考察,主要是子查詢、分組查詢和多表連接什么是索引A:Mysql官方對(duì)索引的定義為:索引是幫助高效獲取數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),索引可以大大提高查詢的檢索速度。創(chuàng)建索引時(shí),你需要確保該索引是應(yīng)用在SQL查詢語句的條件(一般作為WHERE子句的條件)。實(shí)際上,索引也是一張表,該表保存了主鍵與索引字段,并指向?qū)嶓w表的記錄。索引是可以提高查詢速度,但過多的使用索引將會(huì)造成濫用。因此索引也會(huì)有它的缺點(diǎn):雖然索引大大提高了查詢速度,同時(shí)卻會(huì)降低更新表的速度,如對(duì)表進(jìn)行INSERT、UPDATE和DELETE。因?yàn)楦卤頃r(shí),MySQL不僅要保存數(shù)據(jù),還要保存一下索引文件。建立索引會(huì)占用磁盤空間的索引文件。哪些情況下索引可以建立1. 主鍵自動(dòng)建立唯一索引2. 直接條件查詢的字段,在SQL中用于條件約束的字段3. 查詢中與其它表關(guān)聯(lián)的字段,外鍵關(guān)系建立索引。4. 查詢中排序的字段,排序字段若通過索引去訪問將大大提高排序速度5. 查詢中統(tǒng)計(jì)或者分組字段哪些情況下索引不建1. 表記錄太少。2. 經(jīng)常增刪改的表。3. 數(shù)據(jù)重復(fù)且分布平均的表字段,因此應(yīng)該只為最經(jīng)常查詢和最經(jīng)常排序的數(shù)據(jù)列建立索引。注意,如果某個(gè)數(shù)據(jù)列包含許多重復(fù)的內(nèi)容,為它建立索引就沒有太大的實(shí)際效果。索引不足或缺點(diǎn)1. 提高了查詢速度,同時(shí)卻會(huì)降低更新表的速度,如對(duì)表進(jìn)行INSERT、UPDATE和DELETE。因?yàn)楦卤頃r(shí),MySQL不僅要保存數(shù)據(jù),還要保存一下索引文件2. 建立索引會(huì)占用磁盤空間的索引文件。一般情況這個(gè)問題不太嚴(yán)重,但如果你在一個(gè)大表上創(chuàng)建了多種組合索引,索引文件的會(huì)膨脹很快3. 索引只是提高效率的一個(gè)因素,如果你的MySQL有大數(shù)據(jù)量的表,就需要花時(shí)間研究建立最優(yōu)秀的索引,或優(yōu)化查詢語句索引失效和EXPLAIN查詢分析1少用or,用它來連接時(shí)會(huì)索引失效2where子句的查詢條件里有!=,mysql將無法使用索引。3使用了mysql的函數(shù)時(shí)索引將無效4使用like查詢%開頭5字符串不加單引號(hào)索引失效6復(fù)合索引不使用第一列比如有一條語句是這樣的:select*fromuserswherearea=’beijing’andage=22;如果我們是在area和age上分別創(chuàng)建單個(gè)索引的話,由于mysql查詢每次只能使用一個(gè)索引,所以雖然這樣已經(jīng)相對(duì)不做索引時(shí)全表掃描提高了很多效率,但是如果在area、age兩列上創(chuàng)建復(fù)合索引的話將帶來更高的效率。如果我們創(chuàng)建了(area,age,salary)的復(fù)合索引,那么其實(shí)相當(dāng)于創(chuàng)建了(area,age,salary)、(area,age)、(area)三個(gè)索引,這被稱為最佳左前綴特性。因此我們?cè)趧?chuàng)建復(fù)合索引時(shí)應(yīng)該將最常用作限制條件的列放在最左邊,依次遞減。explain字段解釋Id: 語句編號(hào)select_type: select類型table: 顯示這一句SQL是關(guān)于哪張表的type: 顯示了連接使用了哪種類別,有無使用索引possible_keys:MySQL可能使用哪個(gè)索引key: key列顯示MySQL實(shí)際決定使用的鍵(索引)key_len: key_len列顯示MySQL決定使用的鍵長(zhǎng)度ref: ref列顯示使用哪個(gè)列或常數(shù)與key一起從表中選擇rows: rows列顯示MySQL認(rèn)為它執(zhí)行查詢時(shí)必須檢查的行數(shù)Extra: 該列包含MySQL解決查詢的詳細(xì)信息說說你碰到過的一次難忘的生產(chǎn)故障?不可能在生產(chǎn)機(jī)器上安裝eclipse去debug只看log4j是不夠的。問題:高CPU占用根據(jù)top命令,發(fā)現(xiàn)PID為28555的Java進(jìn)程占用CPU高達(dá)200%,出現(xiàn)故障。通過psaux|grepPID命令,可以進(jìn)一步確定是tomcat進(jìn)程出現(xiàn)了問題。但是,怎么定位到具體線程或者代碼呢?首先顯示線程列表:ps-mppid-oTHREAD,tid,time找到了耗時(shí)最高的線程28802,占用CPU時(shí)間快兩個(gè)小時(shí)了!其次將需要的線程ID轉(zhuǎn)換為16進(jìn)制格式:printf"%x\n"tid最后打印線程的堆棧信息:jstackpid|greptid(16進(jìn)制線程ID)–A60找到有問題的java代碼(省略),進(jìn)行業(yè)務(wù)調(diào)整和編碼修改最后,總結(jié)下排查CPU故障的方法和技巧有哪些:1、top命令:Linux命令??梢圆榭磳?shí)時(shí)的CPU使用情況。也可以查看最近一段時(shí)間的CPU使用情況。2、PS命令:Linux命令。強(qiáng)大的進(jìn)程狀態(tài)監(jiān)控命令。可以查看進(jìn)程以及進(jìn)程中線程的當(dāng)前CPU使用情況。屬于當(dāng)前狀態(tài)的采樣數(shù)據(jù)。3、jstack:Java提供的命令。可以查看某個(gè)進(jìn)程的當(dāng)前線程棧運(yùn)行情況。根據(jù)這個(gè)命令的輸出可以定位某個(gè)進(jìn)程的所有線程的當(dāng)前運(yùn)行狀態(tài)、運(yùn)行代碼,以及是否死鎖等等。Linux服務(wù)器性能查看和分析有哪些認(rèn)識(shí)?Answer:回答思路1CPU2內(nèi)存3磁盤4網(wǎng)絡(luò)5

權(quán)限和二進(jìn)制Linux服務(wù)器性能查看和分析有哪些認(rèn)識(shí)?常用系統(tǒng)命令

Vmstat、sar、iostat、netstat、free、ps、top等

常用組合用vmstat、sar、mpstat檢測(cè)是否存在CPU瓶頸

vmstat、free檢測(cè)是否存在內(nèi)存瓶頸

iostat檢測(cè)是否存在磁盤I/O瓶頸

netstat檢測(cè)是否存在網(wǎng)絡(luò)I/O瓶頸Linux服務(wù)器性能查看和分析有哪些認(rèn)識(shí)?系統(tǒng)整體性能評(píng)估:uptime、top等,先以top為例1linux系統(tǒng)當(dāng)前時(shí)間2從開機(jī)到目前運(yùn)行了多久,3當(dāng)前有幾個(gè)用戶連接到本臺(tái)主機(jī)4負(fù)載均衡,當(dāng)三個(gè)值相加后除以3結(jié)果大于0.6表示需要注意服務(wù)器負(fù)擔(dān)。5Cpu使用率699.8%id,該id是systemidleprocess=處理器空閑時(shí)間百分比,越大越好7Swap,交換分區(qū)的值Linux服務(wù)器性能查看和分析有哪些認(rèn)識(shí)?系統(tǒng)整體性能評(píng)估:uptime、top等,再以u(píng)ptime為例[root@web1~]#uptime16:38:00up118days,3:01,5users,loadaverage:1.22,1.02,0.91

這里需要注意的是:loadaverage這個(gè)輸出值,這三個(gè)值分別為:1分鐘平均負(fù)載、5分鐘平均負(fù)載、15分鐘平均負(fù)載,大小一般不能大于系統(tǒng)CPU的個(gè)數(shù)。

假設(shè),本輸出中系統(tǒng)有8個(gè)CPU,如果loadaverage的三個(gè)值長(zhǎng)期大于8時(shí),說明CPU很繁忙,負(fù)載很高,可能會(huì)影響系統(tǒng)性能,

但是偶爾大于8時(shí),倒不用擔(dān)心,一般不會(huì)影響系統(tǒng)性能。相反,如果loadaverage的輸出值小于CPU的個(gè)數(shù),則表示CPU還有空閑的時(shí)間片,比如本例中的輸出,CPU是非??臻e的。Linux服務(wù)器性能查看和分析有哪些認(rèn)識(shí)?CPU性能評(píng)估:監(jiān)控系統(tǒng)CPU(包含不限于)vmstat一般vmstat工具的使用是通過兩個(gè)數(shù)字參數(shù)來完成的,第一個(gè)參數(shù)是采樣的時(shí)間間隔數(shù),單位是秒,第二個(gè)參數(shù)是采樣的次數(shù)Procsr列表示運(yùn)行和等待cpu時(shí)間片的進(jìn)程數(shù),這個(gè)值如果長(zhǎng)期大于系統(tǒng)CPU的個(gè)數(shù),說

明CPU不足,需要增加CPU。

b列表示在等待資源的進(jìn)程數(shù),比如正在等待I/O、或者內(nèi)存交換等。cpuus列顯示了用戶進(jìn)程消耗的CPU時(shí)間百分比。us的值比較高時(shí)說明用戶進(jìn)程消耗的cpu時(shí)間多,但是如果長(zhǎng)期大于50%,就需要考慮優(yōu)化程序或算法。sy列顯示了內(nèi)核進(jìn)程消耗的CPU時(shí)間百分比。Sy的值較高時(shí),說明內(nèi)核消耗的CPU資源很多。根據(jù)經(jīng)驗(yàn),us+sy的參考值為80%,如果us+sy大于80%說明可能存在CPU資源不足。Linux服務(wù)器性能查看和分析有哪些認(rèn)識(shí)??jī)?nèi)存性能評(píng)估:利用free指令監(jiān)控內(nèi)存freefree是監(jiān)控linux內(nèi)存使用狀況最常用的指令一般有這樣一個(gè)經(jīng)驗(yàn)公式:應(yīng)用程序可用內(nèi)存/系統(tǒng)物理內(nèi)存>70%時(shí),表示系統(tǒng)內(nèi)存資源非常充足,不影響系統(tǒng)性能,應(yīng)用程序可用內(nèi)存/系統(tǒng)物理內(nèi)存<20%時(shí),表示系統(tǒng)內(nèi)存資源緊缺,需要增加系統(tǒng)內(nèi)存,20%<應(yīng)用程序可用內(nèi)存/系統(tǒng)物理內(nèi)存<70%時(shí),表示系統(tǒng)內(nèi)存資源基本能滿足應(yīng)用需求,暫時(shí)不影響系統(tǒng)性能。[root@webserver~]#free-m totalusedfreesharedbufferscachedMem:8111718592602436299-/+buffers/cache:6437468Swap:818908189Linux服務(wù)器性能查看和分析有哪些認(rèn)識(shí)?磁

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論