一、系统基础优化:构建稳定运行环境
sudo yum update -y更新系统内核、安全补丁及依赖软件包(如gcc、make等),确保Java运行环境与系统组件兼容,修复已知漏洞。systemctl list-unit-files --type=service查看运行中的服务,禁用无用的服务(如bluetooth、cups等),释放CPU、内存资源,降低系统负载。/etc/sysctl.conf中的vm.swappiness降低内存交换频率、net.core.somaxconn增加TCP连接队列长度),提升系统对高并发的处理能力。二、Java虚拟机(JVM)调优:针对性优化性能
-Xms(初始堆大小)和-Xmx(最大堆大小),建议两者设置为相同值(如-Xms4g -Xmx4g),避免堆内存动态扩展带来的性能波动;同时设置-Xmn(新生代大小,通常为堆的1/3~1/2),优化年轻代对象回收效率。-XX:+UseG1GC);-XX:+UseConcMarkSweepGC);-XX:+UseZGC)。jstat -gcutil <pid> 1000监控GC频率与耗时、jmap -heap <pid>查看堆内存分布、jstack <pid>分析线程阻塞情况;或通过VisualVM、JConsole等图形化工具实时监控,结合GC日志(-Xloggc:/path/to/gc.log -XX:+PrintGCDetails)定位内存泄漏或GC瓶颈。三、代码与依赖管理:消除稳定性隐患
InputStream/Connection、静态集合持有对象引用)、减少锁竞争(使用ConcurrentHashMap替代synchronized Map、ReentrantLock替代synchronized)、优化算法复杂度(如用StringBuilder替代字符串拼接、避免嵌套循环遍历大数据集)。<exclusions>标签),定期更新依赖版本(通过mvn versions:display-dependency-updates查看),避免因依赖库漏洞导致的安全问题。四、进程与高可用保障:防止服务中断
/etc/systemd/system/myapp.service),内容示例:[Unit]
Description=My Java Application
After=network.target
[Service]
User=appuser
WorkingDirectory=/opt/myapp
ExecStart=/usr/bin/java -jar /opt/myapp/app.jar
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
systemctl daemon-reload、systemctl enable myapp实现开机自动启动,并在进程崩溃时自动重启。supervisord(sudo yum install -y supervisor)监控Java进程,配置/etc/supervisor/conf.d/myapp.conf(如command=/usr/bin/java -jar /opt/myapp/app.jar、autorestart=true),当进程退出时自动重启;或使用Shell脚本(如while true; do java -jar app.jar; sleep 5; done)简单监控。upstream模块分发请求),将Java应用部署到多台CentOS服务器(集群),通过Keepalived实现VIP漂移,确保单节点故障时服务不中断。五、日志与监控体系:快速定位与解决问题
logback.xml/log4j2.xml输出JSON格式),实现日志的集中存储、检索与可视化,便于快速定位异常(如ERROR级别日志、堆栈轨迹)。六、安全加固:防范外部威胁
-Djava.security.manager启用Java安全管理器,限制应用对系统资源(如文件、网络)的访问权限(需配置policy文件定义权限),防止恶意代码破坏系统。firewalld开放必要的端口(如HTTP 80、HTTPS 443、应用端口),关闭其他端口(sudo firewall-cmd --permanent --remove-port=22/tcp),限制对服务器的非法访问。