性能测试诊断分析与优化.pptx

上传人:max****ui 文档编号:15394176 上传时间:2020-08-09 格式:PPTX 页数:116 大小:4.04MB
收藏 版权申诉 举报 下载
性能测试诊断分析与优化.pptx_第1页
第1页 / 共116页
性能测试诊断分析与优化.pptx_第2页
第2页 / 共116页
性能测试诊断分析与优化.pptx_第3页
第3页 / 共116页
资源描述:

《性能测试诊断分析与优化.pptx》由会员分享,可在线阅读,更多相关《性能测试诊断分析与优化.pptx(116页珍藏版)》请在装配图网上搜索。

1、性能测试诊断分析与优化,陈能技 嘉为IT培训学院,培训讲师介绍,陈能技 () 11年软件测试与质量管理经验 著作: 软件测试技术大全 .NET软件测试实战技术大全 QTP自动化测试最佳实践 软件自动化测试成功之道 性能测试诊断分析与优化,培训课堂的注意事项,培训中 积极、主动不仅使您获得更多的收获,也使培训讲师能有的放矢、保持激情。 持之以恒、集中精力,您收获的将不仅是知识; 请您记得将手机调至震动状态或关机,以免影响您的同学。 培训后 填写课程反馈表 删除桌面临时文件 关机,培训后事项,填写课程反馈表 删除桌面临时文件 关机,性能监控方法 性能诊断分析与优化 性能测试新兴技术介绍,一、性能监

2、控方法,操作系统层性能监控 Web服务器性能监控 中间件服务器性能监控,1、操作系统层性能监控,CPU性能监控 内存性能监控 磁盘IO性能监控 网络性能监控 开源网络性能监控工具的应用 使用Spotlight监控操作系统,CPU性能监控,查看CPU信息: cat /proc/cpuinfo Top Vmstat 2 3 Dstat -cip 1 Mpstat -P ALL 1 Sar 1 10 Pidstat -p 2 5,Top,使用方式:top - d delay q c S s i n b 说明:即时显示process的动态 d :改变显示的更新速度,或是在交谈式指令列( interac

3、tive command)按s q :没有任何延迟的显示速度,如果使用者是有superuser的权限,则top将会以最高的优先序执行 c :切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S :累积模式,会将己完成或消失的子行程( dead child process )的CPU time累积起来 s :安全模式,将交谈式指令取消,避免潜在的危机 i :不显示任何闲置(idle)或无用(zombie)的行程 n :更新的次数,完成后将会退出top b :批次档模式,搭配n参数一起使用,可以用来将top的结果输出到档案内,范例: 显示更新十次后退出; top -n

4、 10 将更新显示二次的结果输入到名称为top.log的档案里: top -n 2 -b top.log,Vmstat,r表示运行队列的大小 b表示由于IO等待而block的线程数量 in表示中断的数量 cs表示上下文切换的数量 us表示用户CPU时间 sys表示系统CPU时间 wa表示由于IO等待而是CPU处于idle状态的时间 id表示CPU处于idle状态的总时间,DSTAT,dstat可以给出每一个设备产生的中断数 设备名和设备号的关系可以参考文件 /proc/interrupts,Mpstat,mpstat可以显示每个CPU的运行状况,比如系统有4个CPU。我们可以看到: # mps

5、tat P ALL 1 Linux 2.4.21-20.ELsmp (localhost.localdomain) 05/23/2006 05:17:31 PM CPU %user %nice %system %idle intr/s 05:17:32 PM all 0.00 0.00 3.19 96.53 13.27 05:17:32 PM 0 0.00 0.00 0.00 100.00 0.00 05:17:32 PM 1 1.12 0.00 12.73 86.15 13.27 05:17:32 PM 2 0.00 0.00 0.00 100.00 0.00 05:17:32 PM 3 0

6、.00 0.00 0.00 100.00 0.00,sar,%user列显示了用户进程消耗的CPU时间百分比。 %nice列显示了运行正常进程所消耗的CPU时间百分比。 %system列显示了系统进程消耗的CPU时间百分比。 %iowait列显示了IO等待所占用的CPU时间百分比 %steal列显示了在内存相对紧张的环境下pagein强制对不同的页面进行的steal操作。 %idle列显示了CPU处在空闲状态的时间百分比。 sar 2 5 // 每隔2秒,显示5次,CPU使用的情况 sar支持保存成两种格式的文件,一种是文本文件,一种是二进制文件(只有通过sar自己的命令才能查看) sar 1

