您的位置:首页 > 其它

OSWatcher Black Box

2016-12-30 07:56 260 查看

Linux监控工具介绍系列——OSWatcherBlackBox

OSWatcherBalckBox简介

OSWatcherBlackBox(oswbb)是Oracle开发、提供的一个小巧,但是实用、强大的系统工具,它可以用来抓取操作系统的性能指标,用于辅助监控系统的资源使用。其安装部署、卸载都非常简单;资源消耗也比较小,原理也十分简单,它通过调用OS的的一些命令(例如vmstat、iostat等)来采集、存储CPU/Memory/Swap/DiskIO/Nentwork相关数据。安装和运行oswbba可以帮助在性能诊断时提供丰富多样的各类性能数据、图文报表支持。

OSWatcher在4.0的版本时被命名为OSWatcherBlackBox,简称为oswbb,同时增加了数据分析功能,即OSWatcherBlackBoxAnalyzer(OSWbba)这个绘图和分析工具,其捆绑在OSWatcherBlackBox当中。替代了之前的OSWg。也就是说在OSWatcher4.0之前是:OSWatcher和OSWg的关系,OSWatcher4.0后变成了:OSWbb与OSWbba的关系。

OSWatcherBlackBox(oswbb)支持多个操作系统,也分Linux与Window版本,当然这两个版本有所差别,本篇只讲述Linux版本。另外,OSWatcherBlackBox(oswbb)由两个部分组成:

1.oswbb:一个Unix的shellscript脚本集合,其用来收集和归档数据,从而帮助定位问题。

2.oswbba:一个Java工具来自动分析数据,提供建议,并且生成一个包含图形的html文档。

OSWatcherBlackBox(oswbb)的官方下载地址以及相关资料如下(OracleMetalink上的资料需要账号)

HowToStartOSWatcherBlackBox(OSWBB)EverySystemBootUsingRPMoswbb-service(文档ID580513.1)

OSWatcherAnalyzerUserGuide(文档ID461053.1)

官方介绍文档对oswbb,oswbba的介绍如下:

OSWatcher(oswbb)isacollectionofUNIXshellscriptsintendedtocollectandarchiveoperatingsystemandnetworkmetricstoaidsupportindiagnosingperformanceissues.OSWatcheroperatesasasetofbackgroundprocessesontheserverandgathersOSdataonaregularbasis,invokingsuchUnixutilitiesasvmstat,netstatandiostat.OSWatchercanbedownloadedfromthisnote.OSWatcherisalsoincludedintheRAC-DDTscriptfile,butisnotinstalledbyRAC-DDT.FormoreinformationonRAC-DDTseeRAC-DDTUserGuide.OSWatcherisinstalledoneachnodewheredataistobecollected.InstallationinstructionsforOSWatcherareprovidedinthisuserguide.

TheOSWatcherAnalyzer(oswbba)isagraphingandanalysisutilitywhichcomesbundledwithOSWatcherv4.0andhigher.oswbbaallowstheusertographicallydisplaydatacollected,generatereportscontainingthesegraphsandprovidesabuiltinanalyzertoanalyzethedataandprovidedetailsonanyperformanceproblemsitdetects.Theabilitytographandanalyzethisinformationrelievestheuserofmanuallyinspectingallthefiles.

NOTE:oswbbareplacestheutilityOSWg.ThiswasdonetoeliminatetheconfusioncausedbyhavingmultipletoolsinsupportnamedOSWatcher.oswbbaisonlysupportedfordatacollectedbyoswbbandnoothertool.

安装OSWatcher

Linux平台的安装简单到了不能再简单,如下所示,解压安装包生成oswbb文件夹。当然你最好将其部署或移动到合适的目录。

[oracle@DB-Servermonitoring]$tar-xvfoswbb734.tar

[oracle@DB-Servermonitoring]$ls-lrt

total6196

drwxr-xr-x6oracleoinstall4096Jul2522:22oswbb

-rw-r--r--1oracleoinstall6318080Nov802:33oswbb734.tar

[oracle@DB-Servermonitoring]$cdoswbb

[oracle@DB-Serveroswbb]$ls–lrt

卸载OSWatcher

卸载OSWatche也是非常简单,只要稍懂Linux的应该都会。

1:卸载前先停止OSWatcher

./stopOSWbb.sh

