Docker通过Cgroup 资源配置

Docker Cgroup资源配置操作 文章目录一、Cgroup二、使用stress工具测试1、权重 -cpu-shares2、CPU周期限制 --cpu-period、--cpu-quota3、CPU Core控制 --cpuset-spus三、CPU配额控制参数的混合使用四、内存限额 一、Cgroup Docker通过Cgroup来控制容器使用的资源配额,包括CPU、内存、磁盘三大方面,基本覆盖了常见的资源配额和使用量控制 Cgroup是Control Groups的缩写,是Linux内核提供的一种可以限制、记录、隔离进程组所使用的物理资源( 阅读详情

一、Cgroup资源配置方法

Docker 通过 Cgroup 来控制容器使用的资源配额,包括 CPU、内存、磁盘三大方面,基本覆盖了常见的资源配额和使用量控制。

Cgroup 是 Control Groups 的缩写,是 Linux 内核提供的一种可以限制、记录、隔离进程组所使用的物理资源(如CPU、内存、磁盘IO等等)的机制,被LXC、docker等很多项目用于实现进程资源控制。

Cgroup 本身是提供将进程进行分组化管理的功能和接口的基础结构,I/O或内存的分配控制等具体的资源管理是通过该功能来实现的。

这些具体的资源管理功能称为Cgroup子系统,有以下几大子系统实现:

blkio设置限制每个块设备的输入输出控制,例如:磁盘、光盘、usb等等
CPU使用调度程序为cgroup任务提供CPU的访问
cpuacct产生cgroup任务的CPU资源报告
cpuset如果是多核心的CPU,这个子系统会为cgroup任务分配单独的CPU和内存
devices允许或拒绝cgroup任务对设备的访问
freezer暂停和恢复cgroup任务
memory设置每个cgroup的内存限制以及产生内存资源报告
net_cls标记每个网络包以供cgroup方便使用
ns命名空间子系统
perf_event增加了对每个group的检测跟踪能力,可以检测属于某个特定的group的所有线程以及运行在特定CPU上的线程

二、使用stress工具测试CPU 和内存

使用Dockerfile来创建一个基于Centos的stress工具镜像。

mkdir /opt/stress
vim /opt/stress/Dockerfile

FROM centos:7
MAINTAINER li
RUN yum install -y wget
RUN wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
RUN yum install -y stress

cd /opt/stress/
docker build -t centos:stress .

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1、权重 --cpu-shares

使用如下命令创建容器,命令中的- -cpu-shares参数值不能保证可以获得1个vcpu或者多少GHz的CPU资源,它仅是一个弹性的加权值。

docker run -itd --cpu-shares 100 centos:stress

说明:默认情况下,每个Docker容器的CPU份额都是1024。单独一个容器的份额是没有意义的。只有在同时运行多个容器时,容器的CPU加权的效果才能体现出来。
例如,两个容器A、B的CPU份额分别为1000和500,在CPU进行时间片分配的时候,容器A比容器B多一倍的机会获得CPU的时间片。但分配的结果取决于当时主机和其他容器的运行状态,实际上也无法保证容器A一定能获得CPU时间片。如果容器A的进程一直是空闲的,那么容器B是可以获取比容器A更多的CPU时间片的。极端情况下,例如主机上只运行了一个容器,即使它的CPU份额只有50,它也可以独占整个主机的CPU资源。

先创建两个容器
容器产生10个子函数进程,设置cpu优先级为512
docker run -tid --name cpu512 --cpu-shares 512 centos:stress stress -c 10

容器产生10个子函数进程,设置cpu优先级为1024
docker run -tid --name cpu1024 --cpu-shares 1024 centos:stress stress -c 10

动态查看容器信息
docker stats

在这里插入图片描述

在这里插入图片描述

2、CPU周期限制 --cpu-period、 --cpu-quota

Docker提供了–cpu-period、–cpu-quota两个参数控制容器可以分配到的CPU时钟周期。

1、–cpu-period 是用来指定容器对CPU的使用要在多长时间内做一 次重新分配。
2、–cpu-quota是用来指定在这个周期内,最多可以有多少时间用来跑这个容器。
3、–cpu-quota是–cpu-period的倍数时,使用多个CPU

与–cpu-stress不同的是,这种配置是指一个绝对值,容器对CPU资源的使用绝对不会超过配置的值。

cpu-period 和 cpu-quota 的单位为微秒(us)。 cpu-period 的最小值为1000微秒,最大值为1秒(10^6 us),默认值为 0.1 秒(100000 us)。
cpu-quota的值默认为-1,表示不做控制。
cpu-period和cpu-quota参数一般联合使用。 

例如:容器进程需要每1秒使用单个CPU的0.2秒时间,可以将 cpu-period 设置为1000000(即1秒),cpu-quota 设置为 200000 (0.2秒)。
当然,在多核情况下,如果允许容器进程完全占用两个CPU,则可以将 cpu-period 设置为100000(即0.1秒),cpu-quota 设置为200000(0.2秒)。

docker run -tid --cpu-period 100000 --cpu-quota 200000 centos:stress
docker exec -it 602299e4f013 bash
cat /sys/fs/cgroup/cpu/cpu.cfs_period_us
100000
cat /sys/fs/cgroup/cpu/cpu.cfs_quota_us
200000

在这里插入图片描述

3、CPU Core控制 --cpuset-spus

对多核 CPU 的服务器,Docker 还可以控制容器运行使用哪些CPU内核,即使用- -cpuset-cpus 参数。
这对具有多CPU的服务器尤其有用,可以对需要高性能计算的容器进行性能最优的配置

docker run -tid --name cpu1 --cpuset-cpus 0-1 centos:stress

执行以上命令需要宿主机为双核,表示创建的容器只能用0、1两个内核。最终生成的cgroup的CPU内核配置如下;

在这里插入图片描述

通过下面指令可以看到容器中进程与 CPU 内核的绑定关系,达到绑定CPU内核的目的。

容器内部第一个进程号pid为1被绑定到指定CPU上运行
docker exec 容器ID taskset -c -p 1

在这里插入图片描述

三、CPU配额控制参数的混合使用

通过cpuset-cpus参数指定容器A使用CPU内核0,容器B只是用CPU内核1
在主机上只有这两个容器使用对应CPU内核的情况,它们各自占用全部的内核资源,cpu-shares 没有明显效果。
cpuset-cpus. cpuset-mems 参数只在多核、多内存节点上的服务器上有效,并且必须与实际的物理配置匹配,否则也无法达到资源控制的目的。
在系统具有多个CPU内核的情况下,需要通过cpuset-cpus参数为设置容器CPU内核才能方便地进行测试。

docker stop `docker ps -qa`
docker run -itd --name cpu3 --cpuset-cpus 0 --cpu-shares 512 centos:stress stress -c 1

docker run -itd --name cpu4 --cpuset-cpus 1 --cpu-shares 1024 centos:stress stress -c 1

在这里插入图片描述

在这里插入图片描述

四、内存限额

与操作系统类似,容器可使用的内存包括两部分:物理内存和Swap.
Docker通过下面两组参数来控制容器内存的使用量。

-m或–memory: 设置(物理)内存的使用限额,例如100M、 1024M.
–memory-swap: 设置内存+ swap的使用限额。
执行如”下命令允许该容器最多使用200M的内存和300M的swap
docker run -it -m 200M --memory-swap=300M progrium/stress --vm 1 --vm-bytes 280M

--vm 1:启动一个内存工作线程
--vm-bytes 280M:每个线程分配280M内存

在这里插入图片描述

默认情况下,容器可以使用主机上的所有空闲内存。
与CPU的cgroups配置类似,Docker会自动为容器在目录/sys/fs/cgroup/memory/docker/<容器的完整长ID>中创建相应cgroup配置文件

如果让工作线程分配的内存超过300M,分配的内存超过限额,stress线程报错,容器退出。

docker run -it -m 200M --memory-swap=300M progrium/stress --vm 1 --vm-bytes 310M

五、Block IO的限制

默认情况下,所有容器能平等地读写磁盘,可以通过设置–blkio-weight参数来改变容器block 10的优先级。
–blkio-weight与–cpu-shares类似,设置的是相对权重值,默认为500。
在下面的例子中,容器A读写磁盘的带宽是容器B的两倍。

docker run -it --name container_A --blkio-weight 600 centos:stress
cat /sys/fs/cgroup/blkio/blkio.weight

docker run -it --name container_B --blkio-weight 300 centos:stress
cat /sys/fs/cgroup/blikio.weight

在这里插入图片描述

1、bps和iops的限制

bps是byte per second,每秒读写的数据量(吞吐量)。
iops 是io per second,每秒IO的次数。
可通过以下参数控制容器的bps和iops:

--device-read-bps,限制读某个设备的bps。
--device-write-bps,限制写某个设备的bps。
--device-read-iops,限制读某个设备的iops。
--device-write-iops,限制写某个设备的iops.

下面的示例是限制容器写/dev/sda的速率为5MB/s.

docker run -it --device-write-bps /dev/sda:5MB centos:stress

dd if=/dev/zero of=test bs=1M count=1024 oflag=direct    //可以按ctrl+c中断查看
#-------------------------输出内容---------------------------------
^C18+0 records in
18+0 records out
18874368 bytes (19 MB) copied, 3.60306 s, 5.2 MB/s

在这里插入图片描述
上图说明:通过dd命令测试在容器中写磁盘的速度。因为容器的文件系统是在 host /dev/sda 上的,在容器中写文件相当于对host /dev/sda 进行写操作。另外,oflag=direct 指定用direct lO方式写文件,这样- -device-write-bps才能生效。
结果表明限速5MB/s左右。作为对比测试,如果不限速,结果如下。

不限速 速度会增加
docker run -it centos:stress
dd if=/dev/zero of=test bs=1M count=1024 oflag=direct
Docker——Cgroup资源配置 Cgroup一、Dcker资源控制的作用二、Cgroup 资源配置方法2.1 使用 stress 工具测试 CPU 和内存2.2 CPU 周期限制2.3 CPU Core 控制2.4 CPU 配额控制参数的混合使用2.5 内存限额2.6 Block IO的限制2.7 bps 和 iops 的限制 一、Dcker资源控制的作用 一般来说,容器默认是没有资源限制的,会最大程度使用宿主机的资源。在Linux主机上,如果内核检测到没有足够的内存来执行重要的系统功能,它会抛出一个OOME(Out Of Memory 阅读详情

相关推荐

零基础学习GPU 系统软件资源(4.1.4)--​​虚拟化与多租户隔离​​​​:​​安全隔离机制​​

cgroups(Control Groups)是 Linux 内核提供的资源隔离与限制机制,可对 CPU、内存、显存、I/O 等资源进行细粒度控制。​ 的联动机制,结合代码示例与实战案例,说明如何通过 Linux 内核级资源限制与动态调度策略实现精细化资源管理。cgroups 与 QoS 策略的联动为多租户环境提供了 ​。​是保障公平性与稳定性的核心机制。在多租户共享 GPU 的场景中,​。

xiaoheshang_123的博客 773

Docker基础-cgroup

cgroups(Control Groups) 是 linux 内核提供的一种机制,这种机制可以根据需求把一 系列系统任务及其子任务整合(或分隔)到按资源划分等级的不同组内,从而为系统资源管理提供一个统一的框架。简单说, cgroups 可以限制、记录任务组所使用的物理资源。本质上来说, cgroups 是内核附加在程序上的一系列钩子(hook),通过程序运行时对资源的调度触发相应的钩子以达到资源追踪和限制的目的。

可乐不解渴 1715

半导体工厂自动化实战:用secs4net实现设备与MES系统通信(附完整代码)

本文详细介绍了如何利用secs4net框架实现半导体工厂设备与MES系统的高效通信。通过解析SECS/GEM协议的核心架构、关键业务场景实现及性能优化实践,帮助开发者快速掌握工业自动化通信技术,提升生产效率和系统稳定性。

transformer2023的博客 893

cgroup基础介绍

一项新概念的产生,必然有其原因,cgroup也不例外,最初由谷歌工程师Paul Menage和Rohit Seth提出【1】:因为计算机硬件能力越来越强大,为了提高机器的使用效率,可以在同一台机器上运行不同运算模型的工作。开始是用process container来命名,后来因为Container有多重含义容易引起误解,就在2007年更名为Control Groups,并被整合进2.6.24内核,...

内核工匠 4558

IBIS模型中的Pullup和Pulldown曲线详解:如何避免信号完整性设计中的常见错误

本文深入解析IBIS模型中Pullup和Pulldown曲线的关键作用,揭示其在信号完整性设计中的黄金法则。通过详细分析曲线特性、常见误区及验证方法,帮助工程师避免设计错误,优化高速PCB设计。文章还展示了曲线数据在动态终端匹配、串扰预测和电源完整性分析中的高级应用,提升设计效率和可靠性。

weixin_30275415的博客 451

跨境TRS投资操作指南与系统解决方案

3 点击【申请 TRS 账户】,查看风险披露,录入账户参数、确定录入的参数信息,进行身份验证,输入验证码,TRS 账户开户申请已提交,后台对已提交的 TRS 开户申请进行审核,审核成功后,短信邮箱提醒,进行登录;2.点击【申请TRS账户】,查看风险披露,录入账户参数、确定录入的参数信息,进行身份验证,输入验证码,TRS账户开户申请已提交,后台对已提交的TRS开户申请进行审核,审核成功后,短信邮箱提醒,进行登录;4)更广泛的投资选择:相比A股通,TRS可以交易更多的A股标的,提供了更广泛的投资选择。

2401_85487119的博客 2853

Docker资源(CPU/内存/磁盘IO/GPU)限制与分配指南

什么是cgroup? cgroups其名称源自控制组群(control groups)的简写,是Linux内核的一个功能,用来限制、控制与分离一个进程组(如CPU、内存、磁盘输入输出等)。 什么是Docker资源限制? 默认情况下,Docker容器是没有资源限制的,它会尽可能地使用宿主机能够分配给它的资源。如果不对容器资源进行限制,容器之间就会相互影响,一些占用硬件资源较高的容器会吞噬掉所有的硬件资源,从而导致其它容器无硬件资源可用,发生停服状态。 Docker提供了限制内存,CPU或磁盘IO的方法, 可以

吃果冻不吐果冻皮 5796

Jenkins离线安装保姆级教程:从下载.war包到SVN+Maven项目一键部署(附避坑脚本)

本文详细介绍了Jenkins离线安装的全流程,包括.war包下载、SVN+Maven项目配置及自动化部署。特别针对内网环境提供解决方案,涵盖插件管理、开发工具链配置、构建触发器和SSH部署等关键步骤,帮助企业在网络隔离环境下实现高效持续集成。

weixin_30096975的博客 375

k8s中GPU虚拟化工具gpu-manager的安装

k8s中GPU虚拟化工具gpu-manager的安装

紫空的博客 7567

【33】软考软件设计师——算法题(二):贪心法与回溯法深度精讲|第4题进阶满分攻略

本文是《软件设计师·50讲通关|从零基础到工程师职称》专栏第33篇,承接第32篇分治法与动态规划,聚焦**下午第4题算法大题进阶核心**,详解贪心法与回溯法两大高频难点算法。全文超4000字深度拆解贪心法核心原理、贪心选择性质、局部最优推全局最优的底层逻辑,厘清贪心算法适用边界与经典误区;深挖回溯法深度优先遍历思想、递归回溯三步流程、可行性剪枝与最优性剪枝两大核心技巧;全覆盖活动选择、零钱兑换、01背包贪心禁区、八皇后、全排列等软考必考经典题型;配套标准化算法框架代码、考场填空模板、剪枝优化实操案例

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 440

别再被 SerialPort 坑了!C# 串口通信的 3 大隐形陷阱与工业级解决方案

NET的SerialPort类更适合实验室调试,而非工业现场——它的设计目标是“能用”,而非“稳定”。工业级串口通信的核心,是在SerialPort基础上构建一层“防护壳”,用主动轮询对抗事件失效,用硬件级操作解决缓冲区谎言,用原子性流程避免关闭死锁。本文提供的类已在30+工业项目中验证(包括汽车生产线、智能仓储、环境监测),可直接替换原生SerialPort,解决90%以上的“玄学问题”。记住:工业场景的“稳定”,从来都不是靠运气,而是靠对每个细节的偏执把控。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 746

Docker优化——Cgroup资源配置

这里写目录标题前言一 Croup简介二 使用stress工具测试CPU和内存2.1查看两个容器的CPU使用率 。2.2 CPU 周期限制2.3 CPU Core 控制2.4 CPU 配额控制参数的混合使用三 内存限额四 Block IO 的限制五 bps 和 iops 的限制 前言 Docker通过Group来控制容器的使用的资源配置,包括CPU,内存,磁三打方面,基本覆盖了常见的资源配置和使用量控制 一 Croup简介 Cgroup是Control Groups 的缩写,是Linux内核提供的一种可以限

weixin_48185643的博客 447

低光照图像增强:从传统方法到深度学习

低光照图像增强:从传统方法到深度学习​ 人工智能,计算机视觉,大模型,AI,本文聚焦视觉模型的偏差与公平性问题,阐述了偏差在性别、种族、年龄等方面的表现及对医疗、司法、安防等领域的影响。分析了偏差源于数据采集与标注问题及算法局限。介绍了准确率差异等公平性评估指标、相关数据集和工具,还给出数据处理、算法改进、模型训练等避免歧视的策略,并附代码示例与实际案例,为提升视觉模型公平性提供多方面参考。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 2万+

docker 使用Cgroup资源配置的方法

目录一. Cgroup 资源配置的概述二. 使用stress工具测试CPU和内存使用状况2.1 安装stress工具镜像2.2 容器CPU资源权重分配 --cpu-shares2.3 一. Cgroup 资源配置的概述 Docker通过 Cgroup 来控制容器使用的资源配额,包括 CPU、内存、磁盘三大方面, 基本覆盖了常见的资源配额和使用量控制。 Cgroup 是 Control Groups 的缩写,是Linux 内核提供的一种可以限制、记录、隔离进程组所使用的物理资源(如 CPU、内存、磁盘 IO

weixin_48192495的博客 787

第六节 LLaVA模型数据处理源码解读(input_ids/labels/attention_mask/image,上篇)

本篇文章直接介绍llava模型数据加工部分,整体结构说明llava多模态模型输入数据格式,其中包含input_ids/labels/attention_mask与image格式,并给出对应代码位置与整个数据加工流程。最重要,通过debug给出数据解释与代码解读,也通过一个真实数据给出模型输入格式说明。当你阅读完此篇文章,绝对透彻理解llava数据加工过程与内容。显然,一篇博客是无法呈现整个数据细节,我将继续下篇博客呈现数据细节处理。result = input.ne(3) # torch.ne函数调用。

weixin_38252409的博客 3195

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

docker Cgroup资源配置

docker Cgroup资源配置一、Cgroup相关概念(一)使用压测工具测试centos和stress工具镜像(二)常用的容器cgroup命令1)cpu的限制1.查看容器资源状态2.cpu资源权重限制3.cpu周期限制(基于cpu时间片的概念)4.cpu core 控制5.cpu配额控制参数混合使用2)内存限制3)Block IO的限制3)bps和iops的限制cgroup总结:1.cpu限制2.内存限制3.blkio限制磁盘权重4.磁盘读写,io限制 一、Cgroup相关概念 docker通过cgro

