性能測試結(jié)果分析_第1頁
性能測試結(jié)果分析_第2頁
性能測試結(jié)果分析_第3頁
性能測試結(jié)果分析_第4頁
性能測試結(jié)果分析_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

分析原則:1、具體問題具體分析(這是由于不同的應(yīng)用系統(tǒng),不同的測試目的,不同的性能關(guān)注點)2、查找瓶頸時按以下順序,由易到難。

服務(wù)器硬件瓶頸-〉網(wǎng)絡(luò)瓶頸(對局域網(wǎng),可以不考慮)-〉服務(wù)器操作系統(tǒng)瓶頸(參數(shù)配置)-〉中間件瓶頸(參數(shù)配置,數(shù)據(jù)庫,web服務(wù)器等)-〉應(yīng)用瓶頸(SQL語句、數(shù)據(jù)庫設(shè)計、業(yè)務(wù)邏輯、算法等)

注:以上過程并不是每個分析中都需要的,要根據(jù)測試目的和要求來確定分析的深度。對一些要求低的,我們分析到應(yīng)用系統(tǒng)在將來大的負(fù)載壓力(并發(fā)用戶數(shù)、數(shù)據(jù)量)下,系統(tǒng)的硬件瓶頸在哪兒就夠了。3、分段排除法很有效分析的信息來源:1、根據(jù)場景運行過程中的錯誤提示信息2、根據(jù)測試結(jié)果收集到的監(jiān)控指標(biāo)數(shù)據(jù)一、錯誤提示分析分析實例:Error:Failedtoconnecttoserver“0:8080″:[10060]ConnectionError:timedoutError:Server“0″hasshutdowntheconnectionprematurely分析:A、應(yīng)用服務(wù)死掉。(小用戶時:程序上的問題。程序上處理數(shù)據(jù)庫的問題)B、應(yīng)用服務(wù)沒有死(應(yīng)用服務(wù)參數(shù)設(shè)置問題)

C、數(shù)據(jù)庫的連接(1、在應(yīng)用服務(wù)的性能參數(shù)可能太小了2、數(shù)據(jù)庫啟動的最大連接數(shù)(跟硬件的內(nèi)存有關(guān)))Error:Pagedownloadtimeout(120seconds)hasexpired分析:可能是以下原因造成A、應(yīng)用服務(wù)參數(shù)設(shè)置太大導(dǎo)致服務(wù)器的瓶頸B、頁面中圖片太多C、在程序處理表的時候檢查字段太大多二、監(jiān)控指標(biāo)數(shù)據(jù)分析1、最大并發(fā)用戶數(shù):應(yīng)用系統(tǒng)在當(dāng)前環(huán)境(硬件環(huán)境、網(wǎng)絡(luò)環(huán)境、軟件環(huán)境(參數(shù)配置))下能承受的最大并發(fā)用戶數(shù)。

在方案運行中,如果出現(xiàn)了大于3個用戶的業(yè)務(wù)操作失敗,或出現(xiàn)了服務(wù)器shutdown的情況,則說明在當(dāng)前環(huán)境下,系統(tǒng)承受不了當(dāng)前并發(fā)用戶的負(fù)載壓力,那么最大并發(fā)用戶數(shù)就是前一個沒有出現(xiàn)這種現(xiàn)象的并發(fā)用戶數(shù)。

如果測得的最大并發(fā)用戶數(shù)到達了性能要求,且各服務(wù)器資源情況良好,業(yè)務(wù)操作響應(yīng)時間也達到了用戶要求,那么OK。否則,再根據(jù)各服務(wù)器的資源情況和業(yè)務(wù)操作響應(yīng)時間進一步分析原因所在。2、業(yè)務(wù)操作響應(yīng)時間:

