目前的方案是,单独写一个服务做一些无用功去消耗一部分系统资源,有什么好的方法吗。 基于 springboot
服务器配置已经是最低了不能再降了
1
panlista OP 用 java 怎么去持续的消耗一部分 cpu 和内存呢,可以提供一下思路吗
|
2
rimutuyuan 2022-11-29 16:22:02 +08:00
目前的方案很好,甲方让你怎么做,做好拿到钱就行了
|
3
dolphintwo 2022-11-29 16:22:11 +08:00 2
搭 k8s ,再上 grafana ,elk ,加收服务费
|
4
zepto 2022-11-29 16:22:26 +08:00 6
计算 pai
|
5
wu67 2022-11-29 16:22:49 +08:00
把代码写好很难, 但是把代码写烂还不简单吗? 循环、递归给他满上, 要不就不用 jdk 的排序, 自己手写排序.
|
6
rimutuyuan 2022-11-29 16:22:59 +08:00 6
cpu:模拟挖矿,循环进行 sha256 操作
内存:创建并维护一个 1000W 长度的数组 |
7
cnrting 2022-11-29 16:23:45 +08:00
while 1
|
8
hay313955795 2022-11-29 16:24:21 +08:00 1
甲方是觉得服务器资源占用太少,性价比太低吗?
|
9
bthulu 2022-11-29 16:24:31 +08:00
简单, 下面这个代码就能跑满一个 cpu. 想跑满几个 CPU, 就开几个线程跑这个方法就行了.
``` int i = 0; while(true) { if (i == Integer.Max) { i = 0; } i++; } ``` |
10
xuelu520 2022-11-29 16:25:51 +08:00
给一个大数组排序,排序 N 次
|
11
Leviathann 2022-11-29 16:27:48 +08:00 47
看笑了
|
12
dcsuibian 2022-11-29 16:28:49 +08:00
这种甲方真是呵呵了
|
13
janus77 2022-11-29 16:28:54 +08:00 4
挖矿吧,还能赚钱
|
14
Twan 2022-11-29 16:29:41 +08:00
void fun_c()
{ for(;;){ ++i; float = 10000 % 1000; } //CPU char * ptr = new char[ 10 * 1024 * 1024]; delete ptr; } create_thread(_thread_id, fun_c, ....); 客户: 真棒 一个月后客户: 我们需要加钱优化: 你: 没问题,打钱 |
15
dreasky 2022-11-29 16:30:58 +08:00
哪来这么好的甲方
|
16
shazi199 2022-11-29 16:38:23 +08:00
估计是军政机关或者学校项目
|
17
winglight2016 2022-11-29 16:39:56 +08:00
最简单的不就是在服务器上跑个压测吗?控制好并发数量,用户看着 DAU 蹭蹭往上涨还不开心死了?
|
18
nomagick 2022-11-29 16:45:08 +08:00
服务器啥配置我听听
|
19
dddd1919 2022-11-29 16:49:01 +08:00 1
应该跟甲方解释一下,不是什么数都是越大越好😂
|
20
panlista OP @rimutuyuan 感觉不好控制啊,比如目前 cpu 利用率才 0.51%,达标需要 15%,怎么能保证系统稳定的情况下再多占用 15%左右的 cpu 呢
|
22
676529483 2022-11-29 16:52:52 +08:00
内存简单,jvm 参数里面把最小堆内存提高就行
cpu 要不压测? |
23
0NF09LJPS51k57uH 2022-11-29 16:54:07 +08:00
@panlista 服务器几个核心?按比例起线程 while true 就可以了
|
25
blackeeper 2022-11-29 16:56:20 +08:00 2
shell 脚本就可以搞定了,参考如下:
1 ,CPU 消耗总 CPU 核数的一半,也可以自己指定 ``` #! /bin/sh #消耗总 CPU 核数的一半,也可以自己指定 #启动:cpu.sh >kill_cpu.sh #停止:bash kill_cpu.sh for i in $(seq $(expr $(cat /proc/cpuinfo |grep process |wc -l) / 2) ) do echo -ne " i=0; while true do i=i+1; done" | /bin/sh & pid_array[$i]=$! ; done for i in "${pid_array[@]}"; do echo 'kill ' $i ';'; done ``` 2 ,内存消耗,消耗服务器剩余可用内存的一半,删除 /tmp/memory/block 文件,即可释放内存 ``` #/bin/sh mkdir /tmp/memory memory_size=$(expr $(free -g| awk '{print $NF}' | head -n 2 |tail -n 1) / 2) if [ $memory_size -gt 2 ];then mount -t tmpfs -o size=${memory_size}g tmpfs /tmp/memory dd if=/dev/zero of=/tmp/memory/block fi ``` |
26
eason1874 2022-11-29 16:56:45 +08:00
占用内存直接把程序的预占内存调高就行了
占用 CPU ,写死循环就完事,怕影响程序本身,就再另外写一个定时任务判断,低于多少时才执行,高于多少时就杀掉 |
27
dorothyREN 2022-11-29 16:57:02 +08:00
@rimutuyuan #6 内存还不简单 /dev/shm 下面创建文件就行了 想用多少用多少
|
28
Pantheoon 2022-11-29 16:57:15 +08:00
服务器上起一个循环程序,改下调度参数,按照 1:6 的比例分配,差不多就 15%了
|
29
0NF09LJPS51k57uH 2022-11-29 16:57:21 +08:00
@panlista 你起一个线程 while true 空跑,里面不要 sleep ,这样会一直占用一个核心,使用率会达到 25%
|
30
rimutuyuan 2022-11-29 16:57:49 +08:00
@panlista 好控制啊,通过 sleep 时间,不加时间的话应该是 100%占用
|
31
haha512 2022-11-29 16:57:57 +08:00 1
单起一个线程,每分钟检测 cpu 利用率,发现低于 15% 就运行楼上提供的 while 循环,
高于 30% 就停止执行 |
32
rimutuyuan 2022-11-29 16:58:30 +08:00
@dorothyREN 学到了
|
33
fisherwei 2022-11-29 17:00:00 +08:00 65
lookbusy 解君愁
http://www.devin.com/lookbusy/ lookbusy -c 50 # 占用所有 CPU 核心各 50% lookbusy -c 50 -n 2 # 占用两个 CPU 核心各 50% lookbusy -c 50-80 -r curve # 占用所有 CPU 核心在 50%-80% 左右浮动 lookbusy -c 0 -m 128MB -M 1000 # 每 1000 毫秒,循环释放并分配 128MB 内存 lookbusy -c 0 -d 1GB -b 1MB -D 10 # 每 10 毫秒,循环进行 1MB 磁盘写入,临时文件不超过 1GB https://learnku.com/articles/22744 |
34
sobev 2022-11-29 17:01:21 +08:00
数据全部缓存😏
|
35
koloonps 2022-11-29 17:05:18 +08:00
运行一个 elasticsearch 内存设置成 1g,每一季度一个索引.分分钟触发 GC
|
36
ljh0585 2022-11-29 17:05:22 +08:00
给用户推销新业务啊,利用下空闲的服务器资源
|
37
raysonlu 2022-11-29 17:05:40 +08:00
很简单,让甲方提高自己的业务量吧
|
38
Dkngit 2022-11-29 17:07:40 +08:00
算 hash
|
39
sodayo 2022-11-29 17:07:57 +08:00 via Android 1
nohup stress --cpu 1 --vm 1 --vm-bytes 1G --vm-keep -q >/dev/null 2>&1 &
|
40
mmm159357456 2022-11-29 17:10:06 +08:00
这可真是一个奇怪的需求
|
41
CSGO 2022-11-29 17:13:09 +08:00
挖矿
|
42
cstj0505 2022-11-29 17:13:56 +08:00
我从来没有见过这种要求
|
43
andyskaura 2022-11-29 17:15:50 +08:00
帮我挂一个 sq 服务数据库
|
44
LZSZ 2022-11-29 17:20:17 +08:00
还有这种要求 太坏了😂
|
45
hanguokai 2022-11-29 17:20:44 +08:00 6
我猜甲方是想降低云服务的成本,减少开支,但没有表述清楚。比如当前服务器的配置是 4 核 4G 内存,降到 2 核 2G 内存后,CPU 和内存使用率就都上去了。
|
48
palxie 2022-11-29 17:28:27 +08:00
这种甲方. 不知道是蠢还是坏.
|
49
cmdOptionKana 2022-11-29 17:31:11 +08:00
@hanguokai 对呀,甲方的要求貌似就是云服务最大的优势“弹性资源”
|
50
eason1874 2022-11-29 17:31:33 +08:00
@hanguokai #45 不一定是误会,真有这种要求。我有遇到过,机器买好了,但是甲方那边内部报销对资源利用率有硬性规定,不达标不给报销,然后为了报销就作假
|
51
fengjianxinghun 2022-11-29 17:32:24 +08:00 3
这不是常规操作么? v2 没做过 toB 业务?如果你的 cpu 内存占用这么低,第二年的硬件预算怎么做?
|
52
zpf124 2022-11-29 17:41:13 +08:00
如果人家申请拨款的那些地方,人机一买机器起步就够小企业流口水的了,而且一般产品实际使用人数大多数时候还没三流地方资讯网站多。
你和人家提议控制成本? 人家笑你不懂采购。 |
53
stoneabc 2022-11-29 17:41:28 +08:00 1
提升资源利用率不是个很普遍很正常的需求么……上面这些都是只写代码,从不接触资源的吗?
|
54
zpf124 2022-11-29 17:42:48 +08:00
改错字===>>
如果人家(是)申请拨款的那些地方,人(家)一买机器的起步(规格)就够小 |
55
KNaiFen 2022-11-29 17:46:51 +08:00 2
多余的资源拿来开 VPS 造福兄弟们
|
56
jiom 2022-11-29 17:49:16 +08:00
我之前为运营商工作也是这样~闲置机器就要回收~之前我基本上都是用程序跑满 cpu 和内存
|
57
zpf124 2022-11-29 17:50:56 +08:00 5
@stoneabc 因为大家没多少是吃公家饭的,不明白什么叫富裕。
家里电饭锅煮两人份的饭才用了 1/5 的空间,如何提升锅的利用率? 买个小锅 × 俩人每天努力吃 10 份的饭 × 多做 n 份,然后扔了,第二天接着重新做 √ 反正锅和饭都不用我掏钱,买小锅省下的钱也不给我,反倒是买大锅商家还得送我购物卡。 |
58
monkeyzsf 2022-11-29 17:51:55 +08:00
多余的资源整个 CS1.6 的服务器给兄弟们打游戏
|
59
liyanggyang 2022-11-29 17:53:29 +08:00
手动弄一个文件 加载到内存里面不就好了
|
60
aosan926 2022-11-29 17:54:35 +08:00 1
突然想到编程之美里面第一个题就是拿 CPU 使用率在任务管理里画正弦函数😂
https://tianshu.xyz/blog/108/ |
61
psirnull 2022-11-29 17:54:56 +08:00
xmrig
|
62
hhhhhh123 2022-11-29 18:00:52 +08:00
把个人博客啥的 搭在这个服务器 免费用。。
|
63
hefish 2022-11-29 18:12:08 +08:00
给这种甲方点赞。
|
64
billzhuang 2022-11-29 18:38:28 +08:00 via iPhone
转个 minecraft server 吧。
|
65
nvksie 2022-11-29 19:07:05 +08:00 via Android
甲方是百毒吧,百毒同事说过这奇葩要求
|
66
ajaxgoldfish 2022-11-29 19:22:27 +08:00
歪日,反其道而行
|
67
romisanic 2022-11-29 19:32:44 +08:00
提高利用率,有两种方式,一个是增加使用的资源,一个是减少服务器提供的资源。
现在看起来已经降无可降了。写个应用耗费资源也太不靠谱了。 做个报表啥的,定时统计,也算是个有用的。 其次,还可以把服务多部署几个,每个服务器上都多放几个服务,就用已经部署过的,再部署几个🐶 |
68
la2la 2022-11-29 20:13:41 +08:00
挖 。。 挖。。挖矿?
ps:还能给甲方创收,他以后只会感觉配置不够用,为啥不上天河二号 |
69
ytmsdy 2022-11-29 20:15:48 +08:00
现在 zf 单位都有服务器资源利用率的要求,如果资源利用率太低,应用会被下架的。
|
70
potatowish 2022-11-29 20:48:05 +08:00 via iPhone
在一台上部署 N 个节点,做负债均衡
|
71
inframe 2022-11-29 20:58:58 +08:00
看起来是 toG 的业务
|
72
jorneyr 2022-11-29 21:20:23 +08:00
读文件,计算 MD5
读文件,计算 MD5 读文件,计算 MD5 读文件,计算 MD5 |
73
daiv 2022-11-29 21:58:04 +08:00
@cmdOptionKana #49 应该是, 要是阿里云支持 自动弹性, 那就太好了
|
74
yankebupt 2022-11-29 21:58:43 +08:00
@panlista 有个(可能)不做无用功的方法. 当然根据你的需求也可能完全不适用,先说着
把常用查询用闲时 cpu 提前查询,缓存到内存表。 如果数据量大(比如大于 10000 行),进一步缓存到各种 cache ,因为即使从内存表现查出来也可能要 10ms+ 这样可以把查询时间从 20ms+降到几个 ms ,你还可以说没有做无用功 如果未来会 scale ,把这个功能撤掉 最好是讲讲你的需求类型 |
75
yufeng0681 2022-11-29 22:01:45 +08:00
本质还是开发出来的服务使用的人少,频率低,没有一定的并发量,
1 、为了防止甲方技术人员就懂 linux 进程,也懂具体业务服务,最好还是模拟用户访问,把流程跑起来,比如模拟出 10 个在线用户的访问,如果 CPU 内存还不达标,那就 50 个 100 个在线用户; 2 、刚好也是性能测试的一部分,相当于一直在生产系统上做性能测试; 这样,看上去就是合理的进程在运算, |
76
Ackvincent 2022-11-29 22:15:24 +08:00 1
我也遇到了同样的问题,项目对硬件需求并不大,并且甲方啥也不懂还喜欢瞎 BB 。
我是这样说服他的。 1.低使用率可以让硬件设备工作在一个比较低的温度,更节能静音(让他真实体验一下高负载和低负载的噪音水平),也有利于延长使用寿命。 2.硬件选择都是有一些余量的,方便后期扩充功能,节约项目开支。 3.服务器价格我们已经给的非常优惠了,再低只能使用杂牌硬件来组装,不利于项目的稳定运行。 甲方提出的需求并不一定是真实的需求,无论你做的多好,对方总是要褒贬一下的,他来找存在感就给他存在感,大家都是演戏,互相配合一下好了。 |
77
WuSiYu 2022-11-29 22:41:50 +08:00
挖矿,设个 cpulimit ,指定使用率多少都行( doge
|
78
SIGEV13 2022-11-29 22:54:02 +08:00 2
装上 K8S, 加上监控套件,Prometheus, AlertManager, Thanos, Grafana 都上。 把其他能搬家的服务都搬过来。 很快就消耗没了。 尤其 Prometheus 加上一堆 Rule 以后,很费资源,还能显示好看的图标,让客人觉得钱没白花。
|
79
xuzhzzz 2022-11-29 23:01:04 +08:00
降低服务器配置不就行了?
|
80
Dlin 2022-11-29 23:06:14 +08:00
这是什么秀逗甲方
|
81
ichubei 2022-11-29 23:30:59 +08:00
中国特色
|
82
Yuhyeong 2022-11-29 23:48:29 +08:00
多线程长期开着检查 log😂
|
83
Cheons 2022-11-29 23:57:40 +08:00 via Android
那就占用资源提升响应速度
|
84
tuutoo 2022-11-30 00:04:31 +08:00
安个 Docker 部他一堆服务, 不够就多拉几个 docker 镜像
|
85
sprite82 2022-11-30 00:05:50 +08:00
内存好说,直接设置 Jvm 参数就行
cpu 就装个 benchmark ,shell 脚本定时执行下就好了 |
86
ashong 2022-11-30 00:10:00 +08:00 via iPhone
还有这种要求?🤫
|
87
Features 2022-11-30 00:16:08 +08:00
开放一个用户,我帮你解决,保证全天 24 小时 90%以上占用
|
88
letmedie 2022-11-30 00:19:49 +08:00 1
看来是 toG 的业务,申请的云资源各种资源使用率不达标是要被通报的,超过一定时限不整改明年直接会把你预算砍了的。而且你重新申请都会被打回。
|
89
lingex 2022-11-30 00:20:10 +08:00
看到这个,以后再不考虑怎么优化代码了。。。
|
90
cndns 2022-11-30 00:24:55 +08:00 via Android
笑死 资源利用低整合下架服务器不就可以 省电碳排放估计是体制单位
|
91
akira 2022-11-30 01:35:28 +08:00
随便上个 监控 分析的东西,直接跑满,你还不能说他没用
|
92
pengtdyd 2022-11-30 06:14:44 +08:00
换个小点的机器不就行了吗,为啥非要从软件上下功夫
|
93
tramm 2022-11-30 08:10:45 +08:00
@hay313955795 我觉得应该是资源占用太少, 不好申请明年的资金 :P
|
94
raptor 2022-11-30 09:22:05 +08:00
4 核的话,长期占满一个核就 25%达标了。
要不浪费的话,建议跑个虚拟机,里面随便干点啥就让它达标 |
95
lower 2022-11-30 09:29:10 +08:00
安装几套安全防护软件、防火墙、杀毒软件。时刻扫描监控着……
|
96
benzalus 2022-11-30 09:31:44 +08:00
甲方爸爸:机器低载率算 kpi ,机器一直很闲说明机型不对,服务迁移好麻烦,搞点小手段增加占用算了
|
98
newmlp 2022-11-30 09:38:30 +08:00
while 1
|
100
rocksolid 2022-11-30 09:51:54 +08:00
写个脚本 不停压缩 解压
|