Java 15 ZGC堆内存突破2TB?高级工程师都在偷偷测试的配置

第一章:Java 15 ZGC最大堆内存突破2TB的真相

ZGC(Z Garbage Collector)自 Java 11 引入以来,一直是低延迟垃圾回收器的代表。在 Java 15 中,ZGC 实现了关键性突破:支持最大堆内存超过 2TB,这标志着其正式进入超大堆场景的生产可用阶段。

技术背景与核心改进

此前,ZGC 的最大堆限制为 4GB(实验阶段),后逐步提升至 16TB。Java 15 通过引入“多映射地址空间”技术,解除了对堆大小的硬编码限制。该机制利用操作系统虚拟内存映射能力,将多个虚拟地址段映射到同一物理内存区域,从而实现超大堆管理。
  • 支持最大堆达 16TB(理论值),实际使用中可稳定运行于 2TB 以上
  • 停顿时间始终控制在 10ms 以内,不受堆大小显著影响
  • 适用于大数据分析、高性能缓存、金融实时系统等场景

启用大堆 ZGC 的 JVM 参数配置

要在 Java 15 中启用支持超大堆的 ZGC,必须正确设置以下 JVM 参数:
# 启用 ZGC 并设置堆大小为 3TB
java \
  -XX:+UseZGC \
  -Xmx3T \
  -Xms3T \
  -jar application.jar
上述命令中:
  • -XX:+UseZGC:启用 ZGC 垃圾回收器
  • -Xmx3T:设置最大堆为 3TB(支持 T/G/M 单位)
  • -Xms3T:初始堆大小与最大堆一致,避免动态扩展开销

性能对比:ZGC 与其他 GC 的大堆表现

GC 类型最大堆支持平均暂停时间适用场景
G1GC~1TB100-500ms中大型堆应用
Shenandoah2TB<50ms低延迟服务
ZGC (Java 15)16TB<10ms超大堆 + 超低延迟
ZGC 在 Java 15 中的这一突破,依赖于 Linux 上的 mmap 和虚拟内存重映射机制,确保即使在数 TB 级堆下仍能保持极低的 GC 暂停时间。这一能力使其成为未来大规模 Java 应用的首选 GC 方案。

第二章:ZGC核心机制与大堆内存支持原理

2.1 ZGC并发标记与转移的底层实现

ZGC(Z Garbage Collector)通过并发标记与转移机制,在极低停顿的前提下完成垃圾回收。其核心在于读屏障与染色指针技术的协同。
并发标记阶段
标记过程与应用线程并发执行,利用读屏障触发对象引用的访问检查。当对象被访问时,ZGC通过染色指针中的元数据位判断是否已标记。

// 伪代码:读屏障触发标记
void LoadBarrier(void* addr) {
  if (IsRemapped(addr)) {
    void* resolved = ResolveForwarded(addr); // 解决转发指针
    StoreToLoadLocation(addr, resolved);
  }
}
上述逻辑确保在对象访问时自动完成指针重定向与标记传播,避免STW。
对象转移并发化
ZGC将对象转移操作分布到多个GC周期中,并使用转发指针(forwarding pointer)记录新位置。所有引用通过读屏障统一重定向。
阶段并发性关键动作
标记遍历对象图,设置标记位
转移移动对象并更新指针映射

2.2 多映射技术如何支撑超大堆内存

在处理超大规模堆内存时,传统单一地址映射机制面临虚拟内存碎片和映射表膨胀的问题。多映射技术通过将堆划分为多个逻辑区域,每个区域独立映射到物理内存,显著提升内存管理的灵活性与效率。
分段映射架构
采用多映射策略,JVM 可将堆划分为年轻代、老年代、元空间等多个区域,各自拥有独立的虚拟地址空间映射:

// 示例:内存区域映射结构
struct MemoryRegion {
    void*  virtual_base;   // 虚拟地址起始
    size_t size;
    int    fd;             // 对应文件描述符(如hugetlbfs)
    off_t  offset;         // 映射偏移
};
上述结构体定义了每个内存区域的映射参数,通过 mmap 系统调用实现按需映射,支持使用大页内存(HugeTLB)减少页表项数量。
性能优势对比
特性单映射多映射
地址连续性
TLB 效率
扩展性受限优异
多映射结合操作系统的大页支持,有效降低 TLB Miss 率,为 TB 级堆内存提供可伸缩的底层支撑。