weixin_53567573的博客 950

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Docker Cgroup资源配置

Docker Cgroup资源配置一.简介二.Cgroup 功能及组成三.Cgroup子系统介绍四.Cgroup相关概念及其关系1.相关概念2.相互关系五.实验搭建1.stress工具测试CPU和内存2.CPU周期限制3.CPU Core控制4.CPU配额控制参数的混合使用5.内存限额6.Block IO 的限制7.bps和iops的限制 一.简介 CGroup 是 Control Groups 的缩写,是 Linux 内核提供的一种可以限制、记录、隔离进程组 (process groups) 所使用的物

LI_MINGXUAN的博客 6646

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

玩转docker之Cgroup资源配置

玩转docker之Cgroup资源配置 博主为大家找到一篇比较不错的博客哦!有助于大家了解docker 中的cgroup中的资源配置。 对大家有帮助的话,就去关注一下原创哦! 转载地址:https://www.cnblogs.com/xuhao0705/p/14073525.html 目录摘要一、Cgroup简介二、安装stress工具三、CPU资源分配3.1、运行两个容器3.2、查看内存使用情况四、CPU周期限制五、CPU Core控制5.1、进行CPU Core控制配置

生而无畏,战至终章 333

十七、Docker之Cgroup资源配置

Cgroup,全称Control Groups,是一个非常强大的linux内核工具,它不仅可以限制被namespace 隔离起来的资源,还可以为资源设置权重、计算使用量、操控进程启停等等。Docker通过Cgroup 来控制容器使用资源配额,包括CPU、内存、磁盘三大方面,基本覆盖了对常见的资源配额和使用量控制管理。Cgroup是Linux 内核提供的一种可以限制、记录、隔离进程组所使用的物理资源(如CPU、内存、磁盘lO等等)的机制,被LXC、Docker等很多项目用于实现进程资源控制。