分析方案運行情況應(yīng)從平均事務(wù)響應(yīng)時間圖和事務(wù)性能摘要圖開始。使用“事務(wù)性能摘要”圖,可以確定在方案執(zhí)行期間響應(yīng)時間過長的事務(wù)。細(xì)分事務(wù)并分析每個頁面組件的性能。查看過長的事務(wù)響應(yīng)時間是由哪些頁面組件引起的?問題是否與網(wǎng)絡(luò)或服務(wù)器有關(guān)?如果服務(wù)器耗時過長,請使用相應(yīng)的服務(wù)器圖確定有問題的服務(wù)器度量并查明服務(wù)器性能下降的原因。如果網(wǎng)絡(luò)耗時過長,請使用“網(wǎng)絡(luò)監(jiān)視器”圖確定導(dǎo)致性能瓶頸的網(wǎng)絡(luò)問題3、服務(wù)器資源監(jiān)控指標(biāo):內(nèi)存:eq\o\ac(○,1)UNIX資源監(jiān)控中指標(biāo)內(nèi)存頁交換速率(Pagingrate),如果該值偶爾走高,表明當(dāng)時有線程競爭內(nèi)存。如果持續(xù)很高,則內(nèi)存可能是瓶頸。也可能是內(nèi)存訪問命中率低。eq\o\ac(○,2)Windows資源監(jiān)控中,如果Process\PrivateBytes計數(shù)器和Process\WorkingSet計數(shù)器的值在長時間內(nèi)持續(xù)升高,同時Memory\Availablebytes計數(shù)器的值持續(xù)降低,則很可能存在內(nèi)存泄漏。內(nèi)存資源成為系統(tǒng)性能的瓶頸的征兆:很高的換頁率(highpageoutrate);進程進入不活動狀態(tài);交換區(qū)所有磁盤的活動次數(shù)很高;很高的全局系統(tǒng)CPU利用率;

內(nèi)存不夠出錯(outofmemoryerrors)處理器:eq\o\ac(○,1)Windows資源監(jiān)控(UNIX操作系統(tǒng)同理)中指標(biāo)CPU占用率(CPUutilization),如果該值持續(xù)超過95%,表明瓶頸是CPU??梢钥紤]增加一個處理器或換一個更快的處理器。如果服務(wù)器專用于SQLServer,可接受的最大上限是80-85%

合理使用的范圍在60%至70%。eq\o\ac(○,2)Windows資源監(jiān)控中,如果System\ProcessorQueueLength大于2,而處理器利用率(ProcessorTime)一直很低,則存在著處理器阻塞。CPU資源成為系統(tǒng)性能的瓶頸的征兆:

很慢的響應(yīng)時間(slowresponsetime)

CPU空閑時間為零(zeropercentidleCPU)

過高的用戶占用CPU時間(highpercentuserCPU)

過高的系統(tǒng)占用CPU時間(highpercentsystemCPU)

長時間的有很長的運行進程隊列(largerunqueuesizesustainedovertime)磁盤I/O:eq\o\ac(○,1)Windows資源監(jiān)控(UNIX操作系統(tǒng)同理)中指標(biāo)磁盤交換率(Diskrate),如果該參數(shù)值一直很高,表明I/O有問題??煽紤]更換更快的硬盤系統(tǒng)。eq\o\ac(○,2)Windows資源監(jiān)控中,如果DiskTime和Avg.DiskQueueLength的值很高,而PageReads/sec頁面讀取操作速率很低,則可能存在磁盤瓶徑。I/O資源成為系統(tǒng)性能的瓶頸的征兆:過高的磁盤利用率(highdiskutilization)

太長的磁盤等待隊列(largediskqueuelength)

等待磁盤I/O的時間所占的百分率太高(largepercentageoftimewaitingfordiskI/O)

太高的物理I/O速率:largephysicalI/Orate(notsufficientinitself)

過低的緩存命中率(lowbuffercachehitratio(notsufficientinitself))