7、 10 data.txt sar 1 5 - o data // 每隔1秒,写入5次,将CPU使用的数据写入二进制文件data中。 sar - f data // 查看data文件,Pidstat,监视某个进程的CPU使用情况 1.通过ps命令找到相应进程的PID: ps - e 2.使用pidstat命令监视进程,详细用法见:http://pagesperso-orange.fr/sebastien.godard/man_pidstat.html pidstat 2 5 每隔2秒,显示5次,所有活动进程的CPU 使用情况 pidstat - p 3132 2 5 每隔2秒,显示5次,PID为

8、1643的进程的CPU使用情况显示 pidstat - p 3132 2 5 - r 每隔2秒,显示5次,PID为1643的进程的内存使用情况显示,内存性能监控,查看内存信息: cat /proc/meminfo Free m Vmstat 2 10 Top Ps,free,$ free -m total used free shared buffers cached Mem: 1002 769 232 0 62 421 -/+ buffers/cache: 286 715 Swap: 1153 0 1153,第一部分Mem行: total 内存总数: 1002M

9、used 已经使用的内存数: 769M free 空闲的内存数: 232M shared 当前已经废弃不用,总是0 buffers Buffer缓存内存数: 62M cached Page缓存内存数:421M 关系:total(1002M) = used(769M) + free(232M),第二部分(-/+ buffers/cache): (-buffers/cache) used内存数:286M (指的第一部分Mem行中的used - buffers - cached) (+buffers/cache) free内存数: 715M (指的第一部分Mem行中的free + buffers +

10、 cached) 可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数。,vmstat,,vmstat,memory swpd列表示切换到内存交换区的内存数量(以k为单位)。如果swpd的值不为0,或者比较大,只要si、so的值长期为0,这种情况下一般不用担心,不会影响系统性能。 free列表示当前空闲的物理内存数量(以k为单位) buff列表示buffers cache的内存数量,一般对块设备的读写才需要缓冲。 cache列表示page cached的内存数量,一般作为文件系统cached,频繁访问的文件都会被cached

11、,如果cache值较大,说明cached的文件数较多,如果此时IO中bi比较小,说明文件系统效率比较好。 swap si 列表示由磁盘调入内存,也就是内存进入内存交换区的数量。 so列表示由内存调入磁盘,也就是内存交换区进入内存的数量。 一般情况下,si、so的值都为0,如果si、so的值长期不为0,则表示系统内存不足。需要增加系统内存。,监控单个进程占用内存的情况,top -d 1然后shift + m(Sort by memory usage) Ps aux | grep HoldMemoryMain top -b -n1 -p 21642 | tail -2|head -1|awk pr

12、int $5 VIRT=SWAP+RES VIRT 进程使用的虚拟内存总量,单位kb SWAP 进程使用的虚拟内存中,被换出的大小,单位kb RES 进程使用的、未被换出的物理内存大小,单位kb,磁盘性能监控,df -hlT parted -l Vmstat iostat -d 2 3 sar -d 2 3 Iotop pidstat iodump,iostat,,iotop,pidstat,pidstat -d 1 pidstat -C test_io -t -d 1,iodump,wget echo 1 /proc/sys/vm/block_dump,rootkanga:# while t

13、rue; do sleep 1; dmesg -c; done | perl iodump C# Caught SIGINT. TASK PID TOTAL READ WRITE DIRTY DEVICES firefox 4450 4538 251 4287 0 sda4, sda3 kjournald 2100 551 0 551 0 sda4 firefox 28452 185 185 0 0 sda4 kjournald 782 59 0 59 0 sda3 pdflush 31 30

14、 0 30 0 sda4, sda3 syslogd 2485 2 0 2 0 sda3 firefox 28414 2 2 0 0 sda4, sda3 firefox 28413 1 1 0 0 sda4 firefox 28410 1 1 0 0 sda4 firefox 28307 1 1 0 0 sda4 firefox 28451 1 1 0 0 sda4,网络性能监控,ping Netstat -i Sar -n DEV 1 3 Sar