2.3 加载屏障与读屏障的性能代价分析

内存屏障的基本作用
加载屏障(Load Barrier)和读屏障(Read Barrier)用于确保特定内存操作的顺序性,防止CPU或编译器进行非法重排序。它们在并发编程和垃圾回收中尤为关键。
性能开销对比
  • 加载屏障会阻塞后续读操作,直到前置条件满足
  • 读屏障在对象访问时插入检查逻辑,增加间接成本
// 示例:读屏障在GC中的典型应用
func readBarrier(ptr *Object) *Object {
    if needWriteBarrier(ptr) {
        recordObjectAccess(ptr)
    }
    return ptr
}
上述代码在每次指针读取时引入条件判断和可能的写记录,影响流水线效率。
实际影响因素
因素对性能的影响
执行频率高频访问加剧延迟累积
缓存局部性屏障导致缓存未命中上升

2.4 NUMA感知与大内存服务器的适配策略

现代大内存服务器普遍采用NUMA(Non-Uniform Memory Access)架构,不同CPU节点访问本地内存的速度远高于远程内存。为最大化性能,应用程序需具备NUMA感知能力。
内存分配策略优化
通过绑定线程与特定NUMA节点,可减少跨节点内存访问。Linux提供`numactl`工具进行策略控制:
numactl --cpunodebind=0 --membind=0 ./app
该命令将进程绑定至NUMA节点0,确保CPU和内存位于同一节点,降低延迟。
运行时内存管理
在多线程应用中,建议使用libnuma库动态分配本地内存:
  • 调用numa_node_of_cpu()确定线程所在节点
  • 使用numa_alloc_onnode()在指定节点分配内存
  • 避免频繁跨节点通信,提升缓存局部性
合理配置NUMA策略可显著提升大内存场景下的系统吞吐量与响应速度。

2.5 Java 15中ZGC对堆大小限制的解除细节

ZGC(Z Garbage Collector)在Java 15中正式移除了堆大小的上限限制,不再局限于之前的16TB。这一改进使得ZGC能够支持更大规模的堆内存,适用于超大内存场景下的低延迟需求。
关键变更点
  • 取消了对最大堆大小的硬编码限制
  • 优化了地址空间映射机制,支持更灵活的堆扩展
  • 增强了元数据区管理能力,避免大堆下的元空间瓶颈
启用方式与参数示例
java -XX:+UseZGC -Xmx16T MyApplication
该命令启动应用并使用ZGC,最大堆设为16TB。理论上,只要系统资源允许,可进一步提升。
性能影响分析
堆大小范围暂停时间表现适用场景
< 4TB< 10ms常规服务
> 8TB< 20ms大数据处理、金融实时系统

第三章:配置实践与关键参数调优

3.1 启用ZGC并设置超大堆的基本JVM参数

为了在Java应用中启用ZGC(Z Garbage Collector)并支持超大堆内存,需配置特定的JVM启动参数。ZGC适用于需要低延迟且堆内存较大的场景,可支持TB级堆。
基本启用参数
-XX:+UseZGC -Xmx16g
该命令行启用ZGC并设置最大堆为16GB。其中 -XX:+UseZGC 激活ZGC收集器,-Xmx 定义堆上限。ZGC在JDK 11+中可用,需确保使用兼容版本。
扩展配置示例
  • -Xms8g:初始堆大小设为8GB,避免动态扩容开销;
  • -XX:+UnlockExperimentalVMOptions:在旧版本JDK中启用实验性功能;
  • -XX:ZGCLog=gc:开启GC日志便于监控。
合理配置可实现毫秒级停顿与高吞吐的平衡。

3.2 MaxMetaspaceSize与Native Memory的协同控制

JVM 的元空间(Metaspace)使用本地内存存储类元数据,其大小受 MaxMetaspaceSize 参数限制。若未设置该值,Metaspace 可能持续增长,侵占过多原生内存,导致系统级内存压力。
参数配置示例
-XX:MaxMetaspaceSize=256m -XX:CompressedClassSpaceSize=128m
上述配置限制元空间最大为 256MB,其中压缩类指针空间固定为 128MB。超过限制后,JVM 触发 Full GC 并尝试类卸载,若仍无法满足需求,则抛出 OutOfMemoryError: Metaspace
与原生内存的协同机制
  • Metaspace 动态扩容依赖原生内存可用性
  • 操作系统内存不足时,即使未达 MaxMetaspaceSize,分配也会失败
  • 合理设置上限可防止 JVM 因过度占用 native memory 被 OS 终止

