sysstat

总结:说到底,sysstat只是一个查看工具,看懂,分析处理获得的信息,才是使用的重点
表格数据不够直观,所以转而怎么讲表格生成图表


使用sysstat graph分析sar结果

sysstat工具包是一个linux下性能分析基本必备的,而通过里面的sa1工具可以实现将当前的性能数据记录到文件中,便于性能回溯。不过文本性的东西虽然能看到具体指标的值 ,不过总归没有图形化的东西来的直观。这里就结合sysstatgraph为例,对sa1的结果进行查看分析。
一、环境要求
* 运行sysstat服务,并在/var/log/sa目录下有sarXX文件生成
* php5.2以上版本

二、安装sysstatgraph
1、下载sysstat graph包,当前最新版本为0.4 。将该包解压后,放到web目录下,这里以apache httpd为例 ,解包到/var/www/html 目录。


2、编辑config.php文件,默认如下:
define('SYSSTATDATAPATH','/var/log/sa');
define('JSONSTRUCTUREFILENAME','data.json');
define('NETWORKINTERFACELIST',serialize(array('lo')));
// define('NETWORKINTERFACELIST',serialize(array('lo','ens33')));
第一行指定了sysstat 生成文件的目录,所以建立一台分析服务器,将其他主机的/var/log/sa打包复制到该主机,将放到相应目录,并修改该路径。
第二行指生成的json文件,默认情况下,先读取该json文件,并将数据返回到html 页面上。可以在命令下执行php index.php ,会输出并生成该文件。
第三行指定了查看网络流量的网卡接口,默认只配置了回环接口。想要使用其他接口,可以将lo 修改为其他接口,如eth0 。有多个接口时,可以按第四行的方法进行配置。

3、通过http://ip/index.php访问,图示类以如下:

4、sysstat graph 查看的性能指标
通过该工具,可以查看以下性能指标
Tasks created (per second)
Context switches (per second)
CPU utilisation (User/System/IOwait)
Memory usage / Swap usage (megabytes)
Running/sleeping task count (threads)
System load averages
Network packets (received/transmitted per second) - per adapter
Network kilobytes (received/transmitted per second) - per adapter


1、什么是systat:
     SYSSTAT是一个软件包,包含监测系统性能及效率的一组工具,这些工具对于我们收集系统性能数据,比如CPU使用率、硬盘和网络吞吐数据,这些数据的收集和分析,有利于我们判断系统是否正常运行,是提高系统运行效率、安全运行服务器的得力助手


2、
sar
是Linux下系统运行状态统计工具,
它将指定的操作系统状态计数器显示到标准输出设备。sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取样数据。取样数据和分析的结果都可以存入文件,使用它时消耗的系统资源很小。

语法

sar(选项)(参数)

选项

-A:显示所有的报告信息;
      太长,不在这里显示:sar -a
-b:显示I/O速率;
[lcr@centOS ~]$ sar -b
Linux 3.10.0-514.26.2.el7.x86_64 (centOS)     2017年08月29日     _x86_64_    (4 CPU)
00时00分01秒       tps      rtps      wtps   bread/s   bwrtn/s
00时10分01秒      0.16      0.03      0.14      0.69      2.03
00时20分02秒      1.70      0.40      1.30     39.46    765.73
00时30分01秒      0.22      0.01      0.22      0.12      3.33
00时40分01秒      0.10      0.00      0.10      0.00      1.32
00时50分01秒      0.10      0.01      0.09      0.40      1.03
平均时间:      0.46      0.09      0.37      8.14    154.73
00时53分42秒       LINUX RESTART
01时00分01秒       tps      rtps      wtps   bread/s   bwrtn/s
01时10分01秒      0.11      0.03      0.08      0.64      1.02
01时20分01秒      4.40      3.92      0.48    343.05      8.81
平均时间:      2.26      1.97      0.28    171.84      4.92
21时44分37秒       LINUX RESTART
21时50分01秒       tps      rtps      wtps   bread/s   bwrtn/s
22时00分01秒      0.33      0.07      0.26      3.64      6.08
22时10分02秒      0.14      0.02      0.12      0.37      1.84
22时20分01秒      2.89      2.05      0.84    221.67     57.43
22时30分01秒      0.89      0.43      0.46     35.98     10.49
22时40分01秒      0.22      0.00      0.21      0.04      3.31
平均时间:      0.89      0.51      0.38     52.28     15.81