15、-n SOCK 1 3 ifTop、ipTraf,ifTop,,开源性能监控工具的应用,Cacti、Nagios Nmon ,Cacti,Cacti是一套基于PHP,MySQL,SNMP及 RRDTool开发的监控工具,可以监控主机的状态和负载情况,添加相应的模板后,可以用来监控 Apache、MySQL 等服务器的运行状态。,Nmon,Nmon是IBM提供的开源监控工具,可对AIX和Linux系统资源进行监控,可收集系统资源使用情况并输出到特定文件,并可利用Excel分析工具进行数据统计分析。,使用Spotlight监控操作系统,,2、Web服务器性能监控,IHS性能监控方法 HTTP连接状

16、态监控 Web服务器吞吐量监控,IHS性能监控,打开server-status监控 状态监控页面,打开server-status监控,LoadModule status_module modules/ApacheModuleStatus.dll # Allow server status reports, with the URL of http://servername/server-status # Change the .your_ to match your domain to enable. SetHandler server-status order deny,allow deny

17、 from all allow from 127.0.0.1 ,状态监控页面,Scoreboard Key: _ Waiting for Connection, S Starting up, R Reading Request, W Sending Reply, K Keepalive (read), D DNS Lookup, L Logging, G Gracefully finishing, . Open slot with no current process,Web服务器网络连接监控,Linux下实时检测httpd连接数 watch -n 1 -d pgrep httpd|wc -l

18、“ 查看TCP并发连接情况: netstat -n | awk /tcp/ ++S$NF END for(a in S) print a, Sa,Web服务器网络连接监控,3、中间件服务器性能监控,WAS性能监控 WAS自带监控工具的使用 perfServletApp的使用方法 LoadRunner监控WAS 使用AppDynamics监控WebSphere JVM性能监控方法及工具 GC日志监控分析 Thread Dump JVM远程监控 JDBC性能监控,WAS性能漏斗模型,WAS性能监控的方面,Session 线程池 JDBC连接 JVM性能,WAS性能监控的方法和工具,WAS自带性能监

19、控工具的使用 perfServletApp的使用方法 LoadRunner监控WAS,WAS自带性能监控工具的使用,WAS自带性能监控工具的使用,用TPV监控JVM发现内存泄漏现象,perfServletApp的使用方法,部署PerfServletApp.ear到WebSphere目录下,perfServletApp的使用方法,LoadRunner监控WAS,JVM性能监控通用方法,JConsole实时监控JVM GC日志分析 Heap Dump Thread Dump,JVM性能监控通用方法-JConsole实时监控JVM,JVM性能监控通用方法-GC日志分析,打开 WAS GC日志,打开W

20、AS GC日志 Java和进程管理-进程定义-Java虚拟机-详细垃圾回收(保存配置后重新启动服务生效) Java和进程管理-进程定义-Java虚拟机-运行时-详细垃圾回收(确认后立即生效) 在通用JVM参数输入框中添加:-Xverbosegclog:gc.log JVM GC日志的保存目录 WASHOME/profiles/yourprofile/logs/yourserver/native_stderr.log 和 native_stdout.log C:WebSphereAppServerprofilesAppSrv01gc.log,GC日志分析工具,IBM Support Assist

21、ant - Garbage Collection and Memory Visualizer IBM Pattern Modeling and Analysis Tool(PMAT) GCViewer ,JVM性能监控通用方法- Heap Dump,heapdump文件是一个二进制文件,它保存了某一时刻jvm堆中对象情况,这种文件需要相应的工具进行分析,例如 heapanalyzer。这个文件最重要的作用就是分析系统是否存在内存溢出的情况,通过heapanalyzer可以很简单地分析出溢出的位置。 产生WAS Heap Dump的方法,JVM性能监控通用方法-Thread Dump,线程监控和

