2022年Unix系统性能监控命令 .pdf

上传人:C****o 文档编号:33389994 上传时间:2022-08-10 格式:PDF 页数:12 大小:98.28KB
返回 下载 相关 举报
2022年Unix系统性能监控命令 .pdf_第1页
第1页 / 共12页
2022年Unix系统性能监控命令 .pdf_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《2022年Unix系统性能监控命令 .pdf》由会员分享,可在线阅读,更多相关《2022年Unix系统性能监控命令 .pdf(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Unix 系统性能监控命令1、 sar 命令1.1Sar 命令介绍:Sar options -A -o file t n 在命令行中, n 和 t 两个参数组合起来定义采集间隔和次数,t 为采样间隔,是必须有的参数,你为采样次数,是可选的,默认值是1,-0 file 表示将命令结果以二进制格式存放在文件中, file 在此处不是关键字,是文件名。Options 为命令行选项,sar 命令选项很多,下面只列出常用选项:-A:所有报告的总和-u:cup 利用率-d:硬盘使用报告-r:没有使用的内存页面和硬盘块-g:串口 i/o 的情况-b:缓冲区使用情况-a:文件读写情况-c:系统调用情况-R:进

2、程的活动情况-y:终端设备活动情况-w:系统交换活动1.2 举例:1.2.1 使用 sar u 命令监控cpu 使用$sar u 5 5 12:21:15 %usr %sys %wlo %idle %usr 运行在用户模式下cup 的使用百分比%sys 运行在系统模式下cup 的使用百分比%wio 进程在等待块i/o 时闲置状态下cup 的使用百分比%idle闲置状态时cup 的使用百分比显示说明:在所有的显示中,我们应主要注意%wio 和%idle ,%wio 的值过高, 表示硬盘存在i/o瓶颈, %idle 值高,表示cup 较空闲,如果 %idle 值高但系统响应时间慢时,就肯能是 cu

3、p 等待分配内存, 此时应加大内存容量。%idle 值如果持续低于10,那么系统的cpu 处理能力相当较低,表示系统中最需要解决的资源是cpu。1.2.2 使用命行sar -v t n例如,每30 秒采样一次,连续采样5 次,观察核心表的状态,需键入如下命令: # sar -v 30 5 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 12 页 - - - - - - - - - 屏幕显示:SCO_SV scosysv 3.2v5.0.5 i80386 10/01/200

4、1 10:33:23 proc-sz ov inod-sz ov file-sz ov lock-sz(-v) 10:33:53305/321 01337/276401561/1706040/128 10:34:23308/321 01340/276401587/1706037/128 10:34:53305/321 01332/276401565/1706036/128 10:35:23308/321 01338/276401592/1706037/128 10:35:53308/32101335/276401591/1706037/128 显示内容包括:proc-sz : 目 前 核 心

5、中 正 在 使 用 或 分 配 的 进 程 表 的 表 项 数 , 由 核 心 参 数MAX-PROC控制inod-sz : 目 前 核 心 中 正 在 使 用 或 分 配 的i节 点 表 的 表 项 数 , 由 核 心 参 数MAX-INODE控制file-sz : 目前核心中正在使用或分配的文件表的表项数,由核心参数MAX-FILE控制。ov:溢出出现的次数。Lock-sz : 目 前 核 心 中 正 在 使 用 或 分 配 的 记 录 加 锁 的 表 项 数 , 由 核 心 参 数MAX-FLCKRE控制显示格式为:实际使用表项/可以使用的表项数显示内容表示,核心使用完全正常,三个表没有

6、出现溢出现象,核心参数不需调整,如果出现溢出时,要调整相应的核心参数,将对应的表项数加大。1.2.3 使用命行sar -d t n 例如, 每 30 秒采样一次,连续采样5 次,报告设备使用情况,需键入如下命令:# sar -d 30 5 屏幕显示:SCO_SV scosysv 3.2v5.0.5 i80386 10/01/2001 11:06:43 device%busyavquer+w/sblks/savwait avserv (-d) 11:07:13 wd-01.472.754.6714.735.50 3.14 11:07:43 wd-00.4318.773.078.6625.11 1

7、.41 11:08:13 wd-00.772.782.777.264.94 2.77 11:08:43 wd-01.1011.184.1011.2627.32 2.68 11:09:13 wd-01.9721.785.8634.0669.66 3.35 Average wd-01.1512.114.0915.1931.12 2.80 显示内容包括:device :sar 命令正在监视的块设备的名字。%busy:设备忙时,传送请求所占时间的百分比。avque:队列站满时,未完成请求数量的平均值。r+w/s :每秒传送到设备或从设备传出的数据量。blks/s :每秒传送的块数,每块512 字节av

8、wait :队列占满时传送请求等待队列空闲的平均时间。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 12 页 - - - - - - - - - avserv:完成传送请求所需平均时间(毫秒)。显示说明:在显示的内容中,wd-0是硬盘的名字,%busy 的值比较小,说明用于处理传送请求的有效时间太少,文件系统效率不高,一般来讲,%busy 值高些,avque 值低些,文件系统的效率比较高,如果%busy 和 avque 值相对比较高,说明硬盘传输速度太慢,需调整。1.2

9、.4 命令sar -b t n 例如,每30 秒采样一次,连续采样5 次,报告缓冲区的使用情况,需键入如下命令:# sar -b 30 5 屏幕显示:SCO_SV scosysv 3.2v5.0.5 i80386 10/01/2001 14:54:59 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s (-b) 14:55:2901471005217800 14:55:5901861005257900 14:56:294232 988588600 14:56:5901251005237600 14:57:290891

10、004126600 Average1156 995288000 显示内容包括:bread/s:每秒从硬盘读入系统缓冲区buffer 的物理块数。lread/s:平均每秒从系统buffer 读出的逻辑块数。%rcache:在 buffer cache中进行逻辑读的百分比。bwrit/s :平均每秒从系统buffer 向磁盘所写的物理块数。lwrit/s :平均每秒写到系统buffer 逻辑块数。%wcache :在 buffer cache中进行逻辑读的百分比。pread/s:平均每秒请求物理读的次数。pwrit/s :平均每秒请求物理写的次数。显示说明:在显示的内容中,最重要的是%cache

11、和 %wcache 两列,它们的值体现着buffer的使用效率,%rcache 的值小于90 或者 %wcache 的值低于65,应适当增加系统buffer的数量,buffer数量由核心参数NBUF控制,使%rcache达到90 左右, %wcache 达到 80 左右。但buffer 参数值的多少影响I/O 效率,增加buffer ,应在较大内存的情况下,否则系统效率反而得不到提高。1.2.5 命令 sar -g t n 例如,每30 秒采样一次,连续采样5 次,报告串口I/O 的操作情况,需键入如下命令: # sar -g 30 5 屏幕显示:SCO_SV scosysv 3.2v5.0.

12、5 i8038611/22/2001 17:07:03 ovsiohw/sovsiodma/sovclist/s (-g) 17:07:330.000.000.00 17:08:030.000.000.00 17:08:330.000.000.00 17:09:030.000.000.00 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 12 页 - - - - - - - - - 17:09:330.000.000.00 Average 0.000.000.00 显示内

13、容包括:ovsiohw/s :每秒在串口I/O 硬件出现的溢出。ovsiodma/s :每秒在串口I/O 的直接输入输出通道高速缓存出现的溢出。ovclist/s :每秒字符队列出现的溢出。显示说明:在显示的内容中,每一列的值都是零,表明在采样时间内,系统中没有发生串口 I/O 溢出现象。2. 使用 top 命令发现系统中最影响性能的用户2.1 top 命令介绍top - d p q c C S s n d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s 交互命令来改变之。p 通过指定监控进程ID 来仅仅监控某个进程的状态。q 该选项将使top 没有任何延迟的进行刷新。如果调用程序有

14、超级用户权限,那么top将以尽可能高的优先级运行。S 指定累计模式s 使 top 命令在安全模式中运行。这将去除交互命令所带来的潜在危险。i 使 top 不显示任何闲置或者僵死进程。c 显示整个命令行而不只是显示命令名top 命令是 unix 下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows 的任务管理器2.2 top 命令显示Load averages:2.83,3.30,3.67 143 processes 124 sleeping, 15 running , 4 on cup Cup states :45.9% idle, 24.8% user ,7.

15、3% kernel, 22.0% iowait ,0.0% swap Memory:2048M real ,36M free, 2920M swap in use ,982M swap free Pid username lwp pri nice size res state time cpu command 23696 oracle 11 52 0 586M 536M run 279:55 7.57% oracle 3. 使用 mpstat 命令确定cup 瓶颈3.1 Mpstat 命令介绍mpstat -P |ALL internal count 参数的含义如下:参数解释-P |ALL 表

16、示监控哪个CPU , cpu 在0,cpu个数 -1 中取值internal 相邻的两次采样的间隔时间count 采样的次数, count 只能和 delay 一起使用当没有参数时, mpstat 则显示系统启动以后所有信息的平均值。有 interval 时,第一行的信息自系统启动以来的平均信息名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 12 页 - - - - - - - - - 3.2 屏幕显示$ uptime 12:45pm up 119 day(s),19:0

17、1, 1 user ,load average: 2.96, 2.98 ,3.30 。 。 。 。 。 。 。 。 。3.3 显示说明uptime命令可以显示系统已经运行了多长时间,信息显示依次为:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1 分钟、 5 分钟和 15 分钟内的平均负载,提供快速查看cpu 中所有任务(包括正在运行的任务)在1 分钟, 5 分钟, 15 分钟内的负载。在sun 下是 1,5,15 分钟,在digtal unix 下是 5,30,60 注释:那么什么是系统平均负载呢?系统平均负载是指在特定时间间隔内运行队列中的平均进程数。如果每个CPU 内

18、核的当前活动进程数不大于3 的话,那么系统的性能是良好的。如果每个CPU 内核的任务数大于5,那么这台机器的性能有严重问题。4. 使用 sar 命令监控磁盘i/0 问题4.1 命令$ sar d 5 2 4.2 屏幕显示12:59:00 device %busy avque r+w/s blks/s avwait avserv 12:59:05 md30 71 0.8 103 1738 0.0 7.5 Md31 34 0.4 52 934 0.0 7.1 . 4.3 显示内容-d 选项监控磁盘i/o %busy Avque-平均队列长度R+w/s- 读和写的活动blks/s传送的数据块的数量a

19、vwait 平均等待时间avserv - 平均服务时间4.4 较高的 %busy 和 Avque 意味着出现了磁盘i/0 瓶颈4.4 命令$ sar b 2 5 4.5 屏幕显示17:08:24 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s 17:08:26 0 530 100 2 2 0 0 0 4.6 显示内容-b选项报告缓冲区活动,它等同于磁盘i/o 活动,如果怀疑数据库i/o 有问题这个命令名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名

20、师精心整理 - - - - - - - 第 5 页,共 12 页 - - - - - - - - - 很有用bread/s 每秒钟从磁盘进行物理读入的数量lread/s 每秒钟从缓冲区读入的数量%rcache 读入请求的缓冲区命中率bwrit/s 每秒钟向磁盘物理写入的数量,它给dba 提供了服务器上整体希尔活动指标lwrit/s 每秒钟向缓冲区写入的数量%wcache 写入请求的缓冲区命中率pread/s 每秒钟从磁盘读入的数量,这个是i/0 子系统上负载的极好度量pwrit/s 每秒钟写入磁盘的数量4.7 显示说明所显示的内容反映了目前与系统buffer 有关的读,写活。在所报告的数字中,

21、最重要的是 %rcache 和 %wcache ( 统称为cache 命中率) 两列,它们具体体现着系统buffer的效率。衡量cache 效率的标准是它的命中率值的大小5.使用 iostat 确定磁盘 i/o 瓶颈5.1 命令介绍iostat -t interval count interval 指每次统计间隔的时间;count指按照这个时间间隔统计的次数。Iostat 可以用于报告终端和磁盘i/0 活动情况,确定磁盘瓶颈。输出结果的第一行显示了自数据库启动以来各个i/o 的统计数据,最常用的选项有-d,-x, -D,-c(cpu负载)iostat 是 I/O statistics(输入 /

22、输出统计) 的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU 使用情况。它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。5.2 命令$ iostat d md30 md31 md32 sd10 5 5 5.3 屏幕显示Md30 md31 md 32 sd10 Kps tps serv kps tps serv kps tps serv kps tps serv 9 1 13 7 0 14 46 6 14 . -d 选项可以列出每秒传送的字节数,每秒的传输次数以及平均服务时间(以豪秒计) 。-d仅仅显示i/o,不区分读操作和写

23、操作。5.4 命令 $ iostat d md30 md31 md32 sd10 5 5 5.5.屏幕显示Md30 md31 md 32 sd10 Rps wps util rps wps util rps wps util rps wps util 1 0 0.5 0 0 0.3 0 0 0.3 4 3 4.3 . -D 选项报告每秒的读操作数量,写操作数量以及磁盘使用率名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 12 页 - - - - - - - - - 5.6

24、 命令 $ iostat x 5 3 5.7 屏幕显示Extended device statistics Device r/s w/s kr/s kw/s wait actv svc_t %w %b Md30 0.5 0.1 4.0 4.5 0.0 0.0 12.8 0 0 . -x 选项报告所有磁盘的扩展磁盘统计数据对结果的分析:通过查看 bps 列和 sps列的值我们可以知道哪些磁盘比较忙,哪些磁盘比较闲6.使用 sar 命令和 vmstat 命令监控分页/交换一种可以快速判定自系统启动可以来是否存在任何交换活动的方法就是运行vmstat s命令,如果swp/in 和 swp/out 列

25、出现非零值,就说明很可能出现了问题。另外可以使用 sar 命令挖掘更多的信息。vmstat 可以用来确定一个系统的工作是受限于CPU 还是受限于内存:如果CPU 的 sy 和 us 值相加的百分比接近100%,或者运行队列 (r) 中等待的进程数总是不等于0,则该系统受限于CPU;如果 pi、po 的值总是不等于0,则该系统受限于内存。可以使用sar命令检查系统的分页/交换活动,任何分页和交换现象都预示着将出现问题。在虚拟内存系统中,如果当前非活动用户(的进程)从内存移到磁盘上时,就会出现分页现象 (一个小问题) 。而如果由于内存的不足造成当前活动用户(的进程)被移到了磁盘上,就会出现交换现象

26、 (问题很严重) 。 分页不像交换那么糟糕,但是随着分页的增加,很快就会出现交换。6.1 命令 $ sar p 5 56.2 屏幕显示15:15:44 atch/s pgin/s ppgin/s pflt/s vflt/s slock/s 15:15:49 109.15 302.58 351.29 154.67 680.91 c0.40 . 6.3 显示内容-p选项报告分页活动atch/s每秒的分页故障数据,可通过在内存中重新声明一个页来解决故障(每秒附件)pgin/s- 每秒换进pagein 请求数ppgin/s每秒换进的页数pflt/s- 每秒保护错误中的分页错误数(非法访问页)或者cop

27、y-on-write (写入时拷贝)数vflt/s- 每秒翻译页错误数(不再内存中的有效页)slock/s每秒因软件锁请求物理i/o 引起的错误数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 12 页 - - - - - - - - - 6.4 命令 $ sar w 5 5 6.5 屏幕显示15:25:00 swpin/s bswin/s swpot/s bswot/s pswch/s 15:25:05 0.00 0.0 0.00 0.0 6520 . 6.6 显示内容

28、-w 选项报告交换和内存切换活动swpin/s- 每秒进程换人的数量bswin/s- 每秒 512 个字节的换人数量swpot/s- 每秒进程换出的数量bswot/s- 每秒 512 个字节的换出数量pswch/s- 每秒进程上下文切换的数量6.7 命令 $ sar r 5 5 6.8 屏幕显示15:26:50 freemen freeswap 15:26:55 4544 1998060 6.9 显示说明-r 选项报告空闲内存和空闲交换当 freemen(空闲内存 以 512 字节为单位列出)低于一个特定的水平时,系统就开始分页。如果它继续下降,系统就开始将一些进程交换出去。这个一个系统性能快

29、速恶化的信号,可以查找占用过多内存的进程,或者是否存在过多的进程。6.10 命令 $ sar g 5 5 6.11 屏幕显示15:35:46 pgout/s ppgout/s pgfree/s pgscan/s %ufs_ipf 15:35:51 43.54 58.45 57.06 0.00 0.00 . 6.12 显示内容 g 选项报告分页活动pgout/s每秒换出( pageout)请求数ppgout/s 每秒换出( pageout)的页数pgfree/s 由分页控制程序每秒放入空闲列表的页数pgscan/s -由分页控制程序每秒扫描的分页数%ufs_ipf UFS incode 与由 i

30、get 获取的有重用页的空闲列表的比例。这些页已被填充,无法被进程重新声明使用,这样,它就是iget 造成的页面填充比例。很高的 ppgout(从内存中移出的页面数)也说明内存不足的问题。每 2 秒采样一次,连续采样5 次,报告缓冲区的使用情况6.13 命令# sar -b 2 5 6.14 屏幕显示名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 12 页 - - - - - - - - - HP-UX chnytp01 B.11.11 U 9000/800 08/16/

31、08 10:41:20 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s 10:41:22 360 4936 93 74 288 74 0 0 10:41:24 840 3909 79 40 78 48 0 0 10:41:26 1004 2746 63 270 206 0 0 0 10:41:28 461 1405 67 123 190 35 0 0 10:41:30 253 1161 78 207 245 15 0 0 Average 584 2833 79 143 201 29 0 0 6.15 显示内容bre

32、ad/s: 每秒从硬盘读入系统缓冲区buffer 的物理块数。lread/s: 平均每秒从系统buffer 读出的逻辑块数。%rcache: 在 buffer cache 中进行逻辑读的百分比。bwrit/s: 平均每秒从系统buffer 向磁盘所写的物理块数。lwrit/s : 平均每秒写到系统buffer 逻辑块数。%wcache: 在 buffer cache中进行逻辑读的百分比。pread/s: 平均每秒请求物理读的次数。pwrit/s: 平均每秒请求物理写的次数。6.16 显示说明在显示的内容中, 最重要的是 %cache和%wcache两列, 它们的值体现着buffer 的使用效率

33、,%rcache的值小于 90 或者 %wcache 的值低于 65,应适当增加系统buffer 的数量, buffer 数量由核心参数NBUF 控制,使%rcache达到 90 左右,%wcache 达到 80左右。但 buffer 参数值的多少影响I/O 效率,增加 buffer,应在较大内存的情况下,否则系统效率反而得不到提高。如果 %rcache列的值小于 90%,并且%wcache 列的值不在 70-80%之间,我们必须观察系统中什么应用在做什么样的读 /写操作,我们是否需要增加缓冲区的大小注意:怀疑 CPU 存在瓶颈,可用sar -u 和 sar -q 来看,怀疑 I/O 存在瓶颈

34、,可用sar -b、sar -u和sar-d来看7.使用 ipcs 命令确定共享内存的使用情况Ipcs 命令可以用来监控sga的使用情况,它报告sga中每个共享内存段尺寸,如果在整个 sga中没有足够的内存来容纳一个连续的内存段,sga就将建立非连续的内存段,在实例崩溃的情况下, 可能就会出现内存无法释放的问题。如果发生了这种情况, 注意 ipcrm命令可以清除这些段(ipcrm m 用于内存段,ipcrm -s 用于信号段)7.1 命令格式ipcs -mqs -abcopt -C core -N namelist ipcs mob 可以看内存可用值ipcs -ma 也可7.2命令:ipcrm

35、 -m 5 可以清除不用的内存,即在ipcs -mob 中显示的 NATTCH 为 0 的值7.3 命令 $ ipcs b 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 12 页 - - - - - - - - - 7.4 屏幕显示Ipc status from as of sat jan 7 16:04:05 cst 2006 T id key mode owner group qbytes Message queues: T id key mode owner gr

36、oup segsz Shared memory: M 4608 oxdf00bc84 rw-r- oracle dba 708837376 M4609 oxbd76b6f0 rw-r- oracle dba 541065216 T id key mode owner group nsems Semaphores: S 65536 0 xae97 ra-root root 129 S 1 0 x100ae97 ra-root root 128 S 2 0 x1 ra-ra-ra root root 1 S 3 0 x73657276 ra-ra-ra- root root 3 S 1245188

37、 0 xd8647e24 ra-r- oracle dba 504 S 1245189 0 xbcdcaaa8 ra-r- oracle dba 304 这里, sga建立了 2 个非连续的段。通常最好是让整个sga处于一个单一的共享内存段,英文跟踪一个以上的段以及在这些段之间来回切换都需要额外的开销。可以在 /etc/system 文件中增加参数shmmax 的设置,以增加一个单一的共享内存段的最大尺寸。8.swapinfo 8.1语法:/usr/sbin/swapinfo -mtadfnrMqw 输出:Kb Kb Kb PCT START/ Kb TYPE AVAIL USED FREE

38、USED LIMIT RESERVE PRI NAME dev 4194304 0 4194304 0% 0 - 1 /dev/vg00/lvol2 reserve - 213764 -213764 memory 1203632 17472 1186160 1% 8.2说明:swapinfo 主要看 used 多少,而不在于总数大小,buffercache 中的值交换到swap 中后是不会被释放出来的,只有user的进程进入 swap后才会释放,所以swap的值很高也没有关系9.ifconfig:查看 (或设置 ) 网络设备信息 ifconfig -a:查看所有网络设置信息10. last:显

39、示登录到服务器的情况以及服务器重启情况11. df: 显示硬盘空间及使用情况领导建议:领导补充:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 12 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 12 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 12 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