如题
我是小白,N 年前第一台服务器上我是跟着 CSDN 教程,物理机部署的 Nginx+Tomcat
后来发现 Tomcat 运行一个月就会假死,进程还在,CPU100%,但是用户访问就会卡到 nginx 超时 504
后来就用 shell 脚本去检查 Tomcat 端口,发现访问超时或者 http 状态码不是 0 或 200 ,自动重启 tomcat
后来我发现用 Docker 部署是真的香,安装方便,更新方便,关键是意外终止可以自动重启,可以合理分配内存和交换区
现在我发现用 Docker 会损失大约 20%的性能(没有实际测试,20%我纯盲猜的),我又想改回物理机直接部署,通过类似 Monit 来监控 Tomcat 状态,不知是否可行
最主要问下各位前辈是如何部署服务器的,用物理机香还是 docker 香
1
zzzmh OP 我可能表达的还是不清楚,我的意思是,直接编译安装 Nginx+tomcat ,直接在 linux 执行,这样保全性能,自己写监控方案,还是在 docker 里直接一步到位,保全稳定性,哪个合适,各位前辈是如何部署的
|
2
rsyjjsn 206 天前 1
2024 很少有裸跑的,都是 docker 一把梭,反正服务器又不贵,预算有限就换个小众语言,不占内存不就好了
|
3
cslive 206 天前
你程序有问题,不是 tomcat 问题,估计你内存泄露了
|
4
timeisweapon 206 天前 1
根据你的描述,应用场景应该比较简单或者说不是重要的生产环境,问题原因大概率是 bug 引起的计算资源未及时释放,彻底解决就是排查 bug ;临时解决,写个定时任务重启 tomcat
|
5
zzzmh OP 我说 tomcat 一个月就要重启那个事情已经是 6 、7 年前了,当时代码是有问题,再加上服务器 1C2G1M 吃紧。拿这个举例子主要是因为从此以后我有 PTSD 了,24 小时总感觉他崩溃,总想肉眼检查一下。现在 docker 用久了又想还回去试试。。。感觉楼上说的对,性能不够就加配置
|
6
julyclyde 200 天前
你这个“用 shell 去检查端口”并不解决根本问题啊
而且它自己也没有意外终止,所以 docker 提供的意外终止之后自动重启的功能其实对你没啥用,而且 docker 也不是独家提供意外终止自动重启 再加上“直接编译安装” 感觉你把能犯的错误全都凑齐了 |