如何查看服务器日志的i/o承受值

Linux(19)
几乎每个接触类 Unix 操作系统的工程师都知道如何查看系统负载。但这东西的工作机理到底是怎样的,可能没有多少能说清楚。对比了一些相关信息,加上自己的理解,做一下笔记。&
什么是 Load ? 什么是 Load Average ?&
Load 就是对计算机干活多少的度量(WikiPedia: the system load is a measure of the amount of work that a computer system is doing)。也有简单的说是进程队列的长度. Load Average 就是一段时间 (1 分钟、5分钟、15分钟)
内平均 Load 。【最好的参考文章:UNIX(R) Load Average Part 1: How It Works】&
下面是一个 uptime 命令输出:&
18:57:48 up 423 days,& 3:55,& 2 users,& load average: 1.16, 1.12, 1.20&
尽管各种信息来源的定义都不太确定。能确定的一件事情是,你不能精确获取当前时间的 Load . 最小的计算粒度是 5 秒钟(CALC_LOAD 每 5HZ 计算一次, 5HZ 为 5秒钟,这里的 HZ 是系统定义的变量). 参见 Linux Kernel 这段代码:&
869&&&&&&& count -=&
870&&&&&&& if (unlikely(count & 0)) {&
871&&&&&&&&&&&&&&& active_tasks = count_active_tasks();&
872&&&&&&&&&&&&&&& do {&
873&&&&&&&&&&&&&&&&&&&&&&& CALC_LOAD(avenrun[0], EXP_1, active_tasks);&
874&&&&&&&&&&&&&&&&&&&&&&& CALC_LOAD(avenrun[1], EXP_5, active_tasks);&
875&&&&&&&&&&&&&&&&&&&&&&& CALC_LOAD(avenrun[2], EXP_15, active_tasks);&
876&&&&&&&&&&&&&&&&&&&&&&& count += LOAD_FREQ;&
877&&&&&&&&&&&&&&& } while (count & 0);&
878&&&&&&& }&
如何判断系统是否已经 Over Load ?&
对一般的系统来说,根据 CPU 数量去判断,如上面的例子, 如果平均负载始终在 1.2 以下,而你是 2 颗 CPU 的机器。那么基本不会出现 CPU 不够用的情况。也就是 Load 平均要小于CPU 的数量。&
这是 Solaris 性能与工具(Solaris Performance Tools ) 一书推荐的评估方法。【在这里要推荐一下这本书,尽管在 Load 这个地方没有达到我期望的那么细致。但全书揭示了非常多的性能信息。每个 DBA、架构师 的必须书。】&
这么说实际上带来另外两个疑问:&
1 如果是多核 CPU / 超线程的机器怎么判断? 对这样的机器,我的建议是看操作系统怎么识别的 CPU,根据系统识别出来的逻辑 CPU 数量来判断。如果要考虑性能系数,建议参考一下 Oracle 针对不同架构下多核 CPU 的收费标准。&
2 如果应用是面向线程的怎么判断? 这实际上和 M:N 线程模型有关。你的系统是怎样的? 把这个问题考虑进去即可了。&
多数情况下,Load 过高都未必和 CPU 有关。或许倒是有一个例外的,就是应用场景的问题。比如用单 CPU 的机器去做高并发 Web 服务器,麻烦就来了&
Load 与容量规划(Capacity Planning)&
任何一个相对成熟的站点都会利用 Cacti(基于RRDTool) 等工具进行容量规划工作。抓取的 Load 会传 1、5、15 分钟列值过去,这三个度量采用哪个呢? 15 分钟为首选【参见Gunther 的 PPT】。&
Load 与系统预警&
很多对可用性要求比较高的环境都建立了 邮件或SMS 报警机制。关于 Load 报警阈值的制定也有看到不太合理的时候。这里建议 Critical 值(如果用 Nagios 之类的工具你明白这是什么)上限为 物理 CPU 的个数(当然你可以设置比这个低)。但比这个值高的话,意义就不大了。比如,数据库服务器有 4 颗 CPU,那么
Load 高于 4 就应该报警出来,设置比 4 高可能意义不大,因为接到报警还有个人为响应时间...&
误解 一:系统 Load 高一定是性能有问题。&
真相:系统 Load 高也或许是因为在进行 CPU 密集型的计算(比如编译)&
误解 二:系统 Load 高一定是 CPU 能力问题或数量不够。&
真相:Load 高只是代表需要运行的队列累积过多了。但队列中的任务实际可能是耗 CPU的,也可能是耗 I/O 乃至其它因素的。&
误解 三:系统长期 Load 高,首选增加 CPU。&
真相:Load 只是表象,不是实质。增加 CPU 个别时候会临时看到系统 Load 下降,但治标不治本。&
小小一个 Load 讲究其实不少。英文信息其实比较全的,尽量保证加入一点新信息到这篇文章里。入看到有写的不合理的地方或者有异议,请指正或告知。&
FAQ 1:数据库服务器突然 CPU 100% 繁忙,咋办?&
A :一般情况下,这是由糟糕的 SQL 引起。建议抓取 Slow Query Log ,针对 I/O 开销比较大(重点看全表扫描)的 SQL 进行优化。根据经验值,每个 CPU Core 一秒钟能处理 100-400MB 数据量。如果是大量的并发 I/O 操作,尽管存储的吞吐可能还没那么大,也可能会把 CPU &塞满&。&
1:load Average&
&& 1.1:什么是Load?什么是Load Average?&
&& Load 就是对计算机干活多少的度量(WikiPedia:the system Load is a measure of the amount of work that a compute system is doing)&
&& 简单的说是进程队列的长度。Load Average 就是一段时间(1分钟、5分钟、15分钟)内平均Load。【参考文章:unix Load Average Part1:How It Works】&
&& 1.2:查看指令:&
&& w or uptime or procinfo or top&
&& load average: 0.02,&& 0.27,&&& 0.17&
&& 1 per/minute 5 per/minute 15 per/minute&
1.3:如何判断系统是否已经Over Load?&
对一般的系统来说,根据cpu数量去判断。如果平均负载始终在1.2一下,而你有2颗cup的机器。那么基本不会出现cpu不够用的情况。也就是Load平均要小于Cpu的数量&
1.4:Load与容量规划(Capacity Planning)&
&&&&&& 一般是会根据15分钟那个load 平均值为首先。&
1.5:Load误解:&
1:系统load高一定是性能有问题。&
&&& 真相:Load高也许是因为在进行cpu密集型的计算&
&&&&&&& 2:系统Load高一定是CPU能力问题或数量不够。&
&&& 真相:Load高只是代表需要运行的队列累计过多了。但队列中的任务实际可能是耗Cpu的,也可能是耗i/0奶子其他因素的。&
3:系统长期Load高,首先增加CPU&
&&& 真相:Load只是表象,不是实质。增加CPU个别情况下会临时看到Load下降,但治标不治本。&
2:在Load average 高的情况下如何鉴别系统瓶颈。&
&& 是CPU不足,还是io不够快造成或是内存不足?&
&& 2.1:查看系统负载vmstat&
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----&
r b swpd free buff cache si so bi bo in cs us sy id wa&
0 1 34 45 99 33 0 0 99 0&
r 列表示运行和等待cpu时间片的进程数,如果长期大于1,说明cpu不足,需要增加cpu。&
b 列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。&
cpu 表示cpu的使用状态&
us 列显示了用户方式下所花费 CPU 时间的百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,需要考虑优化用户的程序。&
sy 列显示了内核进程所花费的cpu时间的百分比。这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足。&
wa 列显示了IO等待所占用的CPU时间的百分比。这里wa的参考值为30%,如果wa超过30%,说明IO等待严重,这可能是磁盘大量随机访问造成的,也可能磁盘或者磁盘访问控制器的带宽瓶颈造成的(主要是块操作)。&
id 列显示了cpu处在空闲状态的时间百分比&
system 显示采集间隔内发生的中断数&
in 列表示在某一时间间隔中观测到的每秒设备中断数。&
cs列表示每秒产生的上下文切换次数,如当 cs 比磁盘 I/O 和网络信息包速率高得多,都应进行进一步调查。&
swpd 切换到内存交换区的内存数量(k表示)。如果swpd的值不为0,或者比较大,比如超过了100m,只要si、so的值长期为0,系统性能还是正常&
free 当前的空闲页面列表中内存数量(k表示)&
buff 作为buffer cache的内存数量,一般对块设备的读写才需要缓冲。&
cache: 作为page cache的内存数量,一般作为文件系统的cache,如果cache较大,说明用到cache的文件较多,如果此时IO中bi比较小,说明文件系统效率比较好。&
si 由内存进入内存交换区数量。&
so由内存交换区进入内存数量。&
bi 从块设备读入数据的总量(读磁盘)(每秒kb)。&
bo 块设备写入数据的总量(写磁盘)(每秒kb)&
这里我们设置的bi+bo参考值为1000,如果超过1000,而且wa值较大应该考虑均衡磁盘负载,可以结合iostat输出来分析。&
&& 2.2:查看磁盘负载iostat&
每隔2秒统计一次磁盘IO信息,直到按Ctrl+C终止程序,-d 选项表示统计磁盘信息, -k 表示以每秒KB的形式显示,-t 要求打印出时间信息,2 表示每隔 2 秒输出一次。第一次输出的磁盘IO负载状况提供了关于自从系统启动以来的统计信息。随后的每一次输出则是每个间隔之间的平均IO负载状况。&
# iostat -x 1 10&
Linux 2.6.18-92.el5xen 02/03/2009&
avg-cpu:&& %user %nice %system %iowait&& %steal %idle&
&&&&&&&&&&& 1.10 0.00 4.82 39.54 0.07 54.46&
Device:&&&&&& rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await&& svctm&& %util&
&& sda&&&&&&&&&&&& 0.00&&&& 3.50&& 0.40&& 2.50&&&& 5.60 48.00 18.48&&&& 0.00 0.97 0.97 0.28&
&& sdb&&&&&&&&&&&& 0.00&&&& 0.00&& 0.00&& 0.00&&&& 0.00&&&& 0.00&&&& 0.00&&&& 0.00 0.00 0.00 0.00&
&& sdc&&&&&&&&&&&& 0.00&&&& 0.00&& 0.00&& 0.00&&&& 0.00&&&& 0.00&&&& 0.00&&&& 0.00 0.00 0.00 0.00&
&& sdd&&&&&&&&&&&& 0.00&&&& 0.00&& 0.00&& 0.00&&&& 0.00&&&& 0.00&&&& 0.00&&&& 0.00 0.00 0.00 0.00&
&& sde&&&&&&&&&&&& 0.00&&&& 0.10&& 0.30&& 0.20&&&& 2.40&&&& 2.40&&&& 9.60&&&& 0.00 1.60 1.60 0.08&
&& sdf&&&&&&&&&&&&& 17.40&&&& 0.50 102.00&& 0.20 12095.20&&&& 5.60 118.40&&&& 0.70 6.81 2.09&& 21.36&
&& sdg&&&&&&&&& 232.40&&&& 1.90 379.70&& 0.50 .20 201.13&&&& 4.94 13.78 2.45&& 93.16&
&& rrqm/s: 每秒进行 merge 的读操作数目。即 delta(rmerge)/s&
&& wrqm/s:&& 每秒进行 merge 的写操作数目。即 delta(wmerge)/s&
&& r/s:&&&&&&&&&& 每秒完成的读 I/O 设备次数。即 delta(rio)/s&
&& w/s:&&&&&& 每秒完成的写 I/O 设备次数。即 delta(wio)/s&
&& rsec/s: 每秒读扇区数。即 delta(rsect)/s&
&& wsec/s: 每秒写扇区数。即 delta(wsect)/s&
&& rkB/s:&& 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。(需要计算)&
&& wkB/s: 每秒写K字节数。是 wsect/s 的一半。(需要计算)&
&& avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。delta(rsect+wsect)/delta(rio+wio)&
&& avgqu-sz: 平均I/O队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。&
&& await: 平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)&
&& svctm: 平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio)&
&& %util:&&& 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒)&
&& 如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘&
&& 可能存在瓶颈。&
&& idle小于70% IO压力就较大了,一般读取速度有较多的wait.&
&& 同时可以结合vmstat 查看查看b参数(等待资源的进程数)和wa参数(IO等待所占用的CPU时间的百分比,高过30%时IO压力高)&
&& 另外还可以参考&
&& svctm & await (因为同时等待的请求的等待时间被重复计算了),&
&& svctm的大小一般和磁盘性能有关:CPU/内存的负荷也会对其有影响,请求过多也会间接导致 svctm 的增加。&
&& await: await的大小一般取决于服务时间(svctm) 以及 I/O 队列的长度和 I/O 请求的发出模式。&
&& 如果 svctm 比较接近 await,说明I/O 几乎没有等待时间;&
&& 如果 await 远大于 svctm,说明 I/O队列太长,应用得到的响应时间变慢,&
&& 如果响应时间超过了用户可以容许的范围,这时可以考虑更换更快的磁盘,调整内核 elevator算法,优化应用,或者升级 CPU。&
&& 队列长度(avgqu-sz)也可作为衡量系统 I/O 负荷的指标,但由于 avgqu-sz 是按照单位时间的平均值,所以不能反映瞬间的 I/O 洪水。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:289844次
积分:3823
积分:3823
排名:第7196名
原创:86篇
转载:96篇
评论:11条
(1)(3)(1)(2)(2)(1)(2)(1)(2)(4)(2)(2)(1)(3)(6)(1)(5)(1)(2)(6)(8)(1)(10)(12)(4)(10)(4)(3)(1)(1)(2)(4)(11)(4)(10)(8)(10)(10)(9)(11)(2)用手机扫描以上二维码直接访问此文。
使用BBWC提高服务器磁盘I/O性能
使用BBWC提高服务器磁盘I/O性能
如果你希望提高服务器系统的磁盘I/O性能,应该考虑使用电池备份写高速缓存(BBWC)。本文告诉你如何通过添加BBWC方便容易的获得性能提升。
服务器合并,大量的多媒体程序,实时响应程序,以及大量的存储空间请求,这些东西使得磁盘I/O性能成为服务器系统中的一道瓶颈。减轻负担的一个办法是增加一个BBWC(电池 备份写高速缓存)模块。下面我们来通过一个实例看看BBWC如何运作。我们将告诉你如何决定购买的部件,如何安装,以及如何确认它被正确的安装完毕。
是否需要BBWC的信号
如果出现下述情况,你可能就需要考虑为你的服务器增加一个BBWC模块了:
在Windows的性能监视器中,看到\PhysicalDisk(_Total)\Avg. Disk Queue Length计数器的值持续大于1,或者该数值比一个设置良好的服务器的对应值大。(在其他操作系 统中也有类似的监视工具)
你的磁盘控制器虽然没有准备安装BBWC模块,但是可以装一个。
和同样的服务器相比,虽然你的负荷比它小,但是性能却比它低。
你希望为现有的系统增加更多的功能,但是没有新的服务器可让你增加。
在我们的举例中,我们将使用一台HP ProLiant ML350 G4p服务器。该服务器有2块RAID阵列控制器(一块Smart Array 641,一块Smart Array 642)。整个过程将进行如下:
确认642控制器上是否已经安装有BBWC模块
为BBWC模块选择合适的型号
安装BBWC模块。
安装完毕后,检查系统中的新BBWC模块。
步骤1:确认当前系统中是否已经安装有BBWC模块
这个步骤可能听上去很愚蠢,但是你在开始动手之前,最好还是先确认系统中的确没装BBWC模块。对HP ProLiant 服务器系列而言,有两个很简单的办法来进行确认:在启动之初 查看屏幕上的初始化信息,或使用HP阵列设置工具(HP-ACU)。我们这里使用第一种方法,而在我们后面的确认步骤里,你会看到HP-ACU的使用。
在启动屏幕上查看控制器初始化信息非常简单,只要从系统一启动就牢牢盯住屏幕,不放过任何一段初始化信息就可以了。你将在屏幕上看到图A:
高亮的黄色方框里,显示了每个控制器都是64M内存。简单看一眼HP QuickSpec里的Smart Array 641、Smart Array 642的确默认都是64M的Cache内存。所以这两个控制器都可以添 加BBWC模块。
步骤2:选择正确的BBWC模块
在HP Smart Array系列里,由控制器模块负责启动BBWC,所以必须联络你的供货商或者去QuickSpecs上确认你的产品正确型号。本例中,Smart Array 641和642控制器使用同样的 BBWC模块,对美国本地而言,该HP产品型号是。在HP网站上,适用于Smart Array 641的产品价格为299美金,还不算太贵。
它将为控制器添加128M的ECC DDR内存。当然,也有64M的,不过我们这里用128M的。不同的Smart Array 控制器有不同的性能级别。举例来说,一个新的Smart Array 600控制器有 一个512M的BBWC模块,而对6400,5i,6i,64x和P600系列来说,它们的BBWC模块并不都能通用。所以在选择BBWC模块时,务必确认。
图B显示了使用在线QuickSpec服务后,我们查到的产品型号。你也可以下载QuickSpec,在本地运行,查询HP的产品。
看上去我们是过于谨慎了,但是在为已经运行的系统添加部件时,谨慎是十分重要的(对新买一台服务器来说,添加BBWC模块反而容易的多)。另外,对于一台已经停产的产品而 言,你可能很容易的能查到对应的产品型号,但是却很难买到它(起码在你希望的价格上很难买到)。
步骤3:安装BBWC模块
模块的安装分外简单:关闭机器,然后拿下阵列控制器,或保证它的芯片控制面那侧有足够的操作空间。本例中,我们将阵列控制器拿下来,并把BBWC启动器插入卡中。图C显示了 BBWC启动器插入的插槽。
关闭服务器,小心的拿下Smart Array控制器。然后,将BBWC启动器插入插槽,像图D所示,白色锁定卡将其卡住。
现在,将阵列控制器插回机器,重新启动。
步骤4:查看新的BBWC启动器
一旦模块被安装好,你就可以确认系统是否可以使用这额外的内存。本例中,我们使用HP-ACU来查看相关信息。打开HP-ACU,选择你已经安装了BBWC启动器的控制器,点击&More Information”,你应当可以看到内存数字的变化,就像图E显示的那样。
刚安装完毕BBWC启动器后,会有少许的启动信息提示你该模块未完全充电。这很正常,控制器会处理它的充电过程。对控制器而言,所有内存都可用,但是直到充满电之前,BBWC 的部分是受限的。
BBWC是高级补丁还是真正的解决方案?
虽然增加BBWC模块会增加服务器的磁盘性能,但是对一台很烂的服务器部署来说根本于事无补。过量的程序纪录,超烂的编程,流氓软件,或者其他的烂方案,提供再多的马力也 难以收效。当然,也有其他的解决方法,比如服务器优化以及阵列控制器的配置。万一有一天,有人要求你为现有服务器提升更多的性能,而你根本没有其他救命稻草可抓,那么 添加一个BBWC启动器可以很容易的让服务器性能得到提升——这就是本方法真正的价值所在。
用手机扫描以上二维码直接访问此文。
系统分类:&>>&中国安防网欢迎您!
热门搜索:
今日有320位采购商在平台找产品
产品库存:4737721条,其中新增1170条
当前位置: &
& I/O服务器知识
您是否在找:
最新I/O服务器资讯
视频服务器是什么?视频服务器是一种对视音频数据进行压缩、存储及处理的专用嵌入式设备,在远程监控及视频等方面都有广泛的应用。下面小编给大家介绍一下视频服务器选购要点
有543人围观
串口服务器能够让自动化领域的串口设备具备联网能力,立即联网。那么,串口服务器怎么用呢?下面小编给大家介绍一下串口服务器模块参数配置方法。
有896人围观
随着网络技术和网络应用的进一步拓展,也为视频服务器这一专业设备的发展带来了契机。视频服务器是什么呢?下面小编给大家介绍一下视频服务器及视频服务器的作用。
有428人围观
流媒体是一种可以不需要完整下载,让用户边观看边下载的新的网络媒介方式,流媒体服务器的作用就是给用户提供在线即时观看的服务。流媒体服务器软件如何使用呢?下面小编给大
有867人围观
视频服务器如何配置?视频服务器一般采用REALSERVER,安装REALSERVER时,应记住REALSERVER的AdminPort的值,这是一个随机数字。同时建立管理员的帐号和...
有1071人围观
在大型安防监控项目中,网络视频服务器(DVS,digital video server)是其中重要的设备,又叫数字视频编码器,主要是提供视频压缩或解压功能,完成图象数据的采集或复原...
有105人围观
网络视频服务器应该如何设置?在设置的过程中应该注意什么问题?本文将针对这两个问题分享一些网络视频服务器的设置的常见问题及相应的解决办法,供大家参考。
有365人围观
什么是网络视频服务器?网络视频服务器有什么特点?以下的内容将围绕这两个问题开展介绍一些网络视频服务器的特点,客供大家参考。
有425人围观
使用IE浏览器访问视频 服务器 设备的时候,会自动从设备上下载控件并自动注册。当控件没有下载或注册成功的时候,则不能正常访问设备。 目前有2种版本的控件,一个是HCNetVideo...
有97人围观
  无法通过浏览器访问视频服务器怎么办?为什么无法通过浏览器访问视频服务器?相信不少人曾经遇到过这种问题,以下将针对这个问题为大家介绍一个简单的解决办法...
