系统级优化
firewalld
、NetworkManager
等非必需服务(如systemctl stop firewalld && systemctl disable firewalld
),减少后台进程对CPU、内存的占用。/etc/sysctl.conf
优化网络性能,例如增加net.ipv4.tcp_max_syn_backlog=8192
(提升TCP连接队列容量)、net.ipv4.tcp_fin_timeout=30
(缩短未完成连接的超时时间);调整vm.swappiness=10
(降低Swap使用率,优先使用物理内存)。修改后执行sysctl -p
使配置生效。ext4
文件系统(支持更快的读写和日志功能),挂载时添加noatime
选项(避免每次访问文件都更新访问时间戳),减少磁盘I/O开销。例如在/etc/fstab
中修改对应分区挂载参数为defaults,noatime
。permissive
模式(仅记录违规不阻止)或完全禁用(编辑/etc/selinux/config
,设置SELINUX=permissive
,然后重启服务器),避免权限检查带来的额外性能损耗。JSP页面与应用层优化
<% %>
)、表达式(<%= %>
)从JSP中移除,转移至Servlet或Java类中处理业务逻辑;使用JSTL
(JSP标准标签库)和EL
(表达式语言)替代原生Java代码,例如用<c:forEach>
代替<% for(...) %>
,提高页面渲染效率。Tomcat
的server.xml
配置GZIP压缩(在Connector
标签中添加compression="on"
、compressableMimeType="text/html,text/css,application/javascript"
),或使用Apache
的mod_deflate
模块,将JSP输出压缩后再传输,减少网络带宽占用(通常可压缩至原大小的30%-70%)。Apache
的mod_expires
模块配置Expires
头,如ExpiresActive On
、ExpiresByType image/jpeg "access plus 1 year"
),减少重复请求;对频繁访问的动态数据(如商品分类、用户信息)使用Redis
或Memcached
缓存,降低数据库查询压力。Ajax
技术异步加载非核心数据(如评论、推荐商品),避免阻塞页面初始渲染;对于耗时操作(如报表生成),采用消息队列(如RabbitMQ
)异步执行,提升页面响应速度。数据库优化
EXPLAIN
分析慢查询,添加合适的索引(如对WHERE
、JOIN
条件中的字段建索引);避免SELECT *
(只查询所需字段),使用分页(LIMIT
)减少单次查询返回的数据量;对频繁更新的表避免过度索引(索引会增加写入开销)。Tomcat
的JDBC
连接池(如DBCP2
、HikariCP
),复用数据库连接,减少连接创建和销毁的开销。例如在context.xml
中配置HikariCP
:<Resource name="jdbc/mydb" auth="Container" type="javax.sql.DataSource"
maxTotal="20" maxIdle="10" minIdle="5" idleTimeout="30000"
connectionTimeout="3000" validationQuery="SELECT 1"/>
```。
静态资源与基础设施优化
CDN
(内容分发网络),利用其全球节点将资源分发至离用户最近的节点,减少网络传输延迟,提升加载速度。Nginx
作为反向代理(在Tomcat
前部署Nginx
),处理静态资源请求(如location ~* \.(jpg|css|js)$ { root /var/www/static; }
),减轻Tomcat
的压力;调整Tomcat
的server.xml
配置(如增大maxThreads
(默认200,可根据CPU核心数调整至500-800)、minSpareThreads
(默认10,调整为50)),提升并发处理能力。CPU
核心数(如从4核升级至8核)、扩大内存
(如从8GB升级至16GB及以上)、使用SSD
替代机械硬盘(提升磁盘I/O速度),从根本上提升系统处理能力。性能监控与分析
top
(查看CPU、内存占用)、htop
(更直观的资源监控)、vmstat
(查看磁盘I/O、上下文切换)、netstat
(查看网络连接状态)等工具,定期检查服务器资源使用情况,定位瓶颈(如CPU过高可能是SQL查询慢,内存不足可能是缓存过大)。JProfiler
、VisualVM
等工具对JSP应用进行性能剖析,找出耗时较长的方法(如某个SQL查询、循环计算),针对性优化(如优化SQL索引、重构代码逻辑)。