22、分析工具,Thread dump提供了当前活动的线程的快照.它提供了JVM中所有Java线程的栈跟踪信息 产生WAS Thread Dump的方法 Jconsole VisualVM JProfiler Thread Dump Analyzer IBM Thread and Monitor Dump Analyzer for Java,JVM远程监控,Jstatd Jconsolevisualvm Jprofile,中间件性能监控与分析工具,HP Diagnostics JProfiler JProbe YourKit AppDynamics DomainHealth Javamelody J

23、AMON,AppDynamics,WAS的Session监控与分析,ActiveCount:正在处理请求的Session数量 LiveCount:目前缓存在内存中的本地Session的数量,WAS线程数监控分析,ActiveCount: 处于激活状态的线程数。 PoolSize: 线程池中的平均线程数。 PercentMaxed: 所有线程在使用的时间的平均百分比。 DeclaredthreadHungCount: 挂起的线程数。,WAS的JDBC连接池监控,WaitingThreadCount: 当前等待连接的线程。 FaultCount: 在连接池中出现错误(例如超时)的数量。 Perce

24、ntUsed: 当前连接池中被使用的平均百分比。,JDBC性能分析,P6spy + sqlprofiler JDbMonitor JAMON,JProfiler监控JDBC,,二、性能诊断分析与优化,操作系统层性能分析与优化 HIS服务器配置优化 中间件性能分析与优化 JVM性能分析 使用JConsoleJava VisualVM监控和分析WebSphere的JVM性能 JVM参数调整与优化 利用JProfiler分析定位Java内存泄漏问题 Java代码线程死锁问题分析与定位 JSPServlet性能优化方法,操作系统层性能分析与优化,Linux系统性能诊断 操作系统性能调优,Linux系统

25、性能诊断,CPU,对于每一个CPU来说运行队列不要超过3,例如,如果是双核CPU就不要超过6; 如果CPU在满负荷运行,应该符合下列分布, a) User Time:65%70% b) System Time:30%35% c) Idle:0%5% 对于上下文切换要结合CPU使用率来看,如果CPU使用满足上述分布,大量的上下文切换也是可以接受的。,内存,(-/+ buffers/cache)的free和used Swap(si 、so),内存分析案例,上面是一个频繁读写交换区的例子,可以观察到以下几点: 物理可用内存 free 基本没什么显著变化,swapd 逐步增加 当脏页达到10的时候就开

26、始大量使用 swap,free目前的值约等于256MB*10%=2.56MB buff 稳步减少说明系统知道内存不够了,kwapd 正在从 buff 那里借用部分内存 kswapd 持续把脏页面写到 swap 交换区(so),从 swapd 逐渐增加看出确实如此,IO,同一时间进行大量的I/O操作 在这种情况时我们会发现CPU的wa时间百分比会上升,证明系统的idle时间大部分都是在等待I/O操作。,从这个输出我们可以看到CPU有50%的时间都在等待I/O操作,我们还可以看到系统的bi值很大,证明系统有大量的I/O请求将磁盘内容读入内存。,IO,将top的输出通过faults进行排序。我们可以

27、看到vmware产生最多的page faults。也就是说它进行了大量的IO操作。,IO,任何I/O操作都需要一定的时间,而且这些时间对于硬盘来说是确定的,它包含磁盘旋转的延时RD(rotation delay)和磁头搜索时间DS(disk seek)。 RD由磁盘转速(RPM)决定。RD是磁盘旋转一周所需时间的一半。如RPM为10000(1分钟转1万次). RPS=RPM/60=166(1秒转166次)。1/166=0.0006=6ms (磁盘旋转一周要6毫秒)。RD=6ms/2=3ms 磁盘平均搜索时间是3ms,数据传输的平均延时是2ms,这样一次I/O操作的平均时间是:3ms+3ms+2

28、ms=8ms IOPS=1000/8=125 这块磁盘的每秒IO数(IOPS)为125。所以对于10000RPM的磁盘来说它所能承受的IO操作在IOPS在120150之间。如果系统的I/O请求超过这个值,就会使磁盘成为系统的瓶颈。,连续I/O vs.随机I/O,连续I/O常常出现在企业级数据库这样的应用中,需要连续的读取大量数据。这种系统的性能依靠它读取和移动数据的大小和快慢。我们用iostat来监控,会发现rKB/s和wKB/s会很高。,Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz a