有212人围观
什么是3G无线视频服务器?3G无线服务器相对于传统的服务器有什么优势?这是本文在接下来将要为大家解决的两个问题,可供参考...
有221人围观
视频服务器是什么?针对这个问题,下面分享一些关于视频服务器算法标准的相关知识,可供交流学习...
有111人围观
视频服务器通过网络技术,可以在实现只要能上网的地方就可以浏览画面,节约了远程监控的成本。以下将为大家详细介绍一下视频服务器特点...
有159人围观
视频服务器的应用,相比硬盘录像机应用的一个显著特点就是其系统基于网络进行架构,将视频系统的采集压缩、传输、存储、检索、显示、管理等功能模块进行网络化。下面就视频服
有260人围观
服务器是局域网中一种运行管理软件以控制对网络或网络资源磁盘驱动器、打印机等进行访问的计算机,并且能够为在网络上的计算机提供资源,使其犹如工作站那样地进行操作。服务
有96人围观
最近几年中国的安防行业得到了飞速的发展,尤其是监控领域日新月异,服务器作为监控设备中重要的组成部分。但是服务器和录像机有何区别呢,让市场的选择如此为难。 近些年来,
有304人围观
选 网络视频服务器 一定要选对,十大要求让您选对: (1)施工方便: 不需要铺设视频线,使用局域网/广域网。视频服务器与网络合一。 (2)节省成本: 不需要专门的监控设备,使
有356人围观
其实网络视频服务器就是将监控前端摄像机中拍摄到的视频信号通过传输设备归纳到服务器中,服务器将视频信号再转换成数字信号,发布于网络中。这样无论那个部门想调阅那段监控
有417人围观
分析视频服务器做网络监控的10大选择理由 : 随着音视频编码技术的不断发展和宽带网络技术的发展,视频传输的实现变得更容易和成本更低,使得视频传输的需求日益增长。市场上推
有382人围观
视频服务器是一种对视音频数据进行压缩、存储及处理的专用计算机设备,它在视频监控、网络教学、视频会议、广告插播及视频节目点播等方面都有广泛的应用。视频服务器采用 MJP
有123人围观
I/O服务器知识排行
您是否在找:
没有找到合适的I/O服务器知识? 您可以
没有找到满足要求的I/O服务器知识?您还可以找
中国安防网为您找到相关I/O服务器是什么、I/O服务器注意事项、I/O服务器维护、I/O服务器原理等相关文章。你还可以找到相关I/O服务器使用方法等技术知识。
产品拼音搜索页:}

我要回帖

更多关于 查看服务器日志 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信