修改ubuntu服务器fs文件最大打开数

ubuntu系统优化,调整文件描述符,调整内核增加连接数 云服务器调整文件描述符,调整内核增加连接数。 阅读详情

起因

在对项目进行压测的时候,请求异常 java.net.SocketException: socket closed,查看nginx代理服务器的日志。tail -f -n500 /var/log/nginx/error.log 显示 文件打开数太多socket() failed (24: Too many open files) while connecting to upstream
在这里插入图片描述

解决

通过查看linux系统限制命令ulimit 命令来查看系统文件限制。

ulimit -Hn
ulimit -Sn
// 结果显示:1024,当前登陆用户不是root用户。

ulimit -Hn 是一个命令行命令,可以用来查看当前系统用户所能打开的最大文件描述符数量的硬限制。文件描述符是操作系统为了表示和操作文件而提供的一种机制,每个文件描述符都是一个非负整数,用来标识打开的文件或者管道。
-H 参数表示显示硬限制(hard limit),即系统管理员为当前用户设置的最大限制值。-n 参数表示显示文件描述符数量。通常情况下,硬限制是软限制(soft limit)的上限,也就是可以修改的最大。
-S 参数表示显示软限制(soft limit),即当前用户可以打开的文件描述符数量的默认值。-n 参数表示显示文件描述符数量。
软限制是当前用户可以打开的文件描述符数量的默认值,用户可以通过 ulimit -n 命令来查看和修改软限制。通常情况下,硬限制是软限制的上限,也就是可以修改的最大值。
如果想要修改软限制,一般可以使用 ulimit -n 命令进行修改。需要注意的是,软限制不能超过硬限制。如果软限制超过了硬限制,那么修改软限制时会失败。

编辑文件 /etc/security/limits.conf 修改用户打开文件数上限

* soft nofile 1048576
* hard nofile 1048576

在这里插入图片描述

⚠️ nginx服务器可以打开的文件数量受你操作系统的限制,编辑 /etc/sysctl.conf

fs.file-max = 6553560

在这里插入图片描述
最后 刷新文件配置

sysctl -p

当再次通过命令 ulimit -Sn 查看用户可以打开上限时,结果就是自己修改后的值。
⚠️ 如果是修改前的会话窗口 查看结果依然是 1024,可以重新打开一个窗口查看。

参考

Ubuntu PXE安装服务器部署 Ubuntu PXE安装服务器部署 通过PXE自动进行服务器操作系统的安装是大规模服务器运维过程中的必要手段,本文档详细描述PXE服务器的部署和配置。 PXE自动服务器安装原理(以下内容来自互联网) PXE(Pre-boot execution environment)是intel公司开发的一个技术,支持工作站从远程服务器上下载镜像,并由此启动操作系统。在启动过程中,终端请... 阅读详情

相关推荐

Ubuntu 14.04挂载 NFS 服务器根文件系统

电脑(服务器),ARM(客户端) 1、挂载NFS文件系统的原因 在服务器中开辟一部分内存,可以使服务器和客户端共享(读写操作,如果不能写入,需要修改文件的权限) 挂载了共享根文件系统后,服务器和开发板就链接在一起了,可以直接通信。 2、Ubuntu 14.04上安装NFS及配置 安装nfs 服务器 sudo apt-get install nfs-kernel-server 创建一个共享文件夹 ...

Han的博客 930

Ubuntu 配置打开文件限制

Ubuntu 配置打开文件限制

mixboot 1981

运维系列&Linux系列【仅供参考】:Ubuntu 16 永久修改ulimit中的max file open限制

Ubuntu 16 永久修改ulimit中的max file open限制

weixin_54626591的博客 262

Ubuntu 20.04 永久修改 最大文件打开数量和最大线程数量

Ubuntu 20.04 永久修改 最大文件打开数量和最大线程数量

一个标题 3484

Docker深度详解:从原理到实践的全方位指南

本文深入解析了Docker容器化技术的核心原理与实战应用。主要内容包括:1) Docker核心架构与优势,对比容器与虚拟机的关键差异;2) 企业级部署方案,涵盖离线安装与多镜像源配置;3) 高级镜像构建技术,如参数化构建、缓存优化及安全扫描;4) 容器生命周期管理,包括健康检查、资源限制及数据持久化方案。文章提供了丰富的代码示例和生产级配置建议,如使用Trivy进行安全扫描、精确控制容器资源等技术细节,帮助开发者全面掌握现代容器化技术。

weixin_42593797的博客 1281

拆解一个带主动均衡的BMS模块:从变压器、MOS管矩阵到控制逻辑,图文详解内部设计与成本构成

本文深度拆解了一款带主动均衡功能的BMS模块,详细解析了其核心架构、元器件选型与成本构成。通过高频变压器、MOS管矩阵等硬件设计,该模块实现了高达87%的能量转移效率,远超普通被动均衡方案。文章还揭示了汽车级PCB设计、软件策略优化等关键技术细节,为锂电池管理系统设计提供了实用参考。

