一、linux 系统内核参数
-
/etc/sysctl.conf文件常用参数
net.core.netdev_max_backlog = 32768 #允许送到队列的数据包的最大数目 net.core.rmem_max = 8388608 #SOCKET读缓存区大小 net.core.wmem_max = 8388608 #SOCKET写缓存区大小 net.core.somaxconn = 32768 #系统中每一个端口最大的监听队列的长度 net.core.rmem_max = 16777216 #最大socket读buffer net.ipv4.ip_local_port_range = 1024 65000 #允许系统打开的端口范围 net.ipv4.tcp_fin_timeout = 30 #TIME_WAIT2进入CLOSED的等待时间 net.ipv4.tcp_keepalive_time = 1200 #TCP发送keepalive消息的时间 net.ipv4.tcp_timestamps = 0 net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_syn_retries = 2 net.ipv4.tcp_synack_retries = 1 #内核放弃连接之前发送SYN+ACK包的数量 net.ipv4.tcp_syn_retries =1 #内核放弃建立连接之前发送SYN包的数量 net.ipv4.tcp_max_tw_buckets =6000 #控制TIME_WAIT的最大数量timewait的数量,默认是180000。 net.ipv4.tcp_tw_recycle = 1 #TCP连接中TIME-WAIT套接字的快速回收。默认为0,表示关闭 net.ipv4.tcp_tw_reuse = 1 #允许将TIME-WAIT套接字重新用于新的TCP连接。默认为0,表示关闭。 net.ipv4.tcp_mem = 94500000 915000000 927000000 net.ipv4.tcp_max_orphans = 3276800 net.ipv4.tcp_max_syn_backlog = 65536 #SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数 fs.file-max = 65535 #系统可打开的文件数 fs.nr_open = 65535 #fs.file-max的值不要超过fs.nr_open的值
使sysctl.conf文件的修改生效
sysctl -p
-
limits.conf文件
vi /etc/security/limits.conf
在最末尾添加
* soft nofile 65535 * hard nofile 65535
查看是否生效
ulimit -a
手动修改(重启失效)
ulimit -n 65535
二、Nginx主要调试参数
主模块参数:
worker_processes = 8 #按照CPU核心数量的设置
worker_rlimit_nofile 65535; #Nginx进程打开文件描述符最大数量
use epoll; #使用epoll事件模型
worker_connections = 102400 #每个进程的最大连接数
HTTP模块参数
keepalive_timeout 60; #keepalive超时时间。
client_body_buffer_size 64K; #客户端请求内容的缓冲区大小。
client_header_buffer_size 8k; #客户端请求头部的缓冲区大小,可以根据系统的分页大小来设置。
large_client_header_buffers 4 128k;
client_max_body_size 8m; #客户端请求内容的最大值。
open_file_cache max=204800 inactive=30s; #打开文件的缓存,max指缓存的最大数量,inactive指缓存过期时间。
open_file_cache_valid 30s; #检查缓存的有效时间。
open_file_cache_min_uses 1; #inactive参数的时间内文件的最少使用次数,如果超过这个值,则保持缓存的打开状态。
三、mysql
下面的配置选项可能比较少(8G内存的MySQL),实际会超过很多人的需要,以后可以根据MySQL的运行状态进行修改。
[mysql]
port = 3306
socket = /var/lib/mysql/mysql.sock
[mysqld]
user = mysql
default_storage_engine = InnoDB
socket = /var/lib/mysql/mysql.sock
pid_file = /var/lib/mysql/mysql.pid
skip_name_resolve
key_buffer_size = 32M
myisam_recover = FORCE,BACKUP
max_allowed_packet = 16M
max_connect_errors = 1000000
log_bin = /var/lib/mysql/mysql-bin
expire_logs_days = 7
sync_binlog = 0
tmp_table_size = 32M
max_heap_table_size = 32M
query_cache_type = 1
query_cache_size = 32M
max_connections = 500
thread_cache_size = 50
open_files_limit = 65535
table_definition_cache = 1024
table_open_cache = 2048
innodb_flush_method = O_DIRECT
innodb_log_files_in_group = 2
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 2
innodb_file_per_table = 1
innodb_buffer_pool_size = 4G
log_error = /var/log/mysql-error.log
log_queries_not_using_indexes = 1
slow_query_log = 1
slow_query_log_file = /var/log/mysql-slow.log
四、tomcat
tomcat中server.xml配置
Connector标签下 8080 端口
修改protocol="org.apache.coyote.http11.Http11NioProtocol"
增加如下参数
connectionTimeout="20000"
processorCache="1000"
acceptCount="5000"
acceptorThreadCount="8"#根据实际cpu核数配置
maxThreads="2000"
minSpareThreads="100"
socket.appReadBufSize="1024"
socket.appWriteBufSize="1024"
socket.bufferPool="1000"
catalina.sh
tomcat启动文件,根据实际情况做调整,-XX:NewRatio用于配置老生代与新生代的比例
增加JAVA_OPTS="-server -Xms1048m -Xmx3072m -Xss1024K -XX:PermSize=64m -XX:MaxPermSize=128m -XX:NewRatio=4"
五、硬件负载
查看CPU负载情况
top
查看内存的使用情况
free -m
查看磁盘IO的情况
iostat -kx 2
查看网络的流量情况
sar -n DEV 2
参考资料:关于Nginx的一些优化(突破十万并发)
https://segmentfault.com/a/1190000002700923
相关推荐
jdk1.8+mysql5.7.22+tomcat8.5.32+IDEA 项目部署 ==== 第一次部署项目 1.修改ssm-rs\resources目录下db.properties的数据库账号密码信息 2.启动redis服务端,修改ssm-rs\resources\spring-config...
在构建高可用的Web服务环境中,Nginx、Tomcat和Keepalived是三个关键组件。Nginx作为一个高性能的HTTP反向代理服务器,主要负责负载均衡和静态资源处理,减轻后端应用服务器(如Tomcat)的压力。Tomcat则作为Java...
这里我们关注的是一个名为"HTTPS-nginx-tomcat配置.7z"的压缩包,它包含了Nginx、Tomcat以及MySQL的相关配置信息,这三者在Java Web应用环境中通常扮演着关键角色。接下来,我们将深入探讨这些组件及其配置。 **...
通过Nginx和Memcached的配合,我们可以对静态资源进行缓存,减轻Tomcat的压力。例如,Nginx可以配置缓存策略,将频繁访问的静态文件(如CSS、JavaScript)直接从内存中返回,无需每次都向Tomcat请求: ```nginx ...
在介绍如何在Debian环境下搭建Nginx和Tomcat服务器实现负载均衡方案之前,我们首先要理解负载均衡的基本概念。负载均衡是一种计算机网络技术,用于在多个资源间分配负载,目的是优化资源利用、最大化吞吐率、最小化...
5. **调试与日志**:Windows版Nginx的日志文件格式和Linux版类似,但可以通过Windows事件查看器进行更深入的分析。 **使用Nginx** Nginx的核心功能包括: 1. **静态文件服务**:高效地提供HTML、图片、视频等静态...
2. **资源效率**:即使在高负载下,Nginx也能保持较低的内存占用,使得其在资源有限的环境中依然高效。 3. **反向代理与负载均衡**:Nginx可以作为反向代理服务器,将客户端请求转发到后端服务器,实现负载均衡,...
- **缓存**:利用 Nginx 的缓存机制减少后端服务器的压力。 - **负载均衡**:合理分配请求至多个后端服务器。 - **压缩**:启用 gzip 压缩功能,减少传输数据量。 - **健康检查**:定期检查后端服务器状态,自动排除...
该系统架构基于树莓派 4作为主控板,mysql作为服务器的数据库,tomcat作为服务器,nginx反向代理tomcat。 在系统架构中,树莓派 4作为主控板,负责处理客户端的请求和数据交互。mysql作为服务器的数据库,负责存储...
- 性能测试:LoadRunner、JMeter等工具评估系统在高并发情况下的性能。 以上是对"java + mysql网上商城"项目的概述,具体的实现细节和代码结构需要查看源码才能进一步了解。通过这个项目,开发者可以深入学习Java...
2. **Tomcat配置文件**:如apache-tomcat-7.0.30中的server.xml和web.xml,前者设置Tomcat服务器的端口、连接池、JVM参数,后者定义Web应用的全局行为和组件配置。 3. **数据库配置**:MySQL的my.cnf或PostgreSQL的...
MySQL作为SQL数据库的代表,其主要特点包括ACID(原子性、一致性、隔离性和持久性)事务支持、多种存储引擎(如InnoDB用于事务处理,MyISAM用于读取密集型应用)以及丰富的SQL语法。在大数据量下,MySQL可以通过主从...
9. **测试与调试**:项目完成后,需要进行功能测试、性能测试和压力测试,确保系统在各种情况下能稳定运行。开发者应熟悉JUnit等测试框架,以及Chrome开发者工具等调试手段。 总的来说,这个毕业设计项目涵盖了软件...
开源中国(osChina)是中文领域的开源技术社区,其服务器配置文件`oschina-config-master.zip`包含了一系列用于管理和优化服务器环境的配置,特别是针对Nginx、Tomcat和MySQL这三个关键组件。这些配置对于运维人员来说...
在IT领域,特别是云计算和自动化运维中,Kubernetes(k8s)、Docker、Jenkins、Ansible、shell脚本、MySQL、Redis、Linux、LVS、Nginx、Tomcat、Keepalived、Zabbix等技术是核心的组成部分。这些技术在构建高效、可...
- **操作系统**:能熟练操作Linux,能在Linux环境下搭建Redis、Nginx、MySQL和Tomcat等。 - **安全与缓存**:掌握Shiro进行权限控制,熟悉Redis缓存、集群及其与Nginx的配合使用。 - **负载均衡**:能实现基于...