使用性能監(jiān)視器找出SQLServer硬件瓶頸
開(kāi)始SQLServer性能調(diào)優(yōu)的最佳地方就是從性能監(jiān)視器(系統(tǒng)監(jiān)視器)開(kāi)始。通過(guò)一個(gè)24小時(shí)的周期對(duì)一些關(guān)鍵的計(jì)數(shù)器進(jìn)行監(jiān)控,你將對(duì)你SQLServer服務(wù)器的硬件瓶頸了如指掌。
一般來(lái)說(shuō),使用性能監(jiān)視器去創(chuàng)建一個(gè)一些關(guān)鍵的計(jì)數(shù)器的24小時(shí)周期的監(jiān)控日志。當(dāng)你決定創(chuàng)建這個(gè)日志的時(shí)候,你需要選擇一個(gè)典型的24小時(shí)的周期,例如,選擇一個(gè)典型的比較忙的日期,而不是周日或節(jié)假日。
一旦你將這些捕獲的數(shù)據(jù)形成日志后,在性能監(jiān)視器的圖形界面下會(huì)顯示計(jì)數(shù)器的推薦值。你在上表中記下均值、最小值、峰值。做完這些后,用你的結(jié)果跟下面的分析比較。通過(guò)你的結(jié)果和下面的建議值進(jìn)行比較,你將能快速的找到你的SQLServe正在經(jīng)歷的潛在的硬件瓶頸。
關(guān)鍵性能計(jì)數(shù)器說(shuō)明
下面是不同關(guān)鍵性能計(jì)數(shù)器的一個(gè)討論,它們的建議值和為了幫助解決硬件瓶頸問(wèn)題的一些選項(xiàng)。注意我已經(jīng)限制了性能監(jiān)視器需要監(jiān)視的一些關(guān)鍵計(jì)數(shù)器。我這么做是因?yàn)樵诒疚奈覀兊哪康氖菫榱巳菀椎恼业斤@而易見(jiàn)的性能問(wèn)題,許多其他的性能監(jiān)視器計(jì)數(shù)器你能在本網(wǎng)站其他地方找到。
Memory: Pages/sec
這個(gè)計(jì)數(shù)器記錄的是每秒鐘內(nèi)存和磁盤(pán)之間交換的頁(yè)面數(shù)。交換更多的頁(yè)面、超過(guò)你服務(wù)器承受的更多的I/O,將輪流降低你SQLserver的性能。你的目的就是盡量將頁(yè)面減少到最小,而不是消除它。
如果你的服務(wù)器上SQLServer是最主要的應(yīng)用程序,那么這個(gè)值的理想范圍是0~20之間。可能很多時(shí)候你看到的值都會(huì)超過(guò)20。這個(gè)值一般要保持在每秒的平均頁(yè)數(shù)在20以下。
如果這個(gè)值平均總是超過(guò)20,其中最大的一個(gè)可能是內(nèi)存瓶頸問(wèn)題,需要增加內(nèi)存。通常來(lái)說(shuō),更多的內(nèi)存意味著需要執(zhí)行的頁(yè)面更少。
在大多數(shù)情況下,服務(wù)器決定SQLServer使用的適當(dāng)內(nèi)存的大小,頁(yè)面將平均小于20。給SQLServer適當(dāng)?shù)膬?nèi)存意味著服務(wù)器的緩存命中率(Buffer Hit Cache Ratio 這個(gè)稍后會(huì)講到)達(dá)到99%或者更高。如果在一個(gè)24小時(shí)的周期里你的sqlserver的緩存命中率達(dá)到99%或者更高,但是在這個(gè)期間你的頁(yè)面數(shù)總是超過(guò)20,這意味著你或許運(yùn)行了其他的程序。如果是這樣的情況,建議你移除這些程序,使SQLServer是你的服務(wù)器的最主要的程序。
如果你的sqlserver服務(wù)器沒(méi)有運(yùn)行其他程序,并且在一個(gè)24小時(shí)的周期里頁(yè)面數(shù)總是超過(guò)20,這說(shuō)明你應(yīng)該修改你對(duì)SQLServer的內(nèi)存設(shè)置了。將其設(shè)置為“動(dòng)態(tài)配置SQLServer的內(nèi)存”,并且最大內(nèi)存設(shè)置得高一些。為了達(dá)到最優(yōu),SQLServer將盡可能的獲得多的內(nèi)存以完成自己的工作,而不是去和其他的程序爭(zhēng)奪內(nèi)存。
Memory: Available Bytes
另一個(gè)檢查SQLServer是否有足夠的物理內(nèi)存的方法是檢查Memory Object: Available Bytes計(jì)數(shù)器。 這個(gè)值至少大于5M,否則需要添加更多的物理內(nèi)存。在一個(gè)專(zhuān)門(mén)的SQLServer服務(wù)器上,SQLServer試圖維持4-10M的自由物理內(nèi)存,其余的物理內(nèi)存被操作系統(tǒng)和SQLServer使用。當(dāng)可用的物理內(nèi)存接近5M或者更低時(shí),SQLServer最可能因?yàn)槿鄙賰?nèi)存而遇到性能瓶頸。遇此情況,你需要增加物理內(nèi)存以減少服務(wù)器的負(fù)荷,或者給SQLServer配置一個(gè)合適的內(nèi)存。
Physical Disk: % Disk Time
這個(gè)計(jì)數(shù)器度量磁盤(pán)陣列繁忙程度(不是邏輯分區(qū)或磁盤(pán)陣列上獨(dú)立的磁盤(pán))。它提供一個(gè)對(duì)磁盤(pán)陣列繁忙程度相對(duì)較好的度量。原則上計(jì)數(shù)器% Disk Time的值應(yīng)該小于55%。如果持續(xù)超過(guò)55%(在你24小時(shí)的監(jiān)控周期里大約超過(guò)10分鐘),說(shuō)明你的SQLServer有I/O瓶頸。如果你只是偶爾看到,也不必太擔(dān)心。但是,如果經(jīng)常發(fā)生的話(huà)(也就是說(shuō),一個(gè)小時(shí)出現(xiàn)好幾次),就應(yīng)該著手尋找增加服務(wù)器I/O性能或者減少服務(wù)器負(fù)荷的解決之道了。一般是為磁盤(pán)陣列增加磁盤(pán),或者更好更快的磁盤(pán),或者給控制器卡增加緩存,或者使用不同版本的RAID,或者更換更快的控制器。
在NT4.0上使用該計(jì)數(shù)器之前,確認(rèn)在NT命令提示符下輸入diskperf -y,重啟服務(wù)器,以便手動(dòng)打開(kāi)。在NT4.0下第一次必須將該計(jì)數(shù)器打開(kāi),Windows2000默認(rèn)是打開(kāi)的。
Physical Disk: Avg. Disk Queue Length
除了觀察物理磁盤(pán)的% Disk Time計(jì)數(shù)器外,還可以用Avg. Disk Queue Length計(jì)數(shù)器。磁盤(pán)陣列中的各個(gè)磁盤(pán)的該值如果超過(guò)2(在你24小時(shí)的監(jiān)控周期里大約超過(guò)10分鐘),那么你的磁盤(pán)陣列存在I/O瓶頸問(wèn)題。象計(jì)數(shù)器% Disk Time一樣,如果只是偶爾看到,也不必太擔(dān)心。但是,如果經(jīng)常發(fā)生的話(huà),就應(yīng)該著手尋找增加服務(wù)器I/O性能的解決之道了。如前所述。
你需要計(jì)算這個(gè)值,因?yàn)樾阅鼙O(jiān)視器不知道你的磁盤(pán)陣列中有多少物理磁盤(pán)。例如,如果你有一個(gè)6個(gè)物理磁盤(pán)組成的磁盤(pán)陣列,它的Avg.
Disk Queue Length值為10,那么實(shí)際每個(gè)磁盤(pán)的值為1.66(10/6=1.66),它們都在建議值2以?xún)?nèi)。
在NT4.0上使用該計(jì)數(shù)器之前,確認(rèn)在NT命令提示符下輸入diskperf -y,重啟服務(wù)器,以便手動(dòng)打開(kāi)。在NT4.0下第一次必須將該計(jì)數(shù)器打開(kāi),Windows2000默認(rèn)是打開(kāi)的。
一起使用這兩個(gè)計(jì)數(shù)器將幫助你找出I/O瓶頸。例如,如果% Disk Time的值超過(guò)55%,Avg. Disk Queue Length計(jì)數(shù)器值超過(guò)2,服務(wù)器則存在I/O瓶頸。
Processor: % Processor Time
處理器對(duì)象: % Processor Time計(jì)數(shù)器對(duì)每一個(gè)CPU可用,并針對(duì)每一個(gè)CPU進(jìn)行檢測(cè)。同樣對(duì)于所有的CPU也可用。這是一個(gè)觀察CPU利用率的關(guān)鍵計(jì)數(shù)器。如果% Total Processor Time計(jì)數(shù)器的值持續(xù)超過(guò)80%(在你24小時(shí)的監(jiān)控周期里大約超過(guò)10分鐘),說(shuō)明CPU存在瓶頸問(wèn)題。如果只是偶爾發(fā)生,并且你認(rèn)為對(duì)你的服務(wù)器影響不大,那沒(méi)問(wèn)題。如果經(jīng)常發(fā)生,你應(yīng)該減少服務(wù)器的負(fù)載,更換更高頻率的CPU,或者增加CPU的數(shù)量或者增加CPU的2級(jí)緩存(L2 cache)。
System: Processor Queue Length
根據(jù)% Processor Time計(jì)數(shù)器,你可以監(jiān)控Processor Queue Length計(jì)數(shù)器。每個(gè)CPU的該值如果持續(xù)超過(guò)2(在你24小時(shí)的監(jiān)控周期里大約超過(guò)10分鐘),那么你的CPU存在瓶頸問(wèn)題。例如,如果你的服務(wù)器有4個(gè)CPU,Processor Queue Length計(jì)數(shù)器的值總共不應(yīng)超過(guò)8。
如果Processor Queue Length計(jì)數(shù)器的值有規(guī)律的超過(guò)建議的最大值,但是CPU利用率相對(duì)不是很高,那么考慮減少SQLServer的"max worker threads"的配置值。Processor Queue Length計(jì)數(shù)器的值高的可能原因是有太多的工作線(xiàn)程等待處理。通過(guò)減少"maximum worker threads"的值,強(qiáng)迫線(xiàn)程池踢掉某些線(xiàn)程,從而使線(xiàn)程池得到最大的利用。
一起使用計(jì)數(shù)器Processor Queue Length和計(jì)數(shù)器% Total Process Time,你可以找到CPU瓶頸,如果都顯示超過(guò)它們的建議值,可以確信存在CPU瓶頸問(wèn)題。
SQL Server Buffer: Buffer Cache Hit Ratio
SQL Server Buffer中的計(jì)數(shù)器Buffer Cache Hit Ratio用來(lái)指出SQLServer從緩存中而不是磁盤(pán)中獲得數(shù)據(jù)的頻率。在一個(gè)OLTP程序中,該比率應(yīng)該超過(guò)90%,理想值是超過(guò)99%。如果你的buffer cache hit ratio低于90%,你需要立即增加內(nèi)存。如果該比率在90%和99%之間,你應(yīng)該認(rèn)真考慮購(gòu)買(mǎi)更多的內(nèi)存了。如果接近99%,你的SQLServer性能是比較快的了。某些情況下,如果你的數(shù)據(jù)庫(kù)非常大,你不可能達(dá)到99%,即使你在服務(wù)器上配置了最大的內(nèi)存。你所能做的就是盡可能的添加內(nèi)存。
在OLAP程序中,由于其本身的工作原理,該比率大大減少。不管怎樣,更多的內(nèi)存總是能提高SQLServer的性能。
SQL Server General: User Connections
既然sqlserver的使用人數(shù)會(huì)影響它的性能,你就需要專(zhuān)注于sqlserver的General Statistics Object: User Connections計(jì)數(shù)器。它顯示sqlserver目前連接的數(shù)量,而不是用戶(hù)數(shù)。
如果該計(jì)數(shù)器超過(guò)255,那么你需要將sqlserver的"Maximum Worker Threads" 的配置值設(shè)置得比缺省值255高。如果連接的數(shù)量超過(guò)可用的線(xiàn)程數(shù),那么sqlserver將共享線(xiàn)程,這樣會(huì)影響性能。"Maximum Worker Threads"需要設(shè)置得比你服務(wù)器曾經(jīng)達(dá)到的最大連接數(shù)更高。
開(kāi)始SQLServer性能調(diào)優(yōu)的最佳地方就是從性能監(jiān)視器(系統(tǒng)監(jiān)視器)開(kāi)始。通過(guò)一個(gè)24小時(shí)的周期對(duì)一些關(guān)鍵的計(jì)數(shù)器進(jìn)行監(jiān)控,你將對(duì)你SQLServer服務(wù)器的硬件瓶頸了如指掌。
一般來(lái)說(shuō),使用性能監(jiān)視器去創(chuàng)建一個(gè)一些關(guān)鍵的計(jì)數(shù)器的24小時(shí)周期的監(jiān)控日志。當(dāng)你決定創(chuàng)建這個(gè)日志的時(shí)候,你需要選擇一個(gè)典型的24小時(shí)的周期,例如,選擇一個(gè)典型的比較忙的日期,而不是周日或節(jié)假日。
一旦你將這些捕獲的數(shù)據(jù)形成日志后,在性能監(jiān)視器的圖形界面下會(huì)顯示計(jì)數(shù)器的推薦值。你在上表中記下均值、最小值、峰值。做完這些后,用你的結(jié)果跟下面的分析比較。通過(guò)你的結(jié)果和下面的建議值進(jìn)行比較,你將能快速的找到你的SQLServe正在經(jīng)歷的潛在的硬件瓶頸。
關(guān)鍵性能計(jì)數(shù)器說(shuō)明
下面是不同關(guān)鍵性能計(jì)數(shù)器的一個(gè)討論,它們的建議值和為了幫助解決硬件瓶頸問(wèn)題的一些選項(xiàng)。注意我已經(jīng)限制了性能監(jiān)視器需要監(jiān)視的一些關(guān)鍵計(jì)數(shù)器。我這么做是因?yàn)樵诒疚奈覀兊哪康氖菫榱巳菀椎恼业斤@而易見(jiàn)的性能問(wèn)題,許多其他的性能監(jiān)視器計(jì)數(shù)器你能在本網(wǎng)站其他地方找到。
Memory: Pages/sec
這個(gè)計(jì)數(shù)器記錄的是每秒鐘內(nèi)存和磁盤(pán)之間交換的頁(yè)面數(shù)。交換更多的頁(yè)面、超過(guò)你服務(wù)器承受的更多的I/O,將輪流降低你SQLserver的性能。你的目的就是盡量將頁(yè)面減少到最小,而不是消除它。
如果你的服務(wù)器上SQLServer是最主要的應(yīng)用程序,那么這個(gè)值的理想范圍是0~20之間。可能很多時(shí)候你看到的值都會(huì)超過(guò)20。這個(gè)值一般要保持在每秒的平均頁(yè)數(shù)在20以下。
如果這個(gè)值平均總是超過(guò)20,其中最大的一個(gè)可能是內(nèi)存瓶頸問(wèn)題,需要增加內(nèi)存。通常來(lái)說(shuō),更多的內(nèi)存意味著需要執(zhí)行的頁(yè)面更少。
在大多數(shù)情況下,服務(wù)器決定SQLServer使用的適當(dāng)內(nèi)存的大小,頁(yè)面將平均小于20。給SQLServer適當(dāng)?shù)膬?nèi)存意味著服務(wù)器的緩存命中率(Buffer Hit Cache Ratio 這個(gè)稍后會(huì)講到)達(dá)到99%或者更高。如果在一個(gè)24小時(shí)的周期里你的sqlserver的緩存命中率達(dá)到99%或者更高,但是在這個(gè)期間你的頁(yè)面數(shù)總是超過(guò)20,這意味著你或許運(yùn)行了其他的程序。如果是這樣的情況,建議你移除這些程序,使SQLServer是你的服務(wù)器的最主要的程序。
如果你的sqlserver服務(wù)器沒(méi)有運(yùn)行其他程序,并且在一個(gè)24小時(shí)的周期里頁(yè)面數(shù)總是超過(guò)20,這說(shuō)明你應(yīng)該修改你對(duì)SQLServer的內(nèi)存設(shè)置了。將其設(shè)置為“動(dòng)態(tài)配置SQLServer的內(nèi)存”,并且最大內(nèi)存設(shè)置得高一些。為了達(dá)到最優(yōu),SQLServer將盡可能的獲得多的內(nèi)存以完成自己的工作,而不是去和其他的程序爭(zhēng)奪內(nèi)存。
Memory: Available Bytes
另一個(gè)檢查SQLServer是否有足夠的物理內(nèi)存的方法是檢查Memory Object: Available Bytes計(jì)數(shù)器。 這個(gè)值至少大于5M,否則需要添加更多的物理內(nèi)存。在一個(gè)專(zhuān)門(mén)的SQLServer服務(wù)器上,SQLServer試圖維持4-10M的自由物理內(nèi)存,其余的物理內(nèi)存被操作系統(tǒng)和SQLServer使用。當(dāng)可用的物理內(nèi)存接近5M或者更低時(shí),SQLServer最可能因?yàn)槿鄙賰?nèi)存而遇到性能瓶頸。遇此情況,你需要增加物理內(nèi)存以減少服務(wù)器的負(fù)荷,或者給SQLServer配置一個(gè)合適的內(nèi)存。
Physical Disk: % Disk Time
這個(gè)計(jì)數(shù)器度量磁盤(pán)陣列繁忙程度(不是邏輯分區(qū)或磁盤(pán)陣列上獨(dú)立的磁盤(pán))。它提供一個(gè)對(duì)磁盤(pán)陣列繁忙程度相對(duì)較好的度量。原則上計(jì)數(shù)器% Disk Time的值應(yīng)該小于55%。如果持續(xù)超過(guò)55%(在你24小時(shí)的監(jiān)控周期里大約超過(guò)10分鐘),說(shuō)明你的SQLServer有I/O瓶頸。如果你只是偶爾看到,也不必太擔(dān)心。但是,如果經(jīng)常發(fā)生的話(huà)(也就是說(shuō),一個(gè)小時(shí)出現(xiàn)好幾次),就應(yīng)該著手尋找增加服務(wù)器I/O性能或者減少服務(wù)器負(fù)荷的解決之道了。一般是為磁盤(pán)陣列增加磁盤(pán),或者更好更快的磁盤(pán),或者給控制器卡增加緩存,或者使用不同版本的RAID,或者更換更快的控制器。
在NT4.0上使用該計(jì)數(shù)器之前,確認(rèn)在NT命令提示符下輸入diskperf -y,重啟服務(wù)器,以便手動(dòng)打開(kāi)。在NT4.0下第一次必須將該計(jì)數(shù)器打開(kāi),Windows2000默認(rèn)是打開(kāi)的。
Physical Disk: Avg. Disk Queue Length
除了觀察物理磁盤(pán)的% Disk Time計(jì)數(shù)器外,還可以用Avg. Disk Queue Length計(jì)數(shù)器。磁盤(pán)陣列中的各個(gè)磁盤(pán)的該值如果超過(guò)2(在你24小時(shí)的監(jiān)控周期里大約超過(guò)10分鐘),那么你的磁盤(pán)陣列存在I/O瓶頸問(wèn)題。象計(jì)數(shù)器% Disk Time一樣,如果只是偶爾看到,也不必太擔(dān)心。但是,如果經(jīng)常發(fā)生的話(huà),就應(yīng)該著手尋找增加服務(wù)器I/O性能的解決之道了。如前所述。
你需要計(jì)算這個(gè)值,因?yàn)樾阅鼙O(jiān)視器不知道你的磁盤(pán)陣列中有多少物理磁盤(pán)。例如,如果你有一個(gè)6個(gè)物理磁盤(pán)組成的磁盤(pán)陣列,它的Avg.
Disk Queue Length值為10,那么實(shí)際每個(gè)磁盤(pán)的值為1.66(10/6=1.66),它們都在建議值2以?xún)?nèi)。
在NT4.0上使用該計(jì)數(shù)器之前,確認(rèn)在NT命令提示符下輸入diskperf -y,重啟服務(wù)器,以便手動(dòng)打開(kāi)。在NT4.0下第一次必須將該計(jì)數(shù)器打開(kāi),Windows2000默認(rèn)是打開(kāi)的。
一起使用這兩個(gè)計(jì)數(shù)器將幫助你找出I/O瓶頸。例如,如果% Disk Time的值超過(guò)55%,Avg. Disk Queue Length計(jì)數(shù)器值超過(guò)2,服務(wù)器則存在I/O瓶頸。
Processor: % Processor Time
處理器對(duì)象: % Processor Time計(jì)數(shù)器對(duì)每一個(gè)CPU可用,并針對(duì)每一個(gè)CPU進(jìn)行檢測(cè)。同樣對(duì)于所有的CPU也可用。這是一個(gè)觀察CPU利用率的關(guān)鍵計(jì)數(shù)器。如果% Total Processor Time計(jì)數(shù)器的值持續(xù)超過(guò)80%(在你24小時(shí)的監(jiān)控周期里大約超過(guò)10分鐘),說(shuō)明CPU存在瓶頸問(wèn)題。如果只是偶爾發(fā)生,并且你認(rèn)為對(duì)你的服務(wù)器影響不大,那沒(méi)問(wèn)題。如果經(jīng)常發(fā)生,你應(yīng)該減少服務(wù)器的負(fù)載,更換更高頻率的CPU,或者增加CPU的數(shù)量或者增加CPU的2級(jí)緩存(L2 cache)。
System: Processor Queue Length
根據(jù)% Processor Time計(jì)數(shù)器,你可以監(jiān)控Processor Queue Length計(jì)數(shù)器。每個(gè)CPU的該值如果持續(xù)超過(guò)2(在你24小時(shí)的監(jiān)控周期里大約超過(guò)10分鐘),那么你的CPU存在瓶頸問(wèn)題。例如,如果你的服務(wù)器有4個(gè)CPU,Processor Queue Length計(jì)數(shù)器的值總共不應(yīng)超過(guò)8。
如果Processor Queue Length計(jì)數(shù)器的值有規(guī)律的超過(guò)建議的最大值,但是CPU利用率相對(duì)不是很高,那么考慮減少SQLServer的"max worker threads"的配置值。Processor Queue Length計(jì)數(shù)器的值高的可能原因是有太多的工作線(xiàn)程等待處理。通過(guò)減少"maximum worker threads"的值,強(qiáng)迫線(xiàn)程池踢掉某些線(xiàn)程,從而使線(xiàn)程池得到最大的利用。
一起使用計(jì)數(shù)器Processor Queue Length和計(jì)數(shù)器% Total Process Time,你可以找到CPU瓶頸,如果都顯示超過(guò)它們的建議值,可以確信存在CPU瓶頸問(wèn)題。
SQL Server Buffer: Buffer Cache Hit Ratio
SQL Server Buffer中的計(jì)數(shù)器Buffer Cache Hit Ratio用來(lái)指出SQLServer從緩存中而不是磁盤(pán)中獲得數(shù)據(jù)的頻率。在一個(gè)OLTP程序中,該比率應(yīng)該超過(guò)90%,理想值是超過(guò)99%。如果你的buffer cache hit ratio低于90%,你需要立即增加內(nèi)存。如果該比率在90%和99%之間,你應(yīng)該認(rèn)真考慮購(gòu)買(mǎi)更多的內(nèi)存了。如果接近99%,你的SQLServer性能是比較快的了。某些情況下,如果你的數(shù)據(jù)庫(kù)非常大,你不可能達(dá)到99%,即使你在服務(wù)器上配置了最大的內(nèi)存。你所能做的就是盡可能的添加內(nèi)存。
在OLAP程序中,由于其本身的工作原理,該比率大大減少。不管怎樣,更多的內(nèi)存總是能提高SQLServer的性能。
SQL Server General: User Connections
既然sqlserver的使用人數(shù)會(huì)影響它的性能,你就需要專(zhuān)注于sqlserver的General Statistics Object: User Connections計(jì)數(shù)器。它顯示sqlserver目前連接的數(shù)量,而不是用戶(hù)數(shù)。
如果該計(jì)數(shù)器超過(guò)255,那么你需要將sqlserver的"Maximum Worker Threads" 的配置值設(shè)置得比缺省值255高。如果連接的數(shù)量超過(guò)可用的線(xiàn)程數(shù),那么sqlserver將共享線(xiàn)程,這樣會(huì)影響性能。"Maximum Worker Threads"需要設(shè)置得比你服務(wù)器曾經(jīng)達(dá)到的最大連接數(shù)更高。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