-B:显示换页状态;

-C:显示进程创建活动;
       注意大小写,此处为大写
-d:显示每个块设备的状态;
-e:设置显示报告的结束时间;
-f:从指定文件提取报告;
-i:设状态信息刷新的间隔时间;
-P:报告每个CPU的状态;
-R:显示内存状态;
-u:显示CPU利用率;
-v:显示索引节点,文件和其他内核表的状态;
- w :显示交换分区状态;
-x:显示给定进程的状态。

参数

  • 间隔时间:每次报告的间隔时间(秒);
  • 次数:显示报告的次数。

实例

察看内存和交换空间的使用率:
sar -r
Linux 2.4.20-8 ( www.linuxde.net ) 20130503
12:00:01 AM kbmemfree kbmemused %memused
kbmemshrd kbbuffers kbcached
12:10:00 AM 240468 1048252 81.34
0 133724 485772
12:20:00 AM 240508 1048212 81.34
0 134172 485600
08:40:00 PM 934132 354588 27.51
0 26080 185364
Average: 324346 964374 74.83
0 96072 467559
kbmemfree与kbmemused字段分别显示内存的未使用与已使用空间,后面跟着的是已使用空间的百分比(%memused字段)。kbbuffers与kbcached字段分别显示缓冲区与系统全域的数据存取量,单位为KB。
观察系统部件10分钟,并对数据进行排序:
sar -o temp 60 10








[lcr@centOS ~]$ sar -h
用法: sar [ 选项 ] [ <时间间隔> [ <次数> ] ]
主选项和报告:
    -b    I/O 和传输速率信息状况
    -B    分页状况
    -d    块设备状况
    -H    交换空间利用率
    -I { <中断> | SUM | ALL | XALL }
        中断信息状况
    -m { <关键词> [,...] | ALL }
        电源管理统计信息
        关键字:
        CPU    CPU 频率
        FAN    风扇速度
\t\tFREQ\tCPU 平均时钟频率
        IN    输入电压
        TEMP    设备温度
\t\tUSB\t连接的USB 设备
    -n { <关键词> [,...] | ALL }
        网络统计信息
        关键词可以是:
        DEV    网卡
        EDEV    网卡 (错误)
        NFS    NFS 客户端
        NFSD    NFS 服务器
        SOCK    Sockets (套接字)    (v4)
        IP    IP 流    (v4)
        EIP    IP 流    (v4) (错误)
        ICMP    ICMP 流    (v4)
        EICMP    ICMP 流    (v4) (错误)
        TCP    TCP 流    (v4)
        ETCP    TCP 流    (v4) (错误)
        UDP    UDP 流    (v4)
        SOCK6    Sockets (套接字)    (v6)
        IP6    IP 流    (v6)
        EIP6    IP 流    (v6) (错误)
        ICMP6    ICMP 流    (v6)
        EICMP6    ICMP 流    (v6) (错误)
        UDP6    UDP 流    (v6)
    -q    队列长度和平均负载
    -r    内存利用率
    -R    内存状况
    -S    交换空间利用率
    -u [ ALL ]
        CPU 利用率
    -v    Kernel table 状况
    -w    任务创建与系统转换统计信息
    -W    交换信息
    -y    TTY 设备状况





iostat命令

iostat命令

iostat命令 被用于监视系统输入输出设备和CPU的使用情况。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同 vmstat 一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。

语法

iostat(选项)(参数)

选项

-c:仅显示CPU使用情况;
-d:仅显示设备利用率;
-k:显示状态以千字节每秒为单位,而不使用块每秒;
-m:显示状态以兆字节每秒为单位;
-p:仅显示块设备和所有被使用的其他分区的状态;
-t:显示每个报告产生时的时间;
-V:显示版号并退出;
-x:显示扩展状态。