29、wait svctm %util /dev/sda 0.00 12891.43 0.00 105.71 0.00 106080.00 0.00 53040.00 1003.46 1099.43 3442.43 26.49 280.00,从输出我们看到w/s=105,wKB/s=53040.所以53040/105=505KB per I/O.,连续I/O vs.随机I/O,对于随机I/O的系统来说性能的关注点不在搜传输数据的大小和速度,而是在磁盘的IOPS。这类系统的I/O请求比较小但是数量很大,如Web服务器和Mail服务器。他们的性能主要依赖每秒钟可处理的请求数:,Device: rrqm/

30、s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util /dev/sda 0.00 633.67 3.06 102.31 24.49 5281.63 12.24 2640.82 288.89 73.67 113.89 27.22 50.00,从输出我们看到w/s=102,wKB/s=2640.所以2640/102=23KB per I/O. 因此对于连续I/O系统来说我们要关注系统读取大量数据的能力即KB per request. 对于随机I/O系统我们注重IOPS值.,操作系统性能调优,系

31、统安装优化 RAID SWAP分区 系统安装后的初步调整优化 检查系统是否正常 关闭不需要的服务 对TCP/IP网络参数进行调整 内核参数优化 针对Web服务器的网络参数优化 针对数据库服务器的内核参数优化,IHS服务器配置优化,MPM对Apache性能的影响 影响性能的配置 并发线程相关的设置 日志对性能的影响 压缩 mod_cache,中间件性能分析与优化,IHS优化 WAS Session优化 内存中最大会话量 Session超时 WAS线程池优化 WAS JDBC连接池优化 连接超时 最大连接数 最小连接数 JVM性能分析与优化,,应用层攻击,数据库服务器,JDBC数据库连接典型问题分

32、析,某电网公司企业网站标准化系统,在100个并发用户压力下进行内网网站首页访问登录操作,发现该系统的应用服务器和数据库服务器连接异常,大量出现错误,测试软件报错信息如下:,通过对分析,发现部分连接参数设置太小,对连接参数进行调整后,测试组对系统进行了再次测试,基本不存在连接失败的情况。,,应用层攻击,某电网公司人力资源系统,员工名册查询无法做压力测试,响应超时的问题,主要是请求的sql太长了,com.sophia.hr.modules.employee.external.impl.EmployeeServiceImpl.java类,修改了方法empListSQL4Info方法,再次测试,响应时

33、间明显改善。,JDBC数据库连接典型问题分析,,应用层攻击,某电商网站,JDBC数据库连接典型问题分析,Caused by: java.sql.SQLException: We are already in the process of making 11 connections and the number of simultaneous builds has been throttled to 10,JVM性能分析,JVM垃圾回收对性能的影响 吞吐量、GC停顿 JVM内存泄漏诊断 线程问题诊断 JVM堆大小对垃圾回收、系统吞吐量的影响 GC策略对系统性能的影响,JVM的堆,JVM年轻代与年

34、老代,Minor GC的过程,Full GC,Full GC对性能的影响 jstat -gc pid 可以显示gc的信息,查看gc的次数,及时间。 其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。,GC日志人肉分析,WAS GC日志分析工具,用PMAT分析GC日志 java -Xmx512m -jar ga414.jar GCViewer,WAS GC 日志分析 案例,WAS GC 日志分析 案例,可以看到Full GC非常多,占所有pause时间比达到65.9%,这是有问题的,GC应该尽可能在年轻代完成,而不是到年

35、老代,JVM堆大小对垃圾回收、系统吞吐量的影响,案例 - PlantsByWebSphere JConsole远程监控WAS JProfiler查看GC Activity(垃圾回收器的活动占用整体时间的百分比),案例,某电网公司可靠性系统 JVM内存不足、频繁GC、服务器CPU忙,JVM参数调整与优化,JVM堆参数设置 GC参数设置,GC策略对系统性能的影响,新生代串行收集器 老年代串行收集器 并行收集器 新生代并行回收收集器 老年代并行回收收集器 CMS(Concurrent Mark Sweep)收集器,-Xgcpolicy:optthruput -Xgcpolicy:optavgpaus

