需求:把繁忙服务器的上的某些应用迁到空闲机器上
1、内存告警通知
ps:这是在阿里云做的钉钉机器人,从通知内容可以看出这台机器的内存使用率已经 > 90%了
所以,必须要做应用迁移,那现在我们要做的是,从其它机器上找出一台空闲的,然后将此机器上的某些应用迁移到空闲机器上
2、空闲机器
这时候,你就需要去找空闲机器,命令free -g,比如,09这台机器,total总共15G的内存,已使用12G,可用只有3,已经处于饱和状态
再看01这台,总共7G内存,可用5G,比较适合
3、拷贝相关文件
相关命令:jps (查看java应用)
看看你需要迁移哪个应用,应用都是java,所以只拷贝jar,如果是其它语言,相宜处理。
这里有两种方式拷贝,
- 直接scp命令,但要知道机器密码
- 利用中间机器,做了互信免密登录
这里,我们采用第二种方式处理
比如,要把09机器上的jar,拷贝到01机器上
在互相机上做如下操作:
先scp 09:/xxx/xxx/xx.jar ./
再scp ./xx.jar 01:/xxx/xxx/
ps:注意要保持所涉及的应用的部署路径一致
4、启动
拷贝成功后,在01这台机器上启动jar即可
jar命令可在jenkins控制台输出中找到
通过jps查看应用是否启动,最好通过应用的启动日志去判断
相关命令:tail -f xx.log
5、相关平台IP修改
查询机器ip命令: ip a
我先说下我这里迁应用所涉及的修改
1、jenkins上应用配置修改 (jenkins发布时指定了应用要部署哪台机器上,所以要修改)
把老的IP替换新的即可
2、发布平台
修改应用对应的服务器
3、nginx代理
找到nginx所在机器,进入/ect/nginx/conf.d
命令 grep -A 10 zxb ./* 找到文件中包含应用zxb,替换新机器的ip地址即可
4、阿里云云监控
重新修改应用健康检查绑定的机器名