2:删除OSWatcher的目录oswbb

rm–froswbb

启动OSWatcher

启动OSWatcher也非常简单,只需要执行startOSWbb.sh脚本即可,如下所示

./startOSWbb.sh102

后面参数表示10秒采集一次数据,只保留最后采集2个小时的数据在归档文件中。首次启动的日志最好做一下检查,注意是否存在Warning信息,如下测试所示,检查时发现ifconfig命令找不到(oracle账户下无法运行ifconfig命令)

[oracle@DB-Serveroswbb]$./startOSWbb.sh102

[oracle@DB-Serveroswbb]$Settingthearchivelogdirectoryto/home/oracle/monitoring/oswbb/archive


TestingfordiscoveryofOSUtilities...

VMSTATfoundonyoursystem.

IOSTATfoundonyoursystem.

MPSTATfoundonyoursystem.

Warning...IFCONFIGnotfoundonyoursystem.NoIFCONFIGdatawillbecollected.

NETSTATfoundonyoursystem.

TOPfoundonyoursystem.


TestingfordiscoveryofOSCPUCOUNT

oswbbislookingfortheCPUCOUNTonyoursystem

CPUCOUNTwillbeusedbyoswbbatoautomaticallylookforcpuproblems


CPUCOUNTfoundonyoursystem.

CPUCOUNT=4


Discoverycompleted.


StartingOSWatcherv7.3.3onSunDec408:01:57EST2016

WithSnapshotInterval=10

WithArchiveInterval=2


OSWatcher-WrittenbyCarlDavis,CenterofExpertise,

OracleCorporation

Forquestionsoninstall/usagepleasegotoMOS(Note:301137.1)

Ifyouneedfurtherassistanceorhavecommentsorenhancement

requestsyoucanemailmeCarl.Davis@Oracle.com


Dataisstoredindirectory:/home/oracle/monitoring/oswbb/archive


StartingDataCollection...


oswbbheartbeat:SunDec408:02:02EST2016

oswbbheartbeat:SunDec408:02:12EST2016


./startOSWbb.sh

如果没有指定参数,默认参数为30,48,意味着30秒采集一次数据,只保留最后48小时的数据到归档文件当中。其实startOSWbb.sh可以定义四个参数

参数1:指定多少秒采集一次数据。

参数2:指定采集的数据文件在归档路径保留多少个小时

参数3:可选参数,打包压缩工具,在完成收集后OSW将使用其来打包压缩归档文件

参数4:可选参数,指定采集归档数据的输出目录,默认为系统变量OSWBB_ARCHIVE_DEST的值。

使用上面方式启动OSWatcher,会被输出信息一直刷屏。基本上很少使用这种方式,一般使用nohup启动,这样可以让OSW能够在后台持续运行并在当前会话终止后不会被挂断。当然如果系统重启,那么OSWatcher就会停止。

nohup./startOSWbb.sh3048&

第一次启动OSWatcher会在oswbb目录下创建gif、archive、tmp、locks目录。其归档文件夹和osw<工具名>子文件夹会被建

OSWatcher采集的数据都存放在archive(目录路径)下,下面会生成oswiostat、oswmeminfo、oswmpstat等10个目录

[oracle@DB-Serverarchive]$tree

.

|--oswifconfig

|--oswiostat

||--DB-Server.localdomain_iostat_16.12.09.1300.dat

||--DB-Server.localdomain_iostat_16.12.09.1400.dat

|`--DB-Server.localdomain_iostat_16.12.09.1500.dat

|--oswmeminfo

||--DB-Server.localdomain_meminfo_16.12.09.1300.dat

||--DB-Server.localdomain_meminfo_16.12.09.1400.dat

|`--DB-Server.localdomain_meminfo_16.12.09.1500.dat

|--oswmpstat

||--DB-Server.localdomain_mpstat_16.12.09.1300.dat

||--DB-Server.localdomain_mpstat_16.12.09.1400.dat

|`--DB-Server.localdomain_mpstat_16.12.09.1500.dat

|--oswnetstat

||--DB-Server.localdomain_netstat_16.12.09.1300.dat

||--DB-Server.localdomain_netstat_16.12.09.1400.dat

|`--DB-Server.localdomain_netstat_16.12.09.1500.dat

|--oswprvtnet

|--oswps

