Files
zfoo/doc/linux/linux-java-setup.md
T

122 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 一、卸载java
## 1. 卸载JDK安装路径
- java -version
- javac
```
判断jdk是否安装(显示版本号等信息,说明已经安装)
```
- which java(查看JDK的安装路径)
```
rm -rf JDK的安装路径
```
## 2. 删除环境变量
- java -version
- javac
```
判断jdk是否安装(显示版本号等信息,说明已经安装)
```
- vim /etc/profile,删除配置中的环境变量
- ls /etc,看看有没有别的java配置文件,如果有就全部删除
# 二、安装JDK
```
把JDK下载到/usr/local目录下,在/usr/local下新建文件夹java
```
- tar -zxvf openjdk-11+28_linux-x64_bin.tar.gz -C /usr/local
- rename jdk-11 java jdk-11
- vim /etc/profile
```
JAVA_HOME=/usr/local/java
JRE_HOME=$JAVA_HOME/lib
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME JRE_HOME PATH
```
- source /etc/profile,加载环境变量
```
- java -version
- javac
- jps
判断jdk是否安装(显示版本号等信息,说明已经安装)
```
# 三、Linux内核参数设置
- 文件句柄设置
```
root身份编辑 vim /etc/security/limits.conf * 表示所有用户
root soft nofile 1000000
root hard nofile 1000000
* soft nofile 1000000
* hard nofile 1000000
vim /etc/sysctl.conf,然后执行sysctl -p使参数生效,永久生效
# ******************* SYN状态的内核参数调优 *******************
# 新建连接如果无响应,内核要发送多少次SYN连接才放弃,默认值为5
net.ipv4.tcp_syn_retries = 2
# 控制回应SYN失败的重试次数,默认值也是5
net.ipv4.tcp_synack_retries = 2
# 当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭
net.ipv4.tcp_syncookies = 1
# 指定所能接受SYN同步包的最大客户端数量,即半连接上限,默认值为128,对于web服务,频繁大量的SYN同步包,应该放大这个值
net.ipv4.tcp_max_syn_backlog = 65535
# ******************* FIN_WAIT_2状态的内核参数调优 *******************
# 如果被动关闭不发送FIN关闭连接,那么这个状态就会一直存在,当然Linux有针对该状态的超时时间,默认为60秒
net.ipv4.tcp_fin_timeout = 8
# ******************* TIME_WAIT状态的内核参数调优 *******************
# 对于web服务器,由于我们需要经常去连接mysql、redis或者一些RPC调用等,会有大量的主动关闭状态(TIME_WAIT),因此可以修改内核参数限制TIME_WAIT的数量
net.ipv4.tcp_max_tw_buckets = 36000
# 限制timewait 的数量,防止大量timewait导致系统负载升高,一旦达到限定值,则强制清理TIME_WAIT状态的连接并在打印系统日志(time wait bucket table overflow),该参数官方文档说明主要用来对抗DDos攻击
net.ipv4.tcp_tw_recycle = 1
# 时间戳,0关闭,1开启。不能和net.ipv4.tcp_tw_recycle参数同时开启,因为一旦开启net.ipv4.tcp_tw_recycle,服务器就会检查包的时间戳,如果对方发来的包的时间戳是乱跳或者说时间戳是滞后的,这样服务器就不会回复,服务器会把带了"倒退"的时间戳包当作是"recycle"的tw连接的重传数据,不是新的请求,于是丢掉不回包,就容易出现syn不响应
net.ipv4.tcp_timestamps = 0
# 开启重用,允许将TIME-WAIT sockets 重新用于新的TCP 连接
net.ipv4.tcp_tw_reuse = 1
# ******************* 长连接(keepalive)的内核参数调整 *******************
# 表示TCP连接在多少秒没有数据报文传输时启动探测报文,探测连接是否正常
net.ipv4.tcp_keepalive_time = 120
# 探测次数,超过设置后丢弃
net.ipv4.tcp_keepalive_probes = 3
# 前后探测报文之间的时间间隔
net.ipv4.tcp_keepalive_intvl = 15
# ******************* TCP/UDP内存参数调整 *******************
net.ipv4.tcp_mem = 786432 1048576 1572864
net.ipv4.tcp_wmem = 8192 131072 16777216
net.ipv4.tcp_rmem = 32768 131072 16777216
# 系统所能处理不属于任何进程的TCP sockets最大数量,默认值8192
net.ipv4.tcp_max_orphans = 32768
# ******************* 其他内核参数 *******************
# 表示用于向外连接的临时端口范围。缺省情况下很小:32768到61000
net.ipv4.ip_local_port_range = 1024 65000
# 表示socket监听(listen)的backlog上限,backlog是socket的监听队列,也就是服务端所能accept(socket编程中accpet()函数为建立TCP连接接受连接状态)即处理数据的最大客户端数量队列,默认值为128,如果队列满了的时候新来一条建立连接,该连接会被拒绝
net.core.somaxconn = 16384
# 设置系统所有进程一共可以打开多少个文件句柄,这是一个系统级的设置,管控的是所有进程总共可以同时打开多少文件句柄
fs.file-max = 6553600
# 每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目
net.core.netdev_max_backlog = 16384
```