项目管理之-项目发布Ubuntu服务器管理


前言

以前还真没有为服务器资源操心过,因为之前呆的公司有机房,服务器资源可以说非常之充足,没有直接对接过客户。但是直接对接客户,真正给那种精打细算的客户发布服务的时候,你就会知道让客户掏钱那是艰难无比,哪怕是服务器也不想多花钱。
其实公司搭建的平台是用微服务集成的,整个服务器启动,预计有8个左右,但是最后提供的服务器资源是一台8G4核的服务器。按照实际资源来说单体架构没有多大问题。但是微服务这点资源真不够用,下面记录了我对资源的整合避免资源枯竭。


一、服务器组件安装

这部分就包括Mysql、Redis、Nacos、Sentinel。
在这里插入图片描述上面的组件都是使用Docker命令安装的,服务器直接安装的还包括Nginx组件。
这些资源整合起来,加上系统自身占用的差不多将近3GB运行内存占用。

二、微服务模块

在这里插入图片描述如图所示:总共有8个微服务,这几个微服务以jar包的方式运行的时候,按照当时的服务器资源展示,大概一个微服务默认500兆左右,8个微服务全部运行起来,差不多占用了4G的运行内存,再加上系统有一些定时任务的占用资源,以及日志收集会占用部分资源,以及系统自身的缓存占用的资源,剩下的2G不到的资源完全不够用。
更何况缓存资源在不停的消耗内存,导致的结果是服务器总是内存被用的满满的,然后服务器崩溃,预警,服务器公司打电话给你要你加资源,哈哈。

三、资源规划措施

1、减少微服务模块运行内存

我自己计算了一下,并发量因为我目前涉及审批任务的话只有三个领导,这里我偷偷了笑了一下,并发不是问题,后期再加上售后人员等等不到70人吧,并发的话不到一半,一个模块也就90兆左右,给256兆也就足够了。

java -Xms256m -Xmx256m -jar ${app_name}-1.0.jar --spring.profiles.active=prod > /dev/null 2>&1 &

然后,查看实际内存的占用。
在这里插入图片描述
然后,服务器资源释放了2G左右。本想着后面可以稳妥了但是,服务器还是有报警,缓存有时能占用2G多,虽然可以自己释放,但是有时不及时,也会卡顿,造成用户体验不是很好。所以还需要定时清理缓存,避免内存被占满。

在这里插入图片描述

2、定时清理服务器缓存

具体的定时任务操作命令不提供了,只提供脚本,具体清理缓存的间隔时间还得自己根据实际情况来。
脚本如下:

#!/bin/bash
used=`free -m | awk 'NR==2' | awk '{print $3}'`
free=`free -m | awk 'NR==2' | awk '{print $4}'`

echo "==============================================================================" >> /opt/whyt/jiaoben/logs/mem.log
echo "开始清理缓存" >> /opt/whyt/jiaoben/logs/mem.log
date >> /opt/whyt/jiaoben/logs/mem.log
echo "Memory usage before | [Use:${used}MB][Free:${free}MB]" >> /opt/whyt/jiaoben/logs/mem.log

sync;sync;sync #写入硬盘,防止数据丢失
sleep 10 #延迟10秒
echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches

used_ok=`free -m | awk 'NR==2' | awk '{print $3}'`
free_ok=`free -m | awk 'NR==2' | awk '{print $4}'`
echo "Memory usage after | [Use:${used_ok}MB][Free:${free_ok}MB]" >> /opt/whyt/jiaoben/logs/mem.log
echo "OK" >> /opt/whyt/jiaoben/logs/mem.log

echo "清理结束" >> /opt/whyt/jiaoben/logs/mem.log
exit 1

日志查看:
在这里插入图片描述

3、微服务日志定时清理

这个得根据日志量做日志清理策略,我这个只是提供参考,实现方法千千万。日志量大的存2两天,日志量不大的存3天,具体天数根据实际场景来设置,我这边由于出现问题基本就是当天解决,所以没有将日志保留太久。
SpringBoot日志清理策略配置:

logging:
  file:
    name: whyt-erp-scm.log
    max-history: 2
    max-size: 1GB
  pattern:
    ####日志高亮
    file: '%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(${PID}){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wEx'

总结

经过上面几个措施。系统运行了个把月了也没有出现问题,运行的很平稳,办法总比困难多,遇到问题要有清晰的思路,不为难,发现问题,解决问题人才能不停的成长,大家觉得有收获就给个好评或者给个赞吧,哈哈。

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页