参数

  • 间隔时间:每次报告的间隔时间(秒);
  • 次数:显示报告的次数。

实例

iostat -x /dev/sda1 来观看磁盘I/O的详细情况:
iostat -x /dev/sda1
Linux 2.6.18-164.el5xen (localhost.localdomain)
2010年03月26日
avg-cpu: %user % nice   %system %iowait
%steal %idle
0.11 0.02 0.18 0.35
0.03 99.31
Device: tps Blk_read/s Blk_wrtn/s
Blk_read Blk_wrtn
sda1 0.02 0.08
0.00 2014 4
详细说明:第二行是系统信息和监测时间,第三行和第四行显示CPU使用情况(具体内容和 mpstat 命令相同)。这里主要关注后面I/O输出的信息,如下所示:
标示
说明
Device
监测设备名称
rrqm/s
每秒需要读取需求的数量
wrqm/s
每秒需要写入需求的数量
r/s 
每秒实际读取需求的数量
w/s
每秒实际写入需求的数量
rsec/s
每秒读取区段的数量
wsec/s
每秒写入区段的数量
rkB/s
每秒实际读取的大小,单位为KB
wkB/s
每秒实际写入的大小,单位为KB
avgrq-sz
需求的平均大小区段
avgqu-sz
需求的平均队列长度
await
等待I/O平均的时间(milliseconds)
svctm
I/O需求完成的平均时间
%util
被I/O需求消耗的CPU百分比



