服务器总是宕机问题记录

博主介绍: 22届计科专业毕业,来自湖南,主要是在CSDN记录一些自己在Java开发过程中遇到的一些问题,欢迎大家一起讨论学习,也欢迎大家的批评指正。

文章目录

背景

2核2G的服务器,服务器安装了tomcat、jdk、redis和一些比较小的脚本文件
tomcat下部署了6个项目总共有400MB大小,项目tomcat总是运行一段时间之后,服务器会宕机
在这里插入图片描述

调整

在bin目录下 catalina.sh文件里插入了 下面一段内容(分配JVM内存,需要按实际情况分配

JAVA_OPTS=“-Xms208m -Xmx616m -Xss1542K -XX:MetaspaceSize=104m
-XX:MaxMetaspaceSize=412m”

在这里插入图片描述

这些 JAVA_OPTS 参数是用于配置 Java 虚拟机(JVM)的启动选项。它们通常用于调整 JVM
的内存使用和性能。下面是对每个参数的简单解释:

  • -Xms208m:
    设置 JVM 初始堆大小为 208MB。 Xms 代表 “initial heap size”,即 JVM 启动时为其堆分配的内存量。
  • -Xmx616m:
    设置 JVM 最大堆大小为 616MB。 Xmx 代表 “maximum heap size”,即 JVM 可以为其堆分配的最大内存量。
  • -Xss1542K:
    设置每个线程的栈大小为 1542KB。 Xss 代表 “thread stack size”,这是 Java 线程在其生命周期中所使用的内存量。
  • -XX:MetaspaceSize=104m:
    -设置 Metaspace 的初始大小为 104MB。 Metaspace 是 Java 8 引入的,用于存储类的元数据。在 Java 8 之前,这部分内存是由永久代(PermGen)管理的。
  • -XX:MaxMetaspaceSize=412m:
    设置 Metaspace 的最大大小为 412MB。 这可以防止 Metaspace 无限增长,从而可能耗尽系统内存。

观察tomcat的运行状态

top -p $(ps -ef | grep tomcat | grep -v grep | awk ‘{print $2}’)

在这里插入图片描述

  • PID: 进程ID,每个进程在系统中都有一个唯一的ID。 USER: 运行该进程的用户名。 PR: 进程的优先级。
  • NI:nice值,这是一个可以调整进程优先级的值。正值会使进程优先级降低,负值会使进程优先级提高。
  • VIRT:进程使用的虚拟内存总量,单位通常是KB或MB。这包括进程使用的库、代码、数据等所占用的内存空间,即使这部分内存并没有被实际驻留在RAM中。
  • RES: 进程当前使用的、未交换出的物理内存大小,单位通常是KB或MB。这是进程实际占用的RAM大小。
  • SHR:共享内存大小,即被多个进程共享的内存大小。 S: 进程状态。可以是R(运行)、S(睡眠)、D(磁盘睡眠)、T(停止)、Z(僵尸)等。
  • %CPU: 进程占用的CPU使用率。
  • %MEM: 进程占用的物理内存百分比。
  • TIME+:进程自启动以来总共占用的CPU时间,包括实际运行时间和等待时间。
  • COMMAND: 启动进程的命令行名称或命令行本身。

总结

我的想法是不升级服务器的情况下,减少JVM内存保证服务器的正常运行,实际看下来还是有效果,服务器没有宕机,只是tomcat的项目访问起来会比较慢。
如果JVM内存太低会出现OOM异常,如果太大就会出现服务器宕机问题,需要实际调整一下JVM内存看看实际效果

相关推荐

  1. 对独立服务器会有啥影响?

    2024-03-21 17:22:03       50 阅读
  2. 华纳云:有效解决服务器的办法

    2024-03-21 17:22:03       60 阅读
  3. 为什么租用的服务器经常出现的情况?

    2024-03-21 17:22:03       44 阅读
  4. 如何处理Redis服务器的情况

    2024-03-21 17:22:03       41 阅读
  5. /脱

    2024-03-21 17:22:03       28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-21 17:22:03       75 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-21 17:22:03       80 阅读
  3. 在Django里面运行非项目文件

    2024-03-21 17:22:03       64 阅读
  4. Python语言-面向对象

    2024-03-21 17:22:03       75 阅读

热门阅读

  1. 单片机复位问题分析

    2024-03-21 17:22:03       37 阅读
  2. 深入理解 Linux 函数参数

    2024-03-21 17:22:03       45 阅读
  3. 常用数据库比较

    2024-03-21 17:22:03       42 阅读
  4. Tabulator-tables5.6版本升级6.0版本

    2024-03-21 17:22:03       37 阅读
  5. Python一句话生成九九乘法表

    2024-03-21 17:22:03       41 阅读
  6. 简易计算器(可以查询上次计算的结果)

    2024-03-21 17:22:03       62 阅读
  7. rust 文件引用,父目录下的同级目录之间的引用

    2024-03-21 17:22:03       45 阅读
  8. Error starting ApplicationContext.

    2024-03-21 17:22:03       44 阅读
  9. 适配器设计模式

    2024-03-21 17:22:03       45 阅读
  10. C语言学习笔记

    2024-03-21 17:22:03       40 阅读
  11. golang双指针快速排序

    2024-03-21 17:22:03       38 阅读
  12. 【SQL注入】报错注入--实战示例

    2024-03-21 17:22:03       34 阅读