3.3 GC日志分析与大堆场景下的监控要点

在大堆内存(如超过32GB)的JVM应用中,GC行为直接影响系统稳定性与响应延迟。合理解读GC日志是性能调优的前提。
启用详细GC日志输出

-XX:+PrintGCDateStamps
-XX:+PrintGCDetails
-Xloggc:/path/to/gc.log
-XX:+UseGCLogFileRotation
-XX:NumberOfGCLogFiles=5
-XX:GCLogFileSize=100M
上述参数开启细粒度GC日志记录,包含时间戳、各代内存变化、停顿时间及GC类型。日志轮转机制防止磁盘溢出。
关键监控指标
  • Full GC频率:频繁触发可能暗示内存泄漏或元空间不足;
  • GC停顿时长:特别是老年代回收,应控制在毫秒级以内;
  • 堆内存使用趋势:观察Eden区对象晋升速率是否异常。
大堆场景优化建议
问题对策
长时间STW切换至ZGC或Shenandoah收集器
对象晋升过快增大年轻代或调整Survivor比例

第四章:真实环境测试与性能验证

4.1 搭建2TB+堆内存测试环境的硬件要求

构建支持2TB以上堆内存的JVM测试环境,首先需确保底层硬件具备足够的内存容量与带宽。推荐使用NUMA架构的多路服务器,配备至少2TB DDR4或DDR5内存,并启用内存交错以优化访问延迟。
关键硬件配置建议
  • CPU:双路AMD EPYC或Intel Xeon Scalable处理器,提供高内存带宽和核心密度
  • 内存:2TB+ Registered ECC RAM,运行在最大支持频率(如3200MHz)
  • 存储:NVMe SSD用于快速交换分区和日志输出,避免I/O瓶颈
  • 操作系统:64位Linux(如CentOS Stream 8或Ubuntu 22.04 LTS),启用大页支持
JVM启动参数示例
java -Xms2T -Xmx2T \
  -XX:+UseG1GC \
  -XX:MaxGCPauseMillis=500 \
  -XX:+AlwaysPreTouch \
  -XX:+UseLargePages \
  -jar application.jar
上述参数中,-Xms2T -Xmx2T 设置堆初始与最大值为2TB;-XX:+AlwaysPreTouch 强制JVM启动时预分配所有堆内存,避免运行时页面分配开销;-XX:+UseLargePages 启用大页内存,减少TLB缺失,提升访问效率。

4.2 压力测试工具选型与工作负载设计

在压力测试中,工具选型直接影响测试效率与结果准确性。主流工具有 JMeter、Locust 和 wrk,各自适用于不同场景:JMeter 支持图形化操作,适合复杂业务流程;Locust 基于 Python,易于编写自定义脚本;wrk 则以高性能著称,适合轻量级高并发测试。
典型工具对比
工具语言支持并发能力适用场景
JMeterJava中高功能复杂、多协议测试
LocustPython动态行为模拟
wrkC/Lua极高HTTP 性能压测
工作负载设计示例

from locust import HttpUser, task, between

class WebsiteUser(HttpUser):
    wait_time = between(1, 5)

    @task
    def load_test_page(self):
        self.client.get("/api/v1/products")
该脚本定义了用户行为:每秒发起 1~5 次请求,访问产品接口,模拟真实用户浏览。通过调整用户数和分布策略,可构建阶梯式、峰值或稳定负载模型,精准反映系统在不同压力下的表现。

4.3 GC暂停时间与吞吐量的实测对比

在JVM性能调优中,GC暂停时间与吞吐量的权衡至关重要。通过不同垃圾回收器的实测数据可清晰观察其差异。
测试环境配置
采用以下参数运行应用:

java -Xms4g -Xmx4g -XX:+UseG1GC \
-XX:MaxGCPauseMillis=200 \
-XX:+PrintGCApplicationStoppedTime \
-XX:+PrintGCDetails \
-jar app.jar
其中 -XX:MaxGCPauseMillis=200 设定最大暂停目标,-XX:+UseG1GC 启用G1回收器以平衡延迟与吞吐。
性能对比结果
GC类型平均暂停(ms)吞吐量(ops/sec)
Parallel GC15048,000
G1 GC4540,200
ZGC836,500
数据显示:随着暂停时间降低,吞吐量呈下降趋势。ZGC实现亚毫秒级停顿,但吞吐能力较Parallel GC下降约24%。

4.4 内存泄漏风险与长期运行稳定性观察

在长时间运行的Go服务中,内存泄漏是影响稳定性的关键因素之一。不当的资源管理,如未关闭的goroutine、泄露的缓存引用或未释放的文件描述符,可能导致内存持续增长。
常见泄漏场景分析
  • goroutine阻塞导致栈内存无法回收
  • 全局map缓存未设置过期机制
  • timer未正确调用Stop()引发的引用滞留
典型代码示例

var cache = make(map[string]*bigStruct)
func leakyAdd(key string) {
    if _, exists := cache[key]; !exists {
        cache[key] = new(bigStruct) // 无清理机制
    }
}
上述代码在无限增长的key场景下会持续占用堆内存,应引入LRU或TTL机制控制生命周期。
监控建议
定期通过pprof采集heap profile,结合runtime.MemStats观察alloc_inuse和sys的变化趋势,及时发现异常增长模式。

第五章:未来展望——ZGC在超大规模服务中的演进方向

弹性堆内存管理
ZGC正朝着支持动态弹性堆内存的方向发展,尤其适用于云原生环境下的自动扩缩容场景。通过与Kubernetes的Resource API集成,JVM可在节点资源变化时动态调整堆大小,避免因固定堆配置导致的资源浪费或OOM。
  • 利用容器cgroup v2接口实时感知可用内存
  • 结合ZGC的并发重映射机制实现堆区域的热插拔
  • 阿里云某核心交易系统已实现峰值期间堆容量自动扩容至64GB
跨代引用优化策略
针对超大规模服务中频繁的跨代引用问题,ZGC正在引入分层标记缓存(Hierarchical Mark Cache)。该结构将G1中的Remembered Set理念扩展到并发场景,显著降低年轻代回收时的扫描开销。
// 启用实验性分层标记缓存(JDK 21+)
-XX:+UseZGC
-XX:+ZUseHierarchicalMarkCache
-XX:ZMarkCacheSize=512m
与硬件协同的延迟控制
现代NUMA架构对低延迟GC提出新挑战。ZGC通过绑定线程到特定CPU套接字,并结合Intel AMX指令集进行根扫描加速,在拼多多的订单处理集群中实现了P99 GC延迟稳定在8ms以内。
集群规模堆大小P99延迟吞吐下降
1200节点32GB7.8ms≤3%
800节点64GB11.2ms≤5%
故障自愈机制增强

GC触发 → 检测到标记位翻转异常 → 启动安全模式扫描 → 隔离损坏区域 → 触发全堆并发修正 → 恢复正常周期