太長的運行進程隊列,但CPU卻空閑(largerunqueuewithidleCPU)Memory相關(guān)內(nèi)存是第一個監(jiān)視對象,確定系統(tǒng)瓶頸的第一個步驟就是排除內(nèi)存問題。內(nèi)存短缺的問題可能會引起各種各樣的問題。Object(對象)Counters(計數(shù)器名稱)Description(描述)參考值MemoryAvailableMbytes物理內(nèi)存的可用數(shù)(單位Mbytes)。默認(rèn)情況下IIS5.0使用50%的可用物理內(nèi)存,作為IIS的文件緩存(filecache)。IIS基本占用2.5MB,每個附加連接將在此基礎(chǔ)上占用10KB左右。至少要有10%的物理內(nèi)存值MemoryPage/secPageFaults/secPagesInput/secPageReads/secTransitionFaults/sec當(dāng)處理器向內(nèi)存指定的位置請求一頁(可能是數(shù)據(jù)或代碼)出現(xiàn)錯誤時,這就構(gòu)成一個PageFault。如果該頁在內(nèi)存的其他位置,該錯誤被稱為軟錯誤(用TransitionFault/sec計數(shù)器衡量);如果該頁必須從硬盤上重新讀取時,被稱為硬錯誤。許多處理器可以在有大量軟錯誤的情況下繼續(xù)操作。但是,硬錯誤可以導(dǎo)致明顯的拖延。PageFaults/sec是處理器每秒鐘處理的錯誤頁(包括軟錯誤和硬錯誤)。PagesInput/sec是為了解決硬錯誤頁,從硬盤上讀取的頁數(shù),而PageReads/sec是為了解決硬錯誤,從硬盤讀取的次數(shù)。如果PageReads/Sec比率持續(xù)保持為5,表示可能內(nèi)存不足。Pages/sec是指為解析硬頁錯誤從磁盤讀取或?qū)懭氪疟P的頁數(shù)。Page/sec推薦00-20(如果服務(wù)器沒有足夠的內(nèi)存處理其工作負(fù)荷,此數(shù)值將一直很高。如果大于80,表示有問題)。這些計數(shù)器的值比較低,說明Web服務(wù)器響應(yīng)請求比較快,否則可能是服務(wù)器系統(tǒng)內(nèi)存短缺引起(也可能是緩存太大,導(dǎo)致系統(tǒng)內(nèi)存太少)。PageInput/sec的值可以衡量出硬錯誤頁發(fā)生的速率,通常它的值會大于或者等于PageReads/sec。MemoryCacheBytes文件系統(tǒng)緩存(FileSystemCache),默認(rèn)情況下為50%的可用物理內(nèi)存。如IIS5.0運行內(nèi)存不夠時,它會自動整理緩存。需要關(guān)注該計數(shù)器的趨勢變化。默認(rèn)情況下為50%的可用物理內(nèi)存InternetInformationServicesGlobalFileCacheHits%FileCacheFlushesFileCacheHitsFileCacheHits%是文件緩存命中全部緩存需求的比例,反映了IIS的文件緩存設(shè)置的工作情況。而FileCacheHits是文件緩存命中的具體值,F(xiàn)ileCacheFlushes是自服務(wù)器啟動之后文件緩存刷新次數(shù),如果刷新太慢,會浪費內(nèi)存;如果刷新太快,緩存中的對象會太頻繁的丟棄生成,起不到緩存的作用。通過FileCacheHits和FileCacheFlushes可以得到一個適當(dāng)?shù)乃⑿轮担▍⒖糏IS的設(shè)置ObjectTTL、MemCacheSize、MaxCacheFileSize)。(對于一個大部分是靜態(tài)網(wǎng)頁組成的網(wǎng)站)FileCacheHits%在80%左右屬于非常好!MemoryPoolPagedBytesPoolNonpagedBytes這兩個計數(shù)器監(jiān)視服務(wù)器上各個進程的分頁池字節(jié)數(shù)和非分頁池字節(jié)數(shù)。在訪問數(shù)比較固定的情況下,PoolNonpagedBytes是比較固定的,如果訪問數(shù)逐步增加,該值會緩慢的增加。ProcessVirtualBytes(實例inetinfo、dllhost)WorkingSe(t實例inetinfo、dllhost)Dllhost#n進程都要添加計數(shù)器VirtualBytes計數(shù)器監(jiān)視IIS5.0保留的虛地址空間的數(shù)量,實例化為inetinfo進程(IIS運行的核心)和Dllhost進程(隔離/連接池的應(yīng)用程序必需的)。WorkingSet計數(shù)器反映了每個進程使用的內(nèi)存頁的數(shù)量。系統(tǒng)的內(nèi)存頁(poolPage)只能由操作系統(tǒng)的核心模塊直接訪問,用戶進程不能訪問。運行IIS5.0的服務(wù)器上,負(fù)責(zé)web連接的線程以及它需要的一些對象都保存在未分頁的池中(nonpagedpool),比如文件句柄和socket連接。ProcessPrivateBytes指這個處理不能與其他處理共享的、已分配的當(dāng)前字節(jié)數(shù)。MemoryCommittedBytesCommittedByte是指以字節(jié)表示的確認(rèn)虛擬內(nèi)存。(確認(rèn)內(nèi)存是指為磁盤分頁文件在磁盤上保留的空間以便在需要將其寫回磁盤時使用)。推薦不超過物理內(nèi)存的75%內(nèi)存問題主要檢查應(yīng)用程序是否存在內(nèi)存泄漏。如果發(fā)生了內(nèi)存泄漏,Process\PrivateBytes計數(shù)器和Process\WorkingSet計數(shù)器的值往往會升高,同時AvailableBytes的值會降低。內(nèi)存泄漏應(yīng)該通過一個長時間的,用來研究分析當(dāng)所有內(nèi)存都耗盡時,應(yīng)用程序反應(yīng)情況的測試來檢驗。Processor相關(guān)Object(對象)Counters(計數(shù)器名稱)Description(描述)參考值SytemProcessorQueueLengthProcessorQueueLength是指處理列隊中的線程數(shù)。即使在有多個處理器的計算機上處理器時間也會有一個單列隊。不象磁盤計數(shù)器,這個計數(shù)器僅計數(shù)就緒的線程,而不計數(shù)運行中的線程。如果處理器列隊中總是有兩個以上的線程通常表示處理器堵塞。小于2。顯示在由Web服務(wù)器所有處理器共享的隊列中等待執(zhí)行的線程數(shù)。處理器瓶頸會導(dǎo)致該值持續(xù)大于2。Processor%ProcessorTimeCPU使用率。這是查看處理器飽和狀況的最佳計數(shù)器。顯示所有CPU的線程處理時間。如果一個或多個處理器的該數(shù)值持續(xù)超過90%,則表示此測試的負(fù)載對于目前的硬件過于沉重。為多處理器服務(wù)器添加該計數(shù)器的0到x個實例。小于75%。排除內(nèi)存因素,如果該計數(shù)器的值比較大,而同時網(wǎng)卡和硬盤的值比較低,那么可以確定CPU瓶頸SystemContextSwitches/secContextSwitches/sec指計算機上的所有處理器全都從一個線程轉(zhuǎn)換到另一個線程的綜合速率。當(dāng)正在運行的線程自動放棄處理器時出現(xiàn)上下文轉(zhuǎn)換,由一個有更高優(yōu)先就緒的線程占先或在用戶模式和特權(quán)(內(nèi)核)模式之間轉(zhuǎn)換以使用執(zhí)行或分系統(tǒng)服務(wù)。它是在計算機上的所有處理器上運行的所有線程的Thread:ContextSwitches/sec的總數(shù)并且用轉(zhuǎn)換數(shù)量衡量。在系統(tǒng)和線程對象上有上下文轉(zhuǎn)換計數(shù)器。如果切換次數(shù)到5000*CPU個數(shù)和10000*CPU個數(shù)中,說明它忙于切換線程而不是處理ASP腳本。Processor%PrivilegedTime%PrivilegedTime是在特權(quán)模式下處理線程執(zhí)行代碼所花時間的百分比。當(dāng)調(diào)用Windows系統(tǒng)服務(wù)時,此服務(wù)經(jīng)常在特權(quán)模式運行,以便獲取對系統(tǒng)專有數(shù)據(jù)的訪問。在用戶模式執(zhí)行的線程無法訪問這些數(shù)據(jù)。對系統(tǒng)的調(diào)用可以是直接的(explicit)或間接的(implicit),例如頁面錯誤或中斷。不像某些早期的操作系統(tǒng),Windows除了使用用戶和特權(quán)模式的傳統(tǒng)保護模式之外,還使用處理邊界作為分系統(tǒng)保護。某些由Windows為您的應(yīng)用程序所做的操作除了出現(xiàn)在處理的特權(quán)時間內(nèi),還可能在其他子系統(tǒng)處理出現(xiàn)。ThreadContextSwitches/sec(實例化inetinfo和dllhost進程如果你決定要增加線程字節(jié)池的大小,你應(yīng)該監(jiān)視這三個計數(shù)器(包括上面的一個)。增加線程數(shù)可能會增加上下文切換次數(shù),這樣性能不會上升反而會下降。如果十個實例的上下文切換值非常高,就應(yīng)該減小線程字節(jié)池的大小。ProcessorInterrupts/sec%DPCTime這兩個計數(shù)器能夠反映處理器用在處理中斷以及推遲處理調(diào)用的時間。Interrupts/sec指處理器每秒鐘接收并維護的硬件中斷的平均值。正常的線程操作在中斷時懸停。大多數(shù)的系統(tǒng)時鐘每隔10毫秒中斷處理器一次,形成了間隔活動的后臺。如果處理器使用率超過90%且InterruptTime大于15%,則處理器可能負(fù)荷過重,并發(fā)生中斷。判斷應(yīng)用程序是否存在處理器瓶頸的方法:如果ProcessorQueueLength顯示的隊列長度保持不變(>=2)個并且處理器的利用率%ProcessorTime超過90%,那么很有可能存在處理器瓶頸。如果發(fā)現(xiàn)ProcessorQueueLength顯示的隊列長度超過2,而處理器的利用率卻一直很低,那么或許更應(yīng)該去解決處理器阻塞問題,這里處理器一般不是瓶頸。如果系統(tǒng)由于應(yīng)用程序代碼效率低下或者系統(tǒng)結(jié)構(gòu)設(shè)計有缺陷而導(dǎo)致大量的上下文切換(ContextSwitches/sec顯示的上下文切換次數(shù)比較大),那么就會占用大量的系統(tǒng)資源。如果系統(tǒng)的吞吐量降低并且CPU的使用率很高,并且此現(xiàn)象發(fā)生時切換水平在15000以上,那么意味著上下文切換次數(shù)過高同時還可以比較ContextSwitches/sec和%PrivilegedTime來判斷上下文切換是否過量。如果后者的值超過40%,且上下文切換的速率也很高,那么應(yīng)該檢查為什么會產(chǎn)生這樣高的上下文切換。網(wǎng)絡(luò)吞吐量以及帶寬Object(對象)Counters(計數(shù)器名稱)Description(描述)參考值NetworkInterfaceBytesTotal/secBytesTotal/sec為發(fā)送和接收字節(jié)的速率,包括幀字符在內(nèi)。判斷網(wǎng)絡(luò)連接速度是否是瓶頸,可以用該計數(shù)器的值和目前網(wǎng)絡(luò)的帶寬比較該計數(shù)器的值和目前網(wǎng)絡(luò)的帶寬相除,結(jié)果應(yīng)該小于50%MaximumConnections、TotalConnectionAttemptsMaximumConnections:“最大連接數(shù)”是和Web服務(wù)同時建立起的最大連接數(shù)。TotalConnectionAttempts:“連接嘗試總數(shù)”是從服務(wù)啟動時利用Web服務(wù)嘗試連接的總數(shù)。該計數(shù)器應(yīng)用于全部所列的實例。磁盤相關(guān)Object(對象)Counters(計數(shù)器名稱)Description(描述)參考值NetworkInterfaceBytesTotal/secBytesTotal/sec為發(fā)送和接收字節(jié)的速率,包括幀字符在內(nèi)。判斷網(wǎng)絡(luò)連接速度是否是瓶頸,可以用該計數(shù)器的值和目前網(wǎng)絡(luò)的帶寬比較Processor%ProcessorTime%PrivilegedTimeCPU使用率該計數(shù)器對應(yīng)于處理器執(zhí)行Windows?2000內(nèi)核命令(如處理SQLServerI/O請求)所用時間的百分比。如果PhysicalDisk計數(shù)器的值很高時該計數(shù)器的值也一直很高,則考慮使用速度更快或效率更高的磁盤子系統(tǒng)。PhysicalDisk%DiskTime%DiskTime指所選磁盤驅(qū)動器忙于為讀或?qū)懭胝埱筇峁┓?wù)所用的時間的百分比。如果三個計數(shù)器都比較大,那么硬盤不是瓶頸。如果只有%DiskTime比較大,另外兩個都比較適中,硬盤可能會是瓶頸。在記錄該計數(shù)器之前,請在Windows2000的命令行窗口中運行diskperf-yD。若數(shù)值持續(xù)超過80%,則可能是內(nèi)存泄漏。PhysicalDiskAverageDiskQueueLength指讀取和寫入請求(為所選磁盤在實例間隔中列隊的)的平均數(shù)。PhysicalDiskAverageDiskReadQueueLength指讀取請求(為所選磁盤在實例間隔中列隊的)的平均數(shù)。PhysicalDiskAverageDiskWriteQueueLength指寫入請求(為所選磁盤在實例間隔中列隊的)的平均數(shù)。PhysicalDiskAverageDisksec/Read指以秒計算的在此盤上讀取數(shù)據(jù)的所需平均時間。PhysicalDiskAverageDisksec/Transfer指以秒計算的在此盤上寫入數(shù)據(jù)的所需平均時間。PhysicalDiskDiskReads/sec指在此盤上讀取操作的速率。PhysicalDiskDiskWrites/sec指在此盤上寫入操作的速率。判斷磁盤瓶頸的方法是通過以下公式來計算:每磁盤的I/O數(shù)=[讀次數(shù)+(4*寫次數(shù))]/磁盤個數(shù)如果計算出的每磁盤的I/O數(shù)大于磁盤的處理能力,那么磁盤存在瓶頸。Web應(yīng)用程序這里以ASP.NET開發(fā)的Web應(yīng)用程序為例進行說明。Object(對象)Counters(計數(shù)器名稱)Description(描述)參考值A(chǔ)SP.NETApplicationsRequest/SecRequestExecuting每秒執(zhí)行的請求數(shù)。當(dāng)前執(zhí)行的請求數(shù)。如果Request/Sec的值比較小,你的Web程序可能是瓶頸ASP.NETRequestWaitTimeRequestExecutingTimeRequestQueued最近的請求在隊列中等待的毫秒數(shù)。執(zhí)行最近的請求所用的毫秒數(shù)。等候處理的請求數(shù)。該計數(shù)器應(yīng)保持接近0。超過IIS隊列長度會出現(xiàn)“服務(wù)器太忙”錯誤。RequestWaitTime和RequestQueued在理想狀況下應(yīng)該接近0,如果這兩個值太大,那么需要重寫代碼提高性能IIS5.0Object(對象)Counters(計數(shù)器名稱)Description(描述)參考值WebServiceBytesSent/Sec“送出字節(jié)數(shù)/秒”是Web服務(wù)送出數(shù)據(jù)字節(jié)的比率。WebServiceBytesReceived/Sec“接收字節(jié)數(shù)/秒”是Web服務(wù)接收數(shù)據(jù)字節(jié)的比率。WebServiceGetRequest/Sec使用Get方法的HTTP請求速率。Get請求用于基本文件獲取或圖象地圖,它們可和表格一起使用。WebServicePOSTRequest/Sec使用Post方法的HTTP請求速率。Post請求用于表格或網(wǎng)關(guān)請求。SQLServer這里針對SQLServer2000,而且只是列出比較關(guān)鍵的幾個。更加詳細(xì)的信息可以參考SQLServer的聯(lián)機文檔。Object(對象)Counters(計數(shù)器名稱)Description(描述)參考值Processor%ProcessorTimeCPU使用率SQLServer:GeneralStatisticsLogins/sec這是每秒登錄到SQLServer的計數(shù)。SQLServer:CacheManagerCacheHitRatio(allinstances)顯示在高速緩存中找到數(shù)據(jù)的命中率。如果數(shù)值持續(xù)小于85%,則表示內(nèi)存有問題。SQLServer:GeneralStatisticsUserConnections顯示當(dāng)前SQL用戶數(shù)。與ActiveServerages:Requests/Sec

溫馨提示

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

最新文檔

評論

0/150

提交評論