||--DB-Server.localdomain_ps_16.12.09.1300.dat

||--DB-Server.localdomain_ps_16.12.09.1400.dat

|`--DB-Server.localdomain_ps_16.12.09.1500.dat

|--oswslabinfo

||--DB-Server.localdomain_slabinfo_16.12.09.1300.dat

||--DB-Server.localdomain_slabinfo_16.12.09.1400.dat

|`--DB-Server.localdomain_slabinfo_16.12.09.1500.dat

|--oswtop

||--DB-Server.localdomain_top_16.12.09.1300.dat

||--DB-Server.localdomain_top_16.12.09.1400.dat

|`--DB-Server.localdomain_top_16.12.09.1500.dat

`--oswvmstat

|--DB-Server.localdomain_vmstat_16.12.09.1300.dat

|--DB-Server.localdomain_vmstat_16.12.09.1400.dat

`--DB-Server.localdomain_vmstat_16.12.09.1500.dat

10directories,24files

采集的数据文件命名格式为OSWatcher输出文件格式为:<节点名>_<操作系统工具名>_YY.MM.DD.HH24.dat。如下所示,

配置OSWatcher自启动

OSWatcher在系统重启过后,是无法自动重启的,如果需要设置OSWatcher开机自启动,需要安装、配置osw-service这个RPM包。这个安装包可以从HowToStartOSWatcherBlackBox(OSWBB)EverySystemBootUsingRPMoswbb-service(文档ID580513.1)出下载。

[root@DB-Servertmp]#rpm-ivhoswbb-service-7.2.0-1.noarch.rpm

Preparing...###########################################[100%]

1:oswbb-service###########################################[100%]

[root@DB-Servertmp]#

安装osw-service这个RPM包后,需要配置/etc/oswbb.conf文件后,才能配置OSWatcher自启动。如下所示:

[root@DB-Server~]#

[root@DB-Server~]#/sbin/chkconfigoswbbon

[root@DB-Server~]#/sbin/serviceoswbbstart

StartingOSWatcher:[OK]

[root@DB-Server~]#

关闭OSWatcher

关闭OSWatcher也是非常简单,网上有种说法:stopOSWbb.sh是Oracle唯一支持的用于停止OSW的方法,其实不然,应该说有两种方法

1:执行脚本stopOSWbb.sh关闭OSWatcher

./stopOSWbb.sh

2:kill进程方法

[root@DB-Server~]#ps-ef|grep-iOSW

oracle248631016:02pts/100:00:00/bin/sh./OSWatcher.sh3048

oracle2490424863016:03pts/100:00:00/bin/sh./OSWatcherFM.sh48/home/oracle/monitoring/oswbb/archive

root2533018699016:05pts/200:00:00grep-iosw

[root@DB-Server~]#kill24863

[root@DB-Server~]#kill24904

[root@DB-Server~]#ps-ef|grep-iOSW

root2534218699016:05pts/200:00:00grep-iosw

[root@DB-Server~]#


如果你查看stopOSWbb.sh脚本,你会发现它停止OSWatcher也是通过killOSWatcherprogram相关进程的方法,如下所示:

[oracle@DB-Serveroswbb]$morestopOSWbb.sh

#!/bin/sh

######################################################################

#stopOSW.sh

#Thisisthescriptwhichterminatesallprocessesassociatedwith

#theOSWatcherprogram.

######################################################################

#KilltheOSWatcherprocesses

######################################################################

PLATFORM=`/bin/uname`

case$PLATFORMin

AIX)

kill-15`ps-ef|grepOSWatch|grep-vgrep|awk'{print$2}'`

;;

*)

kill-15`ps-e|grepOSWatch|awk'{print$1}'`

;;

esac


OSWatcherbba使用总结

OSWatchernowprovidesananalysistooloswbbawhichanalyzesthelogfilesproducedbyOSWatcher.ThistoolallowsOSWatchertobeselfanalyzing.

Thistoolalsoprovidesagraphingcapabilitytographthedataandtoproduceahtmlprofile.Seethe"GraphingandAnalyzingtheOutput"sectionbelow.

oswbbaiswritteninjavaandrequiresasaminimumjavaversion1.4.2orhigher.oswbbacanrunonanyUnixXWindowsorPCWindowsplatform.AnXWindowsenvironmentisrequiredbecauseoswbbausesOracleChartbuilderwhichrequiresit.

OSWatcherbba是一个Java语言写的应用程序,需要安装Java1.4.2或更高的版本。oswbba能够在任何有XWindows的Unix平台或Windows平台上运行,XWindows环境是必须的,因为oswbba需要用到OracleChartbuilder组件,而这个组件需要它。

[root@DB-Serveroswbb]#java-version


javaversion"1.8.0_111"


Java(TM)SERuntimeEnvironment(build1.8.0_111-b14)


JavaHotSpot(TM)64-BitServerVM(build25.111-b14,mixedmode)




[root@DB-Serveroswbb]#java-jaroswbba.jar-i/home/oracle/monitoring/oswbb/archive/




[root@DB-Serveroswbb]#java-jarXmx512Moswbba.jar-i/home/oracle/monitoring/oswbb/archive/


如果你只想生成某个时间段的报表,你可以使用参数-B-E如下案例所示

[root@DB-Serveroswbb]#java-jar-Xmx256moswbba.jar-i/home/oracle/scripts/oswbb/archive-BDec715:30:002016-EDec717:00:002016

在处理过程OSWatcher有下面一些参数可供选择,如下所示。根据具体需要选择。生成对应的html报表后,将其下载到本机,你就可以做一些分析了。

如下截图所示,这些图表仅仅是其中部分,OSWatcher给人印象最深的就是丰富的图表,而不是一堆枯燥的数字。

当然oswbba也能生成一个非常详细的分析报告,是文本格式,如下部分截图所示。

其实使用OSWatcher的使用并没有什么难度,反而是你要理解报表或分析报告中的指标意义,能够结合AWR、ASH以及其他数据库诊断信息来分析、诊断问题。这个才是有难度的。关于具体指标的详细说明,OSWatcherAnalyzerUserGuide(文档ID461053.1)中已有详细解说,在此就不班门弄斧了。

OSWatcher常见应用问题

1:如何判断OSWatcher是否正在运行

判断OSWatcher是否正在运行,非常简单,使用ps命令查看是否存在OSWatcher的相关进程即可。如下所示

[oracle@DB-Server~]$ps-ef|grep-iOSWatcher

oracle235321008:01pts/200:00:14/bin/sh./OSWatcher.sh102

oracle2358723532008:02pts/200:00:00/bin/sh./OSWatcherFM.sh2/home/oracle/monitoring/oswbb/archive

oracle2580824564009:22pts/300:00:00grep--color=auto-iOSWatcher

[oracle@DB-Server~]$

2:没有设置JAVA环境变量,会遇到下面错误:

[oracle@mylnx02oswbb]$java-jaroswbba.jar-i/home/oracle/oswbb/archive-BDec2109:00:002016-EDec2110:00:002016


Validatingtimesinthearchive...



StartingOSWAnalyzerV7.3.3

OSWatcherAnalyzerWrittenbyOracleCenterofExpertise

Copyright(c)2014byOracleCorporation


ParsingData.PleaseWait...



ERROR.YoudonothavealegitimateversionofjavainyourPATH.

Linuxuserspleasedownloadandinstalljavafromjava.sun.comor

seetheoswbbaREADMEforinstructionsonhowtousetheversionofjava

thatcomesshippedwiththeOracledatabase.


如下所示,设置JAVA环境变量后,然后执行oswbba的相关命令即可。

[oracle@mylnx02oswbb]$exportPATH=$ORACLE_HOME/jre/1.4.2/bin:$PATH

[oracle@mylnx02oswbb]$java-jaroswbba.jar-i/home/oracle/oswbb/archive-BDec2109:00:002016-EDec2110:00:002016


Validatingtimesinthearchive...



StartingOSWAnalyzerV7.3.3

OSWatcherAnalyzerWrittenbyOracleCenterofExpertise

Copyright(c)2014byOracleCorporation


ParsingData.PleaseWait...


Scanningfileheadersforversionandplatforminfo...



Parsingfilegetlnx14.gfg1.esquel.com_iostat_16.12.21.0800.dat...

Parsingfilegetlnx14.gfg1.esquel.com_iostat_16.12.21.0900.dat...


3:运行"java-jaroswbba.jar..."命令时报"Exceptioninthread"main"java.lang.OutOfMemoryError"

这个是因为JAVA的堆栈设置太小的缘故,加载到内存中的数据量过于庞大,需要设置参数-Xmx可以用-Xmx256m或-Xmx512m如下所示

java-jar-Xmx256moswbba.jar-i/home/oracle/scripts/oswbb/archive

oswbbaparsesallthearchivefilesinmemorypriortogeneratinggraphsorperformingananalysis.Ifyouhavealargeamountoffilestoparseyoumayneedtoallocatemorememoryinthejavaheap.Ifyouexperienceanyerrormessagesregardingoutofmemorysuchasjava.lang.OutOfMemoryError,youmayhavetoincreasethesizeofthejavaheap.Toincreasethesizeofthejavaheapusethe-Xmxflag.

4:oswbba是否可以在命令行界面生成html报告文件?答案是可以,当然你会遇到很多杂七杂八问题,下面列举了一些我遇到的问题

1:”NoX11DISPLAYvariablewasset,butthisprogramperformedanoperationwhichrequiresit“

如果是root账号,只要执行exportDISPLAY=:0.0命令后,即可在SecureCRT或命令窗口生成报表文件。如下所示:

[root@DB-Serveroswbb]#exportDISPLAY=:0.0

[root@DB-Serveroswbb]#java-jaroswbba.jar-i/home/oracle/monitoring/oswbb/archive/


StartingOSWAnalyzerV7.3.3

OSWatcherAnalyzerWrittenbyOracleCenterofExpertise

Copyright(c)2014byOracleCorporation


ParsingData.PleaseWait...


Scanningfileheadersforversionandplatforminfo...



ParsingfileDB-Server.localdomain_iostat_16.12.04.0800.dat...

ParsingfileDB-Server.localdomain_iostat_16.12.04.0900.dat...



ParsingfileDB-Server.localdomain_vmstat_16.12.04.0800.dat...

ParsingfileDB-Server.localdomain_vmstat_16.12.04.0900.dat...



ParsingfileDB-Server.localdomain_netstat_16.12.04.0800.dat...

ParsingfileDB-Server.localdomain_netstat_16.12.04.0900.dat...



ParsingfileDB-Server.localdomain_top_16.12.04.0800.dat...

ParsingfileDB-Server.localdomain_top_16.12.04.0900.dat...



ParsingfileDB-Server.localdomain_ps_16.12.04.0800.dat...

ParsingfileDB-Server.localdomain_ps_16.12.04.0900.dat...



ParsingCompleted.






Enter1toDisplayCPUProcessQueueGraphs

Enter2toDisplayCPUUtilizationGraphs

Enter3toDisplayCPUOtherGraphs

Enter4toDisplayMemoryGraphs

Enter5toDisplayDiskIOGraphs


Enter6toGenerateAllCPUGifFiles

Enter7toGenerateAllMemoryGifFiles

Enter8toGenerateAllDiskGifFiles


EnterLtoSpecifyAlternateLocationofGifDirectory

EnterTtoAlterGraphTimeScaleOnly(Doesnotchangeanalysisdataset)

EnterDtoReturntoDefaultGraphTimeScale

EnterRtoRemoveCurrentlyDisplayedGraphs


EnterAtoAnalyzeData

EnterStoAnalyzeSubsetofData(Changesanalysisdatasetincludinggraphtimescale)


EnterPtoGenerateAProfile

EnterXtoExportParsedDatatoFile

EnterQtoQuitProgram


PleaseSelectanOption:1





Enter1toDisplayCPUProcessQueueGraphs

Enter2toDisplayCPUUtilizationGraphs

Enter3toDisplayCPUOtherGraphs

Enter4toDisplayMemoryGraphs

Enter5toDisplayDiskIOGraphs


Enter6toGenerateAllCPUGifFiles

Enter7toGenerateAllMemoryGifFiles

Enter8toGenerateAllDiskGifFiles


EnterLtoSpecifyAlternateLocationofGifDirectory

EnterTtoAlterGraphTimeScaleOnly(Doesnotchangeanalysisdataset)

EnterDtoReturntoDefaultGraphTimeScale

EnterRtoRemoveCurrentlyDisplayedGraphs


EnterAtoAnalyzeData

EnterStoAnalyzeSubsetofData(Changesanalysisdatasetincludinggraphtimescale)


EnterPtoGenerateAProfile

EnterXtoExportParsedDatatoFile

EnterQtoQuitProgram


PleaseSelectanOption:P

Enterauniqueprofiledirectorynameorenter<CR>toacceptdefaultname:kkk.html

Generatingfileprofile/DB-Server.localdomain_kkk.html/OSW_profile_files/OSWg_OS_Run_Queue.gif

Generatingfileprofile/DB-Server.localdomain_kkk.html/OSW_profile_files/OSWg_OS_Block_Queue.gif

Generatingfileprofile/DB-Server.localdomain_kkk.html/OSW_profile_files/OSWg_OS_Cpu_Idle.gif

Generatingfileprofile/DB-Server.localdomain_kkk.html/OSW_profile_files/OSWg_OS_Cpu_System.gif

Generatingfileprofile/DB-Server.localdomain_kkk.html/OSW_profile_files/OSWg_OS_Cpu_User.gif

Generatingfileprofile/DB-Server.localdomain_kkk.html/OSW_profile_files/OSWg_OS_Cpu_Wa.gif

Generatingfileprofile/DB-Server.localdomain_kkk.html/OSW_profile_files/OSWg_OS_Cpu_Interrupts.gif

Generatingfileprofile/DB-Server.localdomain_kkk.html/OSW_profile_files/OSWg_OS_Context_Switches.gif

Generatingfileprofile/DB-Server.localdomain_kkk.html/OSW_profile_files/OSWg_OS_Memory_Swap.gif

Generatingfileprofile/DB-Server.localdomain_kkk.html/OSW_profile_files/OSWg_OS_Memory_Free.gif

Generatingfileprofile/DB-Server.localdomain_kkk.html/OSW_profile_files/OSWg_OS_Memory_Page_In_Rate.gif

Generatingfileprofile/DB-Server.localdomain_kkk.html/OSW_profile_files/OSWg_OS_IO_ST.gif

Generatingfileprofile/DB-Server.localdomain_kkk.html/OSW_profile_files/OSWg_OS_IO_RPS.gif

Generatingfileprofile/DB-Server.localdomain_kkk.html/OSW_profile_files/OSWg_OS_IO_WPS.gif

Generatingfileprofile/DB-Server.localdomain_kkk.html/OSW_profile_files/OSWg_OS_IO_PB.gif

Generatingfileprofile/DB-Server.localdomain_kkk.html/OSW_profile_files/OSWg_OS_IO_PBTP_1.gif

Generatingfileprofile/DB-Server.localdomain_kkk.html/OSW_profile_files/OSWg_OS_IO_PBTP_2.gif

Generatingfileprofile/DB-Server.localdomain_kkk.html/OSW_profile_files/OSWg_OS_IO_PBTP_3.gif

Generatingfileprofile/DB-Server.localdomain_kkk.html/OSW_profile_files/OSWg_OS_IO_TPS.gif


上面使用的是root用户,如果是oracle用户,还是有可能还会遇到下面问题

此时需要切换到root账号,执行下面命令,然后切换到oracle用户下执行命令

[oracle@DB-Serveroswbb]$su-root


Password:


[root@DB-Server~]#exportDISPLAY=:0.0


[root@DB-Server~]#xhostlocal:oracle


non-networklocalconnectionsbeingaddedtoaccesscontrollist


当然,在SecureCRT中,你不能选择1-5这几个选项,否则依然会遇到Can'tconnecttoX11windowserverusing':0.0'这个错误。这个只能在图形化界面才能执行。例如通过VNC来生成。

java-jar-Xmx256moswbba.jar-i/home/oracle/oswbb/archive-BMar516:00:002016-EMar516:30:002016

java-jar-Djava.awt.headless=true-Xmx256moswbba.jar-i/home/oracle/oswbb/archive-BMar516:00:002016-EMar516:30:002016

参考资料:

OSWatcher(包括:[视频])(文档ID1526578.1)

OSWatcher(Includes:[Video])(文档ID301137.1)

HowToStartOSWatcherBlackBox(OSWBB)EverySystemBootUsingRPMoswbb-service(文档ID580513.1)

OSWatcherAnalyzerUserGuide(文档ID461053.1)

作者:潇湘隐者
出处:http://www.cnblogs.com/kerrycode/

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: