如何快速满足政务云服务器资源占用要求

前言

本文不讨论云平台相关要求以及本文所介绍的处理方式的合理性,只提供处理相关问题的一种思路。

资源占用要求

2024年12月,某地政务云的要求如下:

资源占用审计时间:

从服务器资源交付日起,20 个工作日后。

资源占用审计要求:

  • 磁盘需挂载,并且存储空间占用需超过 50%。
  • CPU 占用率峰值需超过 50%。
  • 内存 占用率峰值需超过 50%。

磁盘占用

Linux

fallocate 是一个用于预分配文件空间的命令行工具,它可以在支持的文件系统上创建指定大小的文件,并且在文件中预留实际磁盘空间。

# 创建一个指定大小的文件
fallocate -l 100G /data/空间占用_可删除

# 删除文件即可释放磁盘空间
# rm /data/空间占用_可删除

Windows

使用 PowerShell 创建特定大小的文件。

$filePath = "E:\空间占用_可删除"
$sizeInBytes = 100GB
$stream = [System.IO.File]::Create($filePath)
try {
   
    $stream.SetLength($sizeInBytes)
} finally {
   
    $stream.Close()
}

内存占用

本文中,通过 JAVA 程序来实现内存和 CPU 资源的占用。通过 JVM -Xms512m -Xmx512m 参数设置初始堆内存和最大堆内存,以达到内存占用的目的。

CPU占用

JAVA 编写 CPU 资源占用程序的主要逻辑如下(实现思路不是很严谨,但能达到目的,仅作参考!):

  • 通过创建一定数量的 JAVA 线程执行计算任务来提高CPU 的使用率。JAVA 线程数占CPU 线程数的比例可粗略理解为 CPU的大致使用率上限(实际会有出入,只做参考)。比如我们的目标是CPU 使用率峰值达到 50%,那么启用的 JAVA线程数与CPU 线程数的比例可以是 0.5,为了更容易达到,可以设置成 0.6。
  • 通过控制 JAVA 线程执行计算任务的随机休息时间或随机计算持续时间,可以实现 CPU 使用率的浮动效果。
  • 通过划分高负载和低负载时段,减轻资源的过度浪费以及对服务器上其他程序的影响。

核心代码参考如下:

import lombok.extern.slf4j.Slf4j;

import java.security.SecureRandom;
import java.time.LocalTime;

/**
 * cpu 资源消费者
 */
@Slf4j
public class CpuResourceConsumer {
   

    private static long THREAD_COMPOTE_TIME = 2000; // 每个Java线程连续执行计算的时间(毫秒)
    private static int THREAD_SLEEP_RANDOM_RANGE = 100;// 线程随机休眠时间(秒)
    private static int THREAD_SLEEP_RANDOM_RANGE_HIGH = 30;
    private static LocalTime HIGH_USAGE_START = LocalTime.parse("14:30"); // 高负载开始时间
    private static LocalTime HIGH_USAGE_END = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值