V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zzzmh
V2EX  ›  问与答

请问 Nginx+Tomcat 应该部署在物理机还是 Docker 下 性能差距大吗

  •  
  •   zzzmh · 213 天前 · 1061 次点击
    这是一个创建于 213 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题
    我是小白,N 年前第一台服务器上我是跟着 CSDN 教程,物理机部署的 Nginx+Tomcat
    后来发现 Tomcat 运行一个月就会假死,进程还在,CPU100%,但是用户访问就会卡到 nginx 超时 504
    后来就用 shell 脚本去检查 Tomcat 端口,发现访问超时或者 http 状态码不是 0 或 200 ,自动重启 tomcat
    后来我发现用 Docker 部署是真的香,安装方便,更新方便,关键是意外终止可以自动重启,可以合理分配内存和交换区
    现在我发现用 Docker 会损失大约 20%的性能(没有实际测试,20%我纯盲猜的),我又想改回物理机直接部署,通过类似 Monit 来监控 Tomcat 状态,不知是否可行
    最主要问下各位前辈是如何部署服务器的,用物理机香还是 docker 香

    8 条回复    2024-05-13 17:07:07 +08:00
    zzzmh
        1
    zzzmh  
    OP
       213 天前
    我可能表达的还是不清楚,我的意思是,直接编译安装 Nginx+tomcat ,直接在 linux 执行,这样保全性能,自己写监控方案,还是在 docker 里直接一步到位,保全稳定性,哪个合适,各位前辈是如何部署的
    rsyjjsn
        2
    rsyjjsn  
       213 天前   ❤️ 1
    2024 很少有裸跑的,都是 docker 一把梭,反正服务器又不贵,预算有限就换个小众语言,不占内存不就好了
    cslive
        3
    cslive  
       213 天前
    你程序有问题,不是 tomcat 问题,估计你内存泄露了
    timeisweapon
        4
    timeisweapon  
       213 天前   ❤️ 1
    根据你的描述,应用场景应该比较简单或者说不是重要的生产环境,问题原因大概率是 bug 引起的计算资源未及时释放,彻底解决就是排查 bug ;临时解决,写个定时任务重启 tomcat
    zzzmh
        5
    zzzmh  
    OP
       212 天前
    我说 tomcat 一个月就要重启那个事情已经是 6 、7 年前了,当时代码是有问题,再加上服务器 1C2G1M 吃紧。拿这个举例子主要是因为从此以后我有 PTSD 了,24 小时总感觉他崩溃,总想肉眼检查一下。现在 docker 用久了又想还回去试试。。。感觉楼上说的对,性能不够就加配置
    julyclyde
        6
    julyclyde  
       207 天前
    你这个“用 shell 去检查端口”并不解决根本问题啊
    而且它自己也没有意外终止,所以 docker 提供的意外终止之后自动重启的功能其实对你没啥用,而且 docker 也不是独家提供意外终止自动重启

    再加上“直接编译安装”
    感觉你把能犯的错误全都凑齐了
    zzzmh
        7
    zzzmh  
    OP
       207 天前
    @julyclyde 请问正确的答案是什么,先不考虑 java 代码,只考虑运维的前提下,如何保证 tomcat 在物理机里稳定是最优解,另外“直接编译安装”我不理解这里有什么问题,我知道的 nginx 安装方式就 2 个,yum 安装和编译安装。
    julyclyde
        8
    julyclyde  
       207 天前
    @zzzmh 只考虑运维的情况下,用 systemd 管理 tomcat ,比 docker 少一层,并且 1 号进程天生比 docker 更神圣,因为 systemd 的死活不需要你考虑,但是 dockerD 和 containerD 的死活却无从保证

    自己编译无法保证多次执行为同一结果,多次之间如遇到版本变动,遇到 bug 的时候对他们进行行为方面的比较就没啥意义了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1736 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 16:39 · PVG 00:39 · LAX 08:39 · JFK 11:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.