[lcr@centOS ~]$ iostat -c
Linux 3.10.0-514.26.2.el7.x86_64 (centOS)     2017年08月29日     _x86_64_    (4 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.36    0.01    0.42    0.03    0.00   99.18

[lcr@centOS ~]$ iostat -x /dev/sda1
Linux 3.10.0-514.26.2.el7.x86_64 (centOS)     2017年08月29日     _x86_64_    (4 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.34    0.00    0.40    0.02    0.00   99.23
Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s   avgrq-sz  avgqu-sz   await  r_await  w_await  svctm  %util
sda1              0.00     0.00         0.25    0.00     6.17     0.45      53.32         0.00         0.40      0.39    1.30      0.22   0.01








mpstat

mpstat命令 指令主要用于多CPU环境下,它显示各个可用CPU的状态系你想。这些信息存放在 /proc/ stat 文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。

语法

mpstat(选项)(参数)

选项

-P:指定CPU编号。

参数

  • 间隔时间:每次报告的间隔时间(秒);
  • 次数:显示报告的次数。

实例

当mpstat不带参数时,输出为从系统启动以来的平均值。
mpstat
Linux 2.6.9-5.31AXsmp ( builder.redflag-linux.com ) 12/16/2005
09:38:46 AM CPU %user % nice   %system %iowait %irq %soft %idle intr/s
09:38:48 AM all 23.28 0.00 1.75 0.50 0.00 0.00 74.47 1018.59
每2秒产生了2个处理器的统计数据报告:
下面的命令可以每2秒产生了2个处理器的统计数据报告,一共产生三个interval 的信息,然后再给出这三个interval的平均信息。默认时,输出是按照CPU 号排序。第一个行给出了从系统引导以来的所有活跃数据。接下来每行对应一个处理器的活跃状态。。
mpstat -P ALL 2 3
Linux 2.6.18-164.el5 ( server.sys.com ) 01/04/2010
09:34:20 PM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s
09:34:22 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 1001.49
09:34:22 PM 0 0.00 0.00 0.50 0.00 0.00 0.00 0.00 99.50 1001.00
09:34:22 PM 1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.00
比较带参数和不带参数的mpstat的结果:
在后台开一个2G的文件
cat   1.img &
然后在另一个终端运行mpstat命令
mpstat
Linux 2.6.18-164.el5 ( server.sys.com ) 01/04/2010
10:17:31 PM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s
10:17:31 PM all 0.07 0.02 0.25 0.21 0.01 0.04 0.00 99.40 1004.57
mpstat
Linux 2.6.18-164.el5 ( server.sys.com ) 01/04/2010
10:17:35 PM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s
10:17:35 PM all 0.07 0.02 0.25 0.21 0.01 0.04 0.00 99.39 1004.73
mpstat 3 10
Linux 2.6.18-164.el5 ( server.sys.com ) 01/04/2010
10:17:55 PM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s
10:17:58 PM all 13.12 0.00 20.93 0.00 1.83 9.80 0.00 54.32 2488.08
10:18:01 PM all 10.82 0.00 19.30 0.83 1.83 9.32 0.00 57.90 2449.83
10:18:04 PM all 10.95 0.00 20.40 0.17 1.99 8.62 0.00 57.88 2384.05
10:18:07 PM all 10.47 0.00 18.11 0.00 1.50 8.47 0.00 61.46 2416.00
10:18:10 PM all 11.81 0.00 22.63 0.00 1.83 11.98 0.00 51.75 2210.60
10:18:13 PM all 6.31 0.00 10.80 0.00 1.00 5.32 0.00 76.58 1795.33
10:18:19 PM all 1.75 0.00 3.16 0.75 0.25 1.25 0.00 92.85 1245.18
10:18:22 PM all 11.94 0.00 19.07 0.00 1.99 8.29 0.00 58.71 2630.46
10:18:25 PM all 11.65 0.00 19.30 0.50 2.00 9.15 0.00 57.40 2673.91
10:18:28 PM all 11.44 0.00 21.06 0.33 1.99 10.61 0.00 54.56 2369.87
Average: all 9.27 0.00 16.18 0.30 1.50 7.64 0.00 65.11 2173.54

上两表显示出当要正确反映系统的情况,需要正确使用命令的参数。vmstat iostat 也需要注意这一问题。














3、安装
[root@localhost lcr]# yum install -y sysstat
已加载插件:fastestmirror, langpacks
base                                                     | 3.6 kB     00:00     
extras                                                   | 3.4 kB     00:00     
updates                                                  | 3.4 kB     00:00     
Loading mirror speeds from cached hostfile
* extras: ftp.sjtu.edu.cn
* updates: mirrors.163.com
软件包 sysstat-10.1.5-11.el7.x86_64 已安装并且是最新版本
无须任何处理




4、实践
查看sysstat的配置文件
[root@localhost ~]# vim /etc/sysconfig/sysstat
# sysstat-10.1.5 configuration file.
# How long to keep log files (in days).
# If value is greater than 28, then log files are kept in      <---------如果保存天数超过28天,日子文件保存在XXX
# multiple directories, one for each month.
HISTORY=28        <-------------保存天数
# Compress (using gzip or bzip2) sa and sar files older than (in days):
COMPRESSAFTER=31        <-------超过31天的日志文件用gzip或者bzip2压缩保存
# Parameters for the system activity data collector (see sadc manual page)
# which are used for the generation of log files.
SADC_OPTIONS="-S DISK"
# Compression program to use.
ZIP="bzip2"




[lcr@centOS ~]$ cat /etc/sysconfig/sysstat.ioconf
#
# sysstat.ioconf
#
#  Copyright (C) 2004, Red Hat, Inc.
#
#  Maintained by Sebastien Godard (sysstat [at] orange.fr)
#
#  This file gives iostat and sadc a clue about how to find whole
#   disk devices in /proc/partitions and /proc/diskstats
#  Authoritative source is: linux/Documentation/devices.txt
#
# line format, general record:
#   major:name:ctrlpre:ctrlno:devfmt:devcnt:partpre:partcnt:description
#
#  major:        major # for device
#  name:        base of device name
#  ctrlpre:        string to use in generating controller designators
#             eg: the c in c0d2p6, decimal formatting implied
#            '*' means none or irrelevant
#            'x': exception... record contains a specific name
#                       for a specific minor #, stored in the ctrlno field
#  ctrlno:        which controller of this type is this
#  devfmt:        type of device naming convention
#    a:        alpha: xxa, xxb, ... xxaa, xxab, ... xxzz
#    %string:    string to use in generating drive designators,
#             eg: the 'd' in c0d2p6 , decimal formatting implied
#    d:        no special translations (decimal formatting)
#  devcnt:        how many whole devs per major number
#  partpre:             appended to whole dev before part designator
#                        eg. the p in c0d2p6, decimal formatting implied
#             '*' means none
#  partcnt:        number of partitions per volume
#             or minor # for exception records
#  description:        informative text
#
# line format, indirect record:
#   major:base_major:ctrlno[:[desc]]
#
#  major:        major number of the device
#  base_major:        major number of the template for this type,
#             0 for not supported
#  ctrlno:        controller number of this type
#  desc:        controller-specific description
#            if absent the desc from base_major will be
#             used in sprintf( buf, desc, ctrlno )
1:ram:*:0:d:256:*:1:RAM disks (ram0..ram255)
1:initrd:x:250:d:256:*:1:Initial RAM Disk (initrd)
#2:0:0:Floppy Devices
2:fd:*:0:d:4:*:1:Floppy Devices fd0,fd1,fd2,fd3
3:hd:*:0:a:2:*:64:IDE - Controller %d
22:3:1:
33:3:2:
34:3:3:
56:3:4:
57:3:5:
88:3:6:
89:3:7:
90:3:8:
91:3:9:
#4:0:0:NODEV
#5:0:0:NODEV
#6:0:0:NODEV
7:loop:*:0:d:256:*:1:Loop Devices
8:sd:*:0:a:16:*:16:SCSI - Controller %d
65:8:1:
66:8:2:
67:8:3:
68:8:4:
69:8:5:
70:8:6:
71:8:7:
128:8:8:
129:8:9:
130:8:10:
131:8:11:
132:8:12:
133:8:13:
134:8:14:
135:8:15:
9:md:*:0:d:256:*:1:Metadisk (Software RAID) devices  (md0..md255)
#10:0:0:NODEV
#11:sr:*:0:d:256:*:1:CDROM - CDROM (sr0..sr255) (deprecated)
11:scd:*:0:d:256:*:1:CDROM - CDROM (scd0..scd255)
#12:0:0:MSCDEX CD-ROM Callback
13:xd:*:0:a:2:*:64:8-bit MFM/RLL/IDE controller (xda, xdb)
#14:0:0:BIOS Hard Drive Callback
#15:0:0:CDROM - Sony CDU-31A/CDU-33A
#16:0:0:CDROM - Goldstar
#17:0:0:CDROM - Optics Storage
#18:0:0:CDROM - Sanyo
19:double:*:0:d:256:*:1:Compressed Disk (double0..double255)
#20:0:0:CDROM - Hitachi
21:mfm:*:0:a:2:*:64:Acorn MFM Hard Drive (mfma, mfmb)
# 22: see IDE, dev 3
#23:0:0:CDROM - Mistumi Proprietary
#24:0:0:CDROM - Sony CDU-535
#25:0:0:CDROM - Matsushita (Panasonic/Soundblaster) #1
#26:0:1:CDROM - Matsushita (Panasonic/Soundblaster) #2
#27:0:2:CDROM - Matsushita (Panasonic/Soundblaster) #3
#28:0:3:CDROM - Matsushita (Panasonic/Soundblaster) #4
# 28:0:0:! ACSI (Atari) Disk Not Supported
#29:0:0:CDROM - Aztech/Orchid/Okano/Wearnes
#30:0:0:CDROM - Philips LMS CM-205
#31:0:0:ROM/flash Memory Card
#32:0:0:CDROM -  Phillips LMS CM-206
# 33: See IDE, dev 3
# 34: See IDE, dev 3
#35:0:0:Slow Memory RAM Disk
36:ed:*:0:a:2:*:64:MCA ESDI Hard Disk (eda, edb)
#37:0:0:Zorro II Ram Disk
#38:0:0:Reserved For Linux/AP+
#39:0:0:Reserved For Linux/AP+
#40:0:0:Syquest EZ135 Parallel Port Drive
#41:0:0:CDROM -  MicroSolutions Parallel Port BackPack
#42:0:0:For DEMO Use Only
43:nb:*:0:d:256:*:1:Network Block devices (nb0..nb255)
44:ftl:*:0:a:16:*:16:Flash Translation Layer (ftla..ftlp)
45:pd:*:0:a:4:*:16:Parallel Port IDE (pda..pdd)
#46:0:0:CDROM - Parallel Port ATAPI
47:pf:*:0:d:256:*:1:Parallel Port ATAPI Disk Devices (pf0..pf255)
48:rd:/c:0:%d:32:p:8:Mylex DAC960 RAID, Controller %d
49:48:1:
50:48:2:
51:48:3:
52:48:4:
53:48:5:
54:48:6:
55:48:7:
136:48:8:
137:48:9:
138:48:10:
139:48:11:
140:48:12:
141:48:13:
142:48:14:
143:48:15:
# 56, 57: see IDE, dev 3:
58:lvm:*:0:d:256:*:1:Logical Volume Manager (lvm0..lvm255)
#59:0:0:PDA Filesystem Device
#60:0:0:Local/Experimental Use
#61:0:0:Local/Experimental Use
#62:0:0:Local/Experimental Use
#63:0:0:Local/Experimental Use
#64:0:0:NODEV
# 65..71: See SCSI, dev 8:
72:ida/:c:0:%d:16:p:16:Compaq Intelligent Drive Array - Controller %d
73:72:1:
74:72:2:
75:72:3:
76:72:4:
77:72:5:
78:72:6:
79:72:7:
80:i2o/hd:*:0:a:16:*:16:I2O Disk - Controller %d
81:80:1:
82:80:2:
83:80:3:
84:80:4:
85:80:5:
86:80:6:
87:80:7:
# 88..91: see IDE, dev 3:
#92:0:0:PPDD Encrypted Disk
#93:0:0:NAND Flash Translation Layer not supported
94:dasd:*:0:a:64:*:4:IBM S/390 DASD Block Storage (dasda, dasdb, ...)
#95:0:0:IBM S/390 VM/ESA Minidisk
#96:0:0:NODEV
#97:0:0:CD/DVD packed writing devices not supported
98:ubd:*:0:d:256:*:1:User-mode Virtual Block Devices (ubd0..ubd256)
#99:0:0:JavaStation Flash Disk
#100:0:0:NODEV
101:amiraid/ar:*:0:d:16:p:16:AMI HyperDisk RAID (amiraid/ar0 - amiraid/ar15)
#102:0:0:Compressed Block Device
#103:0:0:Audit Block Device
104:cciss:/c:0:%d:16:p:16:HP SA 5xxx/6xxx (cciss) Controller %d
105:104:1:
106:104:2:
107:104:3:
108:104:4:
109:104:5:
110:104:6:
111:104:7:
112:iseries/vd:*:0:a:32:*:8:IBM iSeries Virtual Disk (.../vda - .../vdaf)
#113:0:0:CDROM - IBM iSeries Virtual
# 114..159 NODEV
120:emcpower:*:0:a:16:*:16:EMC PowerPath Unit %d
#160:sx8/:*:0:d:8:p:32:Promise SATA SX8 Unit %d
#161:160:1:
160:carmel/:*:0:d:8:p:32:Carmel 8-port SATA Disks (carmel/0 - carmel/7)
161:160:1:
# 162..198 UNUSED
180:ub:*:0:a:32:p:8:USB block devices
#199:0:0:Veritas Volume Manager (VxVM) Volumes
#200:0:0:NODEV
#201:0:0:Veritas VxVM Dynamic Multipathing Driver
202:xvd:*:0:a:16:p:16:Xen Virtual Block Device
# 203..230: UNUSED
232:emcpower:*:0:a:16:*:16:EMC PowerPath Unit %d
233:232:1:
234:232:2:
235:232:3:
236:232:4:
237:232:5:
238:232:6:
239:232:7:
240:232:8:
241:232:9:
242:232:10:
243:232:11:
244:232:12:
245:232:13:
246:232:14:
247:232:15:
# 240..254: LOCAL/Experimental
# 255: reserved for big dev_t expansion


















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值