博客
关于我
Linux下jvm、tomcat、mysql、log4j优化配置笔记
阅读量:793 次
发布时间:2023-02-02

本文共 2451 字,大约阅读时间需要 8 分钟。

作为一个刚接触技术的菜鸟,我最近在优化云服务器方面遇到了不少挑战。在尝试解决这些问题的过程中,我将从JVM和Tomcat服务器入手,结合MySQL的配置优化,最终实现了对服务器性能的全面提升。本文将分别介绍这些优化方案的具体实施方法。

一、JVM内存优化方案

在优化云服务器的开局阶段,JVM的内存配置至关重要。以下是我在JVM优化方面所做的详细配置和对应解释:

declare -x JAVA_OPTS="-server -Xms1280M -Xmx1280M -Xmn512M -Xss1024k -XX:+AggressiveOpts -XX:+UseParallelGC -XX:+UseBiasedLocking"
  • -server: 这个选项启用服务器模式,这会提高JVM在资源分配上的效率。
  • -Xms1280M: 初始化内存分配为1280MB,与最大内存一致,避免重复分配带来的延迟。
  • -Xmx1280M: 设置JVM的最大内存为1280MB,这是对32位系统的最大值,超过此值可能导致JVM崩溃。
  • -Xmn512M: 设置最小内存为512MB,官方推荐最大内存的3/8作为最小值,这样的设置能够在垃圾回收过程中保持较好的效率。
  • -Xss1024k: 设置每个线程的堆栈大小为1024KB,这个值既不会导致线程过多也不会影响性能。
  • -XX:+AggressiveOpts: 启用更加激进的优化选项,以打破一些潜在的性能瓶颈。
  • -XX:+UseParallelGC: 优化垃圾回收算法,适合处理大量的对象生成和 eldest objects 的情况。
  • -XX:+UseBiasedLocking: 优化锁机制,减少死锁概率,提升多oktк线程的竞争效率。

将以上配置添加至Tomcat安装目录下的bin/catalina.sh文件中,确保在cygwin=false的行前方即可。

二、Tomcat服务器优化方案

接下来,我将重点介绍Tomcat服务器的配置优化。

  • maxThreads="1000": 设置最大线程数为1000,这样可以支持1000个并发连接,理论上可以处理500个完全并发的用户点击。
  • minSpareThreads="100": 设置最小空闲线程数为100,这个值必须足够高以应对突然的请求 spike,但又不能过高造成资源浪费。
  • maxSpareThreads="300": 这是线程管理池的上限,超过此值后,空闲线程将被回收,确保资源利用率。
  • acceptCount="200": 设置等待队列的最大数量,避免超时发生碰撞,需要根据实际负载调整。
  • enableLookups="false": 取消DNS查询,直接路由请求,节省带宽。
  • disableUploadTimeout="true": 保证上传操作不会因超时而中断,避免连接被迫关闭。

将上述配置复制到Tomcat安装目录下的conf/server.xml文件中,注意不要覆盖原本存在的配置,而是进行差异化调整。

三、MySQL优化方案

由于大多数项目都依赖MySQL作为数据库,这部分优化配置同样至关重要。

  • maxActive="500": 设置数据库连接池的最大激活数量为500,这个值需要根据你的服务器资源和访问量来调整,500是一个平衡点。
  • maxIdle="30": 设置空闲连接的最大数量为30,这样可以节省数据库资源,优化连接建立的效率。
  • maxWait="5000": 设置等待时间为5000ms,即5秒,这是连接获取的超时限制,避免长时间的等待消耗资源。

如果你的项目使用JDBC配置,需要确保JDBC.MaxPoolSizeJDBC.WaitTime与数据库连接池的设置保持一致。此外,建议根据数据库的实际负载情况动态调整这些值,避免资源浪费或连接超时。

四、日志优化方案

在完成服务器配置后,日志管理同样重要。以下是我的日志优化方案:

log4j.rootLogger = INFO, Rlog4j.appender.R = org.apache.log4j.RollingFileAppenderlog4j.appender.R.File = /home/westjavatest/logs/ivlifelog4j.txtlog4j.appender.R.MaxFileSize = 500KBlog4j.appender.R.MaxBackupIndex = 1log4j.appender.R.layout = org.apache.log4j.PatternLayoutlog4j.appender.R.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] - %m%n
  • log4j.rootLogger = INFO, R: 设置信息级别的日志记录,R代表RollingFileAppender。
  • log4j.appender.R.File: 指定日志输出的文件路径,要注意的是路径和操作系统的不同(/为Unix,\为Windows)。
  • log4j.appender.R.MaxFileSize: 单个日志文件的最大尺寸,这里设置为500KB以防止文件过大。
  • log4j.appender.R.MaxBackupIndex: 设置最大备用日志文件数量,避免文件过多占用空间。

通过上述配置,我们可以实现对服务器日志的有效管理和调试,这对于项目的长期维护至关重要。

五、结束语

这些服务器优化方案是我在实践中总结的经验,具体参数的设置可能需要根据实际情况进行调整。技术可靠性的提升往往需要时间和实践武装,我希望我的经验能为你提供一些参考价值。遇到类似的问题时,记得反复调试和优化,避免盲目照搬配置,确保每一步都有明确的含义和必要性。

最后,为你带来的优化效果祝福!愿你的服务器运行状态越来越稳定!

转载地址:http://eyzfk.baihongyu.com/

你可能感兴趣的文章
Linux 内核kobject 缺省属性
查看>>
linux 内核定时器精度_LWN 文章合集之 “内核定时器”
查看>>
Linux 创建(删除)连接命令 ln -s 软连接
查看>>
Linux 利用lsof命令恢复删除的文件
查看>>
Linux 卸载mysql-libs包出现问题如何解决
查看>>
Linux 压缩、解压和打包命令
查看>>
linux 发现交换文件 ".swp"
查看>>
linux 启动nacos报错_深入浅出高性能服务发现、配置框架Nacos系列 1: HelloWorld
查看>>
Linux 命令
查看>>
linux 命令 - 磁盘管理命令 df
查看>>
Linux 命令中 find 和 xargs 命令的用法
查看>>
Linux 命令大全
查看>>
Linux 命令大全
查看>>
linux 命令详解 十二
查看>>
Linux 命令集
查看>>
Linux 基本bash命令
查看>>
Linux 基金会与 RISC-V 基金会合作推广开源芯片
查看>>
linux 复制文件到当前目录
查看>>
linux 如何使用命令行隐藏特定进程和端口信息?一文教会你
查看>>
Linux 子系统(Windows Subsystem for Linux)启用详解
查看>>