已经博主授权,源码转载自 https://pan.quark.cn/s/fb533687a163 《C++经典代码大全》是一部专门针对C++入门者的重要参考资料,其核心目标在于提供易于理解的C++编程范例,旨在协助新学者迅速领会C++语言的关键概念与技术要点。此压缩文件所包含的信息或许涵盖了从基础到高级的各类C++编程技巧,涉及面向对象编程中的类与对象、函数的应用、程序流程控制、数据结构设计、模板技术以及异常管理等多个关键领域。 1. **基础语法** - 变量声明与初始化:掌握如何声明并初始化不同数据类型的变量,例如整型(int)、浮点型(float)、字符型(char)等。 - 基本输入输出:学习运用`std::cin`和`std::cout`执行标准数据输入与输出操作。 - 控制流语句:熟练运用条件语句(if、if-else、switch-case)以及循环语句(for、while、do-while)来控制程序流程。 2. **类与对象** - 类的定义:学会如何构建类,包含其成员变量与成员函数的设定。 - 对象的创建与使用:掌握如何实例化对象,并经由对象访问类的成员函数。 - 封装:理解封装的理念,并学习使用private和public访问修饰符来保护数据。 - 构造函数与析构函数:掌握如何为类定义自定义的构造过程与析构过程。 3. **函数** - 函数的定义与调用:理解函数的功能与作用,以及如何进行函数的定义和调用。 - 函数参数:精通不同类型的参数传递方法,包括值传递和引用传递。 - 函数重载:学习在同一作用域内定义多个具有相同名称但参数列表不同的函数。 - 函数指针:了解函数指针的运用方法,及其在回调函数和模板中的应用场景。 4. **数组与字符串** -...
内容概要:本文研究了一种计及自适应预测修正的微电网模型预测控制(MPC)优化调度方法,并提供了Matlab代码实现。该方法针对微电网中风电出力等可再生能源的强不确定性,引入自适应预测修正机制,动态调整预测模型以提升短期功率预测精度,从而增强调度决策的准确性与系统运行的鲁棒性。研究构建了完整的MPC滚动优化框架,涵盖预测模型建立、多时间尺度优化求解、实时反馈校正等关键环节,实现了系统运行成本最小化、能源高效利用与功率平衡的多重目标。所提方法有效应对了负荷波动与新能源出力随机性带来的调度挑战,提升了微电网能量管理系统的智能化水平。; 适合人群:具备电力系统、自动化、控制理论或相关领域基础知识的研究生、科研人员及工程技术人员,尤其适合从事微电网优化、可再生能源集成、模型预测控制研究的专业人士,熟悉Matlab编程与优化算法者更佳。; 使用场景及目标:①应用于高比例可再生能源接入的微电网能量管理系统,提升调度方案的实时性与鲁棒性;②为不确定性环境下电力系统动态优化控制策略的研究提供仿真验证平台;③支持学术论文复现、科研课题攻关及实际工程项目的前期技术验证与方案预研。; 阅读建议:建议结合Matlab代码逐模块分析算法实现细节,重点关注预测模型构建与反馈修正机制的设计逻辑,通过调整风电出力、负荷需求等场景参数进行仿真实验,深入理解MPC在微电网调度中的滚动优化特性与自适应修正能力。
代码下载链接: https://pan.quark.cn/s/a4b39357ea24 在信息技术领域中,字符编码扮演着处理文本数据的核心角色。本文着重研究在微控制器系统中,运用C语言如何将UTF-8编码格式转换为GBK编码格式,旨在处理串口通信、TF卡存储或LCD显示屏上可能出现的中文显示错误问题。我们将详细剖析UTF-8与GBK编码的运作机制,并研究基于Keil开发平台的C语言实现流程。 UTF-8是一种被广泛接纳的Unicode字符编码方案,它采用可变长度的字节序列来表示字符,每个Unicode字符都对应一个独一无二的数字标识,即码点。UTF-8的一个显著特点是对ASCII字符(英文文本)保持不变,因此在网络传输和文件存储方面展现出优秀的兼容性。 GBK编码,正式名称为“汉字内码扩展规范”,是中国大陆的标准化编码,是对GB2312编码的延伸,总共涵盖了20902个汉字及其他符号,每个字符使用两个字节来表示。GBK在GB2312的基础上扩充了许多繁体字、少数民族文字以及特殊符号,目的是满足更广泛的语言需求。 将UTF-8转换为GBK的主要难点在于GBK是一种固定长度的双字节编码,而UTF-8则是可变长度的编码。转换过程中需要将UTF-8的多字节序列解析为相应的Unicode码点,然后依据GBK的编码规则查找匹配的编码。这一过程通常借助查表法完成,即建立一个从Unicode码点到GBK编码的映射库。 在Keil开发环境中,使用C语言实现UTF-8到GBK的转换可以遵循以下步骤: 1. **构建查表法所需的GBK编码库**:需要准备一个包含所有GBK字符二进制形式的GBK编码库。这个库通常是一个二进制文件,其大小大约为41KB。 2. **解析UTF-8编码**...
内容概要:本文提出一种基于CNN-BiGRU-Attention混合神经网络模型的风电功率预测方法,旨在提升风力发电功率预测的精度。该模型面向多变量输入的单步预测任务,首先利用卷积神经网络(CNN)提取风速、风向、温度等气象因素的局部时空特征,再通过双向门控循环单元(BiGRU)充分捕捉时间序列数据的前后向时序依赖关系,最终引入注意力(Attention)机制对关键历史时刻的特征进行自适应加权,强化对预测结果贡献更大的时间步信息,从而显著提高预测准确性。整个模型在Matlab平台上实现,特别适用于处理风电数据固有的强随机性与剧烈波动性,能够有效应对复杂多变气象条件下的功率预测挑战,为电网调度提供高精度的数据支撑。; 适合人群:具备一定机器学习和深度学习理论基础,熟悉Matlab编程语言,从事新能源发电预测、电力系统调度、智能算法开发与应用等相关领域的科研人员、工程技术人员及高校研究生。; 使用场景及目标:①应用于风电场实际运行中的短期功率预测,为电网的安全稳定调度与经济运行提供可靠依据;②作为深度学习在可再生能源预测领域应用的典型案例,帮助学习者深入理解CNN、RNN变体(BiGRU)及Attention机制的协同建模原理与实现方法;③为后续研究多步预测、模型轻量化或网络结构优化等方向提供坚实的技术参考和可复用的代码基础。; 阅读建议:学习者应重点关注模型各组件的设计思路与集成方式,结合提供的Matlab代码,系统掌握数据预处理、模型搭建、训练流程及性能验证的完整环节,建议通过调整输入变量组合、优化网络超参数或替换数据集等方式,观察模型性能变化,以深入理解该混合架构的核心优势与调优策略。
内容概要:本文系统阐述了基于多种改进型灰狼优化算法(包括GWO、MP-GWO、灰狼-布谷鸟混合优化算法及CS-GWO多种群算法)实现的无人机路径规划技术,并配套提供完整的Matlab代码实现方案。研究聚焦于在复杂地形与动态环境中,利用智能优化算法模拟灰狼群体的等级结构与协作捕食机制,以高效搜索全局最优飞行路径,提升无人机避障能力与路径规划精度。相较于传统方法,所采用的混合与多策略改进算法有效缓解了早熟收敛与陷入局部最优的问题,显著增强了算法的探索与开发平衡能力。此外,文档还展示了该技术在多学科交叉领域的广泛应用前景,涵盖路径规划、机器学习、信号处理、电力系统优化等科研方向,体现了较强的技术通用性与工程实用价值。; 适合人群:具备一定编程基础与Matlab使用经验,从事智能优化算法研究、无人机控制、自动导航、路径规划及相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于城市密集区、山区或存在动态障碍物的复杂场景下的无人机三维路径规划与实时避障;②为科研项目提供可复现的智能优化算法实现案例,支撑算法性能对比与创新改进;③服务于学术论文复现、毕业设计、课题开发等实际科研与教学需求,加速研究成果落地。; 阅读建议:建议结合Matlab代码与算法理论同步研习,重点分析各算法的参数设置、收敛特性及路径规划效果图,深入理解其优化机制差异,可进一步拓展至多无人机协同规划、动态环境适应等高级应用场景进行实践验证与创新研究。
已经博主授权,源码转载自 https://pan.quark.cn/s/7d6084144924 Linux系统管理员经常遭遇磁盘空间不足的挑战,这会导致磁盘读写操作受阻,同时使得应用程序无法正常运行。磁盘满载的原因多种多样,包括系统安装规划不当、日志文件急剧膨胀以及网络通信故障等。应对这一问题需要对磁盘空间进行清理和优化。本文将介绍十种磁盘清理策略,旨在帮助用户解决磁盘空间不足的困境。 1. 定期对关键文件系统进行扫描,并进行对比,以分析哪些文件频繁被访问 通过执行 `#IS-IR/home > files.txt` 和 `#diff filesold.txt files.txt` 命令,对重要文件系统实施扫描和对比,识别那些经常被读取和写入的文件,从而预判空间增长趋势,并考虑对不常访问的文件实施压缩,以减少其占用的存储空间。 2. 检查文件系统的 inodes 消耗情况 使用 `#df -i /home` 命令来检查空间文件系统的 inodes 消耗情况,如果仍有大量的 inodes 可用,表明是大文件占用了空间,否则可能是许多小文件占用了空间。 3. 识别占用空间较大的目录 使用 `#du -hs /home` 命令查看 `/home` 所占用的空间,并借助 `#du /awk $1 > 2000` 命令找出 `/home` 下占用空间超过 1000m 的目录。 4. 确定占用空间较大的文件 通过 `#find /home -size +2000K` 命令来找出占用空间较大的文件。 5. 查找最近修改或创建的文件 使用 `#TOUCH -t 08190800 test` 命令为某个文件设定一个特定的时间,然后运用 `#find /home -newer test -...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值