margu_168的博客 2347

使用Cgroup在Docker中进行资源配置

文章目录一、Cgroup资源配置方法二、使用stress工具测试CPU和内存三、CPU周期限制四、CPU Core控制五、CPU配额控制参数的混合使用六、内存限额七、Block IO 的限制八、bps和iops的限制 一、Cgroup资源配置方法 Docker通过Cgroup来控制容器使用的资源配额,包括CPU、内存、磁盘三大方面,基本覆盖了常见的资源配额和使用量控制。 Cgroup是Control Groups的缩写,是Linux内核提供的一种可以限制、记录、隔离进程组所使用的物理资源(如CPU、内存、磁

Gengchenchen的博客 1750

docker资源配置Cgroup

目录

零下二度的博客 577

Docker之Cgroup资源配置

目录一.Cgroup相关概念二级目录三级目录 一.Cgroup相关概念 二级目录 三级目录

wanghaoyang0324的博客 641

Docker-Cgroup资源配置

目录一、Cgroup概述为什么要做资源分配?Cgroup介绍Cgroup 特点二、docker容器资源配置使用 stress 工具测试 CPU 和内存容器的cpu权重控制CPU 周期限制CPU Core 控制CPU 配额控制参数的混合使用内存限额Block IO 的限制bps 和 iops 的限制 一、Cgroup概述 为什么要做资源分配? 容器和虚拟机的区别: 虚拟机不需要做,因为虚拟机在创建的时候已经做了资源分配(配额),(虚拟CPU,虚拟内存,虚拟磁盘等) 而容器共享内核资源,所以需要做Cgroup,

weixin_49780168的博客 628
上一篇: 使用Harbor构建docker私有仓库
下一篇: Kubernetes——基本概念与理论
IHBOS
博客等级 码龄6年 112粉丝 106原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值