36、e -Xgcpolicy:gencon -Xgcpolicy:balanced,案例 PlantsByWebSphere,Java代码性能问题诊断分析与优化,Java代码性能分析 JSPServlet性能分析与优化 JDBC性能分析与优化 JProfiler等性能分析工具的应用,Java代码性能分析,代码执行效率 CPU使用 内存使用 IO使用 线程锁,JAVA代码执行效率监控分析,JAVA CPU使用监控分析,查看java进程: jps 确认java进程CPU性能: pidstat -p -u 1 3 进一步查看线程CPU性能,定位到CPU高消耗的线程ID: pidstat -p 1 3

37、 -u -t 根据定位到的线程ID,使用jstack导出线程堆栈进行验证: jstack -l /tmp/t.txt 在导出的线程堆栈中查找引起高CPU消耗的线程ID(nid),需要从十六进制转换为10进制,从而定位到哪个线程的Java代码执行导致占用大量CPU,JAVA内存使用监控分析,JProfiler性能分析工具的应用,案例演练-Java内存泄漏检测,TestMem,JAVA I/O使用监控分析,iostat -dx 3 jps pidstat -p -d -t 1 3 jstack -l /tmp/t.txt,Java线程锁监控分析,Jstack监控JAVA线程死锁,jps jst

38、ack -l 1.txt 查找输出结果定位死锁,WAS线程Dump,Linux下命令行启动WAS, Kill -3 /opt/IBM/WebSphere/AppServer/profiles/AppSrv01,Idle线程:一个已经准备好接受请求的线程,但是没有和插件或者客户端建立连接 Keep-Alive线程:是一个已经准备好接受请求的线程,并且已经和插件或者客户端建立连接 正在接受请求的线程:是一个线程正在读取request的内容或者头部,WAS线程Dump分析工具,IBM Thread and Monitor Dump Analyzer for Java java -Xmx500m -j

39、ar jca101.jar,JSPServlet性能分析与优化,JSP 、Servlet常见性能问题分析与优化 工具 AppDynamics、JProfiler JAMON,JSP 、Servlet常见性能问题分析与优化,页面包含 Page Session JavaBean的生命周期 Session过期时间 init()方法与缓存 压缩输出,三、性能测试新兴技术介绍,开源性能压力测试工具介绍 云性能测试服务介绍 端到端性能测试与性能监控方案,开源性能压力测试工具介绍,早期:Jmeter、The Grinder Tsung Gatling,Tsung,http://tsung.erlang-pr

40、ojects.org/ Jabber/XMPP协议90万并发jabber用户(使用4个节点的tsung 集群)(3xSun V240 + 1 Sun V440)10万并发用户(使用3个结点tsung集群)(CPU 800MHz) HTTP and HTTPS协议12万并发用户(使用4个结点的tsung集群)该测试平台达到每秒3000个请求1000万并发用户,(使用75结点的tsung集群,)并发超过100万个请求 目前可以用来测试HTTP,WebDAV,SOAP,PostgreSQL, MySQL, LDAP, and Jabber/XMPP,Gatling,Gatling是一款基于Scala

41、 开发的高性能服务器性能测试工具,它主要用于对服务器进行负载等测试,并分析和测量服务器的各种性能指标。Gatling主要用于测量基于HTTP的服务器,比如Web应用程序,RESTful服务等,除此之外它拥有以下特点: 支持Akka Actors 和 Async IO,从而能达到很高的性能 支持实时生成Html动态轻量报表,从而使报表更易阅读和进行数据分析 支持DSL脚本,从而使测试脚本更易开发与维护 支持录制并生成测试脚本,从而可以方便的生成测试脚本 支持导入HAR(Http Archive)并生成测试脚本 支持Maven,Eclipse,IntelliJ等,以便于开发 支持Jenkins,以便于进行持续集成 支持插件,从而可以扩展其功能,比如可以扩展对其他协议的支持,云性能测试,SOASTA Gomez,NeoLoad的云测试方案,,端到端性能测试与性能监控方案,培训后事项,填写课程反馈表 删除桌面临时文件 关机,陈能技,

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!