tomcat的优化和动静分离

tomcat的优化

1.tomcat的配置优化

2.操作系统的内核优化

注意:设置保存后,需要重新ssh连接才会看到配置更改的变化

vim /etc/security/limits.conf

65535 为Linux系统最大打开文件数

* soft nproc 65535

* hard nproc 65535

* soft nofile 65535

* hard nofile 65535

* soft nproc 65535: 最大进程数软限制为 65535,即可以使用 ulimit -u 命令查看和修改的值。

* hard nproc 65535: 最大进程数硬限制为 65535,即最大可分配的进程数。

* soft nofile 65535:最大打开文件数软限制为 65535,即可以使用 ulimit -n 命令查看和修改的值。

* hard nofile 65535:最大打开文件数硬限制为 65535,即最大可分配的文件数。

这里使用的通配符 * 表示对所有用户生效。

其他调试内核参数的查看: sysctl -a

kernel.sysrq = 0: 禁用了内核的SysRq功能,SysRq允许在系统崩溃或出现问题时执行一些调试操作。

kernel.core_uses_pid = 1: 设置核心转储文件名中包含进程ID,有助于标识是哪个进程导致了核心转储。

kernel.msgmnb 和 kernel.msgmax: 增加IPC消息队列的默认和最大大小,用于进程间通信。

kernel.shmmax 和 kernel.shmall: 调整共享内存的最大大小和分配页面数。

net.ipv4.ip_forward = 0: 禁用IP数据包的转发功能,通常用于不充当路由器的系统。

net.ipv4.conf.default.rp_filter 和 net.ipv4.conf.all.rp_filter: 控制反向路径过滤,提高网络安全性。

net.ipv4.icmp_echo_ignore_all: 允许或禁止系统响应ping请求。

net.ipv4.icmp_echo_ignore_broadcasts: 禁止系统对广播和多播地址的ICMP回显和时间戳请求作出响应。

net.ipv4.conf.default.accept_source_route: 不接受源路由,增加网络安全性。

net.ipv4.tcp_syncookies = 1: 启用SYN Cookies,保护系统免受TCP SYN 攻击。

net.ipv4.tcp_max_tw_buckets = 6000: 设置允许的TIME_WAIT套接字最大数量,避免服务器性能下降。

net.ipv4.tcp_sack = 1: 启用有选择的应答(SACK)来提高TCP性能。

net.ipv4.tcp_window_scaling = 1: 启用TCP窗口缩放功能,允许大窗口的TCP传输。

net.ipv4.tcp_rmem, net.ipv4.tcp_wmem: 调整TCP套接字读取和写入缓冲区大小。

net.ipv4.tcp_mem: 设置TCP缓冲区的最小、默认和最大值。

net.core.wmem_default, net.core.rmem_default, net.core.rmem_max, net.core.wmem_max: 调整网络核心

缓冲区的大小。

net.core.netdev_max_backlog: 控制网络接口接收数据包的排队队列大小。

net.ipv4.tcp_max_orphans: 设置系统允许的孤立TCP连接最大数量。

net.ipv4.tcp_max_syn_backlog: 控制系统允许的三次握手队列长度。

net.ipv4.tcp_synack_retries 和 net.ipv4.tcp_syn_retries: 设置SYN-ACK和SYN请求的重试次数。

net.ipv4.tcp_tw_recycle 和 net.ipv4.tcp_tw_reuse: 启用TIME_WAIT套接字快速回收和重用。

net.ipv4.tcp_fin_timeout: 设置TCP连接FIN(关闭连接)的超时时间。

net.ipv4.tcp_keepalive_time: 设置TCP keepalive探测包发送频率,以检测连接状态。

net.ipv4.ip_local_port_range: 设置本地端口范围,用于分配本地应用程序端口。

net.ipv6.conf.all.disable_ipv6 和 net.ipv6.conf.default.disable_ipv6: 禁用IPv6。

net.netfilter.nf_conntrack_max 和其他 net.netfilter.nf_conntrack_*: 控制连接跟踪和防火墙相关设置。

net.nf_conntrack_max: 设置最大连接跟踪项数。

vm.overcommit_memory = 0: 控制内存超额分配策略,避免OOM killer杀掉进程。

vm.swappiness = 0: 设置内存交换行为,降低内存交换。

fs.file-max = 999999: 设置进程可以同时打开的最大文件句柄数。

net.ipv4.tcp_max_tw_buckets = 6000: 设置操作系统允许的TIME_WAIT套接字最大数量。

net.ipv4.ip_local_port_range = 1024 65000: 设置系统允许的本地端口范围。

net.ipv4.tcp_tw_recycle = 1: 启用TIME_WAIT套接字快速回收。

net.ipv4.tcp_tw_reuse = 1: 允许TIME-WAIT套接字重用。

net.ipv4.tcp_syncookies = 1: 启用SYN Cookies,防止TCP SYN 攻击。

net.core.somaxconn = 40960: 设置最大监听队列长度,用于控制最大并发连接数。

net.core.netdev_max_backlog = 262144: 设置每个网络接口接收数据包队列的最大大小。

net.ipv4.tcp_max_syn_backlog = 262144: 设置接受SYN请求队列的最大长度。

net.ipv4.tcp_rmem, net.ipv4.tcp_wmem: 设置TCP套接字读取和写入缓冲区的最小、默认和最大大小。

net.core.rmem_default, net.core.wmem_default, net.core.rmem_max, net.core.wmem_max: 设置内核套接字接收和

发送缓冲区大小。

3.jvm调优

内存

ajp-nio-8009是什么

tomcat的动静分离

配置静态页面

配置nginx反向代理

可以访问静态页面

配置完后重启

systemctl restart nginx.service 

配置动态页面

配置tomcat的server.xml

<Host name="www.test1.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
        <Context docBase="/usr/local/tomcat/webapps/test1" path="" reloadable="true" />
</Host>

<Host name="www.test2.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
        <Context docBase="/usr/local/tomcat/webapps/test2" path="" reloadable="true" />

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test1 page</title>
</head>
<body>
<% out.println("动态页面 1,http://www.test1.com");%>
</body>
</html>

配置完后重启

./shutdown.sh
./startup.sh 

可以访问动态页面

相关推荐
~时泪~几秒前
流编辑器sed(stream editor)
linux·运维·服务器
优雅孤狼16 分钟前
Haproxy 七层负载和四层负载
运维·服务器·网络
三菱-Liu16 分钟前
三菱Q系列PLC系统配置
运维·驱动开发·嵌入式硬件·制造
硬件技术我知道17 分钟前
如何刷新网卡MAC地址?
网络·macos
小白—人工智能36 分钟前
Linux —— 管理文件
linux·运维·服务器
法迪36 分钟前
Wireshark如何查看数据包时间间隔
服务器·网络·wireshark·功耗
YUNBEE_chen42 分钟前
【云贝教育Linux技术文章】CentOS停止维护后如何获取redhat 8.0 yum源?详细操作指南!
linux·运维·centos
gywl1 小时前
计算机网络-网络层
服务器·网络·计算机网络
工业通讯探索者1 小时前
CAN和CANopen及CAN FD协议区别及通讯
网络
热爱生活的五柒1 小时前
vscode中插件ofExtensions的debug模式也无法查看U、p等openfoam中foam类型的变量
linux·运维·服务器