weixin_42638178的博客 348

Ubuntu20.04,最大文件打开数永久修改

但是重启之后在查,发现还是1024,文件内容更改没问题,但是ulimit -n去查一直是他妹的1024,有人说可能是limits.d下的配置高于security/limit.conf.要去改limits.d,但是我们limits.d里面是空白的(可能因为是虚拟机的原因?其中,最大文件打开数用处很多,对于我来说最常用到的地方就是我要看日志,当tail或者more的时候如果只是1024是打不开的。之前一直用的centos,冷不丁的项目换成了ubuntu,表面看很多问题一样,其实不瞪大眼容易踩坑。

qq_48410426的博客 2196

玩转ubuntu18 --机器视觉方面(yolo算法识别及摄像头和cmake问题解决)

玩转ubuntu18 --机器视觉方面(yolo v3算法识别) 1.YOLO的简介 工作原理 先前的检测系统重新调整分类器或本地化器以执行检测。他们将模型应用于多个位置和比例尺的图像。图像的高分区域被视为检测。 我们使用完全不同的方法。我们将单个神经网络应用于整个图像。该网络将图像划分为区域,并预测每个区域的边界框和概率。这些边界框按预测概率加权。 我们的模型比基于分类器的系统具有几个优势。它在测试时间查看整个图像,因此其预测由图像中的全球上下文提供信息。它还通过单一网络评估进行预测,这与R-CNN等系统

qq_53951823的博客 1556

ubuntu 修改socket最大连接数

在Linux系统上,无论编写应用程序还是测试,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。 在一些开发或测试过程中经常需要涉及到socket最大连接数(也即文件最大打开数)的设置修改,网上能搜索到一些资料,不过很多都不是很管用,本文总结了一下自己...

TigerwolfC的博客 4606

ANSYS Fluent中的声学模型:实用指南

文章摘要 本文介绍了ANSYS Fluent中三种气动声学模拟方法:Ffowcs-Williams & Hawkings(FWH)模型、宽带噪声源模型和波动方程模型。FWH模型适用于外部气动声学问题,需要瞬态流场数据来预测远场噪声;宽带模型基于稳态RANS模拟,可快速识别噪声源位置,适合早期设计阶段;波动方程模型直接求解声波方程,提供全域声压分布,但仅适用于低马赫数流动。文章详细说明了各模型的使用场景、设置步骤和关键参数配置,为工程应用提供了实用指南。

weixin_45793544的博客 1322

硬件作品3----STM32F103RCT6最小系统板MCU配置

电路未调试成功,目前刚打板,后续需要补充或者改版另行注明。

weixin_58364194的博客 5563

7 centos 查看程序文件数量_如何增加Linux中的打开文件数限制

​在Linux中,您可以更改打开文件的最大数量。您可以使用ulimit命令修改此数字。它授予您控制shell启动的资源或由其启动的进程的能力。另请参阅: 按用户级别设置Linux运行进程限制在这个简短的教程中,我们将向您展示如何检查打开文件和文件描述的当前限制,但为此,您需要具有对系统的root访问权限。首先,让我们看看我们如何找到Linux系统上打开的文件描述符的最大数量。查找Linux打开文件...

weixin_34449682的博客 211

基于YOLO的智能视频监控异常行为检测研究:从算法原理到落地部署的全栈实践

本文深入探讨如何利用 YOLO(You Only Look Once)系列算法构建一套端到端的异常行为检测系统。文章首先回顾 YOLOv8 在时空建模上的局限,然后提出“YOLO-STA(Spatio-Temporal Aggregation)”轻量级改进框架,在公开数据集 UCF-Crime 上将异常行为检测的 mAP@0.5 从 72.4 提升到 80.1;接着给出完整训练、推理、部署的 Python 代码(PyTorch + TensorRT),并介绍如何仅用 4 GB 显存的 Jetson Xavi

博客 1330

linux ulimit 修改文件最大数(ubuntu 20.04、CentOS)\su: /bin/bash: Too many open files in system

linux ulimit 查看进程打开的文件描述符号、修改文件最大数(ubuntu 20.04、CentOS)

西京刀客 1万+

PSINS工具箱学习(四)捷联惯导更新算法

原始 Markdown文档、Visio流程图、XMind思维导图见:https://github.com/LiZhengXiao99/Navigation-Learning。

实践出真理,接毕设/课设项目开发指导 607

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Ubuntu 安装配置NFS网络文件系统服务器(详细)

现在我的电脑连接情况:Ubuntu 安装配置NFS服务器(一)安装NFS服务器1.1-安装Ubuntu nfs服务器端:sudo apt-get install nfs-kernel-server很显然,我已经安装过了,继续往下走。1.2-设置共享的文件目录sudo mkdir /home/sl/ding(二)配置NFS服务器2.1-修改配置文件/etc/exports    (默认状态下是没有配...

Tim的嵌入式之旅 9276

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

基于Ubuntu的nfs文件共享服务器搭建

网络文件系统(NFS)是一种允许网络中的计算机通过网络共享资源的文件系统协议。NFS最早由Sun Microsystems公司开发,它使得网络上的不同机器能够像访问本地文件一样访问远程系统上的文件。这种能力极大地增强了资源共享的灵活性和效率,是多用户和多操作系统环境中资源共享的重要工具。具体介绍如下:工作原理优缺点部署方式总的来说,网络文件系统(NFS)是一个强大的工具,用于网络上的文件共享。虽然有其局限性,如安全性和性能问题,但适当配置和管理下,NFS能大幅提升资源共享的效率和灵活性。

zezezezi的博客 3851

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Ubuntu最新版本(Ubuntu22.04LTS)安装nfs服务器及使用教程

nfs全称是(网络文件系统),是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。正是因为nfs文件系统可以使客户端像访问本地文件一样地访问nfs服务器的文件,所以在嵌入式设备开发阶段常常用来挂载到开发板,执行正在开发的程序,这样可以避免频繁地将程序烧录到嵌入式开发板,极大地节省了开发时间。

wkd_007的博客 3万+

linux系统工程师修改打开文件数限制代码教程。服务器运维技术

提示linux文件打开错误,修改linux打开文件数参数。 /etc/pam.d/login 添加 session required /lib/security/pam_limits.so 注意看这个文件的注释 /etc/security/limits.conf 添加nofile 1006154 修改 /etc/rc.local 添加 echo 8061540 > /proc/sy

技术博客 807

ubuntu20.04 突破文件数限制

确保 PAM 配置文件允许文件描述符的增加。通过以上步骤,你可以将 Ubuntu 20.04 系统配置为支持 10 万以上的连接。这种方法是临时的,仅对当前会话有效。如果你希望永久更改限制,需要修改系统配置文件。主要的调整项包括增加文件描述符限制、修改端口范围、调整 TCP 设置和内核缓冲区。这会增加系统可以接受的 TCP 同步连接请求的最大数量,以及增加监听队列的大小。设置完成后,系统应该能够承载大量的并发连接。1.4 修改系统级别的文件描述符限制。3.2 增加 TCP 连接的最大数目。

Henry_Wu001的专栏 1022

7 centos 查看程序文件数量_Linux:谁能打开多少个文件,可以精准控制!只需这行配置。...

引言在Linux中,可以更改打开文件的最大数量。使用ulimit命令修改这个限制值,从而控制文件资源的访问阈值。在本文中,我们将展示如何检查当前打开的文件和文件描述的限制,但有个前提,你得有root权限。root用户本身,或者sudoer组成员。首先,让我们看看如何找出Linux系统上打开的文件描述符的最大数量。查找Linux打开文件限制该值存储在下面的文件内可以看到,该数值显示了用户在每个登录会...

weixin_34388311的博客 253

物联网架构实例—解决Linux(Ubuntu)服务器最大TCP连接数限制

在对物联网网关进行压测的时候,发现在腾讯云部署网关程序,设备接入数量只能达到4000多个长连接,之后就再也无法接入终端了。之前在阿里云部署的时候明明可以到达2万左右,而且腾讯云的这个服务器比阿里云的硬件配置还要高上不少,不至于那么差,随后查阅大量资料终于完美解决。

谁念西风独自凉 3556

《华清远见学习手记》之 在FS2410上搭建servfox视频服务器

在FS2410上搭建servfox视频服务器

boat_man的专栏 1898

ubuntu优化服务器网络连接数,ubuntu下解决高并发socket最大连接数限制,tcp默认1024个连接...

linux系统默认ulimit为1024个访问 用户最多可开启的程序数目。一般一个端口(即一个进程)的最高连接为2的16次方65536通过这个命令 ulimit -n 可以看到默认值为1024查看全局文件句柄数限制(系统支持的最大值)cat /proc/sys/fs/file-max查看每个进程文件句柄数限制ulimit -n第一步,修改/etc/security/limits.conf文件,在文...

weixin_42452580的博客 2578

Ubuntu NFS 服务器的搭建和使用

NFS 是 Network File System 的缩写, 它可以通过网络, 让不同的机器、 不同的操作系统可以共享彼此的文件。NFS 服务器可以让 PC 将网络中的 NFS 服务器共享的目录挂载到本地端的文件系统中, 而在本地端的系统中来看, 那个远程主机的目录就好像是自己的一个磁盘分区一样, 在使用上相当便利;NFS 服务器我们一般是在 ubuntu 上搭建的。 这里的客户端我们使用的是开发板, 我们可以使用开发板A, 挂载开发板 B, 挂载开发板 C, 我们可以挂载好几个客户端。 框图只给大家画出来

yangxueyangxue的博客 6259
上一篇: tomcat启动项目异常Failed to initialize component [org.apache.catalina.webresources.JarResourceSet
Small_StarOne
博客等级 码龄8年 11粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值