1. 系统资源优化
sudo apt clean清理APT缓存,删除/tmp目录下无用临时文件,释放磁盘空间;使用bleachbit等工具深度清理系统垃圾。systemctl list-unit-files --state=enabled查看开机启动的服务,禁用不需要的服务(如cups打印服务、bluetooth蓝牙服务),减少系统资源占用。/etc/sysctl.conf文件,添加或修改以下参数以提升系统性能:vm.swappiness=10(降低内存交换频率,优先使用物理内存)、fs.file-max=65535(增加系统最大文件描述符数,避免文件句柄耗尽)、net.core.somaxconn=4096(提升TCP连接队列长度,改善网络性能);修改后执行sudo sysctl -p使配置生效。2. JVM参数调优
-Xms(初始堆大小)和-Xmx(最大堆大小),建议两者设置为相同值(如-Xms4g -Xmx4g),避免堆内存动态扩展带来的性能开销。-XX:+UseG1GC -XX:MaxGCPauseMillis=200设置最大停顿时间(如200ms);-XX:+UnlockExperimentalVMOptions -XX:+UseZGC;-XX:+UseParallelGC启用。-XX:NewRatio设置新生代与老年代的比例(如-XX:NewRatio=2表示新生代占堆的1/3),优化年轻对象回收效率。-XX:TieredCompilation启用分层编译(默认开启),提升热点代码的执行效率;若需更激进的优化,可调整-XX:CompileThreshold(降低方法调用次数阈值,提前编译)。-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/path/to/gc.log记录垃圾回收详情,便于后续分析GC频率与停顿时间。3. Java代码优化
String str = new String("hello")),改用对象池(如Apache Commons Pool)或复用对象(如StringBuilder代替String拼接)。HashMap代替TreeMap提升查找效率、ArrayList代替LinkedList提升随机访问性能);避免使用时间复杂度高的算法(如嵌套循环遍历大数据集合,改用stream().parallel()并行处理)。BufferedReader、BufferedWriter)减少磁盘IO次数;批量处理数据库操作(如JDBC的addBatch()与executeBatch()),避免频繁提交事务。finally块中关闭文件流、数据库连接);使用弱引用(WeakReference)管理缓存,防止缓存无限增长导致内存溢出。4. 系统配置优化
ulimit -n 65535临时增加当前用户的文件描述符限制;永久生效需编辑/etc/security/limits.conf,添加* soft nofile 65535和* hard nofile 65535。/etc/sysctl.conf,添加net.ipv4.tcp_tw_reuse=1(允许复用TIME_WAIT状态的TCP连接)、net.ipv4.tcp_max_syn_backlog=8192(增加SYN队列长度),减少网络连接建立的开销。systemctl disable <service-name>禁用不需要的服务(如apache2、mysql若未使用),减少系统后台进程的资源消耗。5. 使用性能分析工具定位瓶颈
jstat -gcutil <pid> 1000每秒输出一次GC统计信息),分析GC频率与停顿时间。jstack <pid>),分析线程阻塞、死锁等问题。