`
m635674608
  • 浏览: 5042738 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

linux、mysql、nginx、tomcat 环境下压力测试的主要调试参数

 
阅读更多

一、linux 系统内核参数

  1. /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
    
  2. 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

分享到:
评论

相关推荐

    基于ssm+shiro+redis+nginx tomcat服务器集群管理项目源码+项目说明.zip

    jdk1.8+mysql5.7.22+tomcat8.5.32+IDEA 项目部署 ==== 第一次部署项目 1.修改ssm-rs\resources目录下db.properties的数据库账号密码信息 2.启动redis服务端,修改ssm-rs\resources\spring-config...

    Nginx+Tomcat+Keepalived实现高可用Web集群.docx

    在构建高可用的Web服务环境中,Nginx、Tomcat和Keepalived是三个关键组件。Nginx作为一个高性能的HTTP反向代理服务器,主要负责负载均衡和静态资源处理,减轻后端应用服务器(如Tomcat)的压力。Tomcat则作为Java...

    https-nginx-tomcat配置.7z

    这里我们关注的是一个名为"HTTPS-nginx-tomcat配置.7z"的压缩包,它包含了Nginx、Tomcat以及MySQL的相关配置信息,这三者在Java Web应用环境中通常扮演着关键角色。接下来,我们将深入探讨这些组件及其配置。 **...

    nginx和memcached配置tomcat的jar包

    通过Nginx和Memcached的配合,我们可以对静态资源进行缓存,减轻Tomcat的压力。例如,Nginx可以配置缓存策略,将频繁访问的静态文件(如CSS、JavaScript)直接从内存中返回,无需每次都向Tomcat请求: ```nginx ...

    Debian下搭建Nginx和Tomcat服务器实现负载均衡的方案

    在介绍如何在Debian环境下搭建Nginx和Tomcat服务器实现负载均衡方案之前,我们首先要理解负载均衡的基本概念。负载均衡是一种计算机网络技术,用于在多个资源间分配负载,目的是优化资源利用、最大化吞吐率、最小化...

    最新版windows nginx-1.20.0.zip

    5. **调试与日志**:Windows版Nginx的日志文件格式和Linux版类似,但可以通过Windows事件查看器进行更深入的分析。 **使用Nginx** Nginx的核心功能包括: 1. **静态文件服务**:高效地提供HTML、图片、视频等静态...

    nginx服务企业应用1

    2. **资源效率**:即使在高负载下,Nginx也能保持较低的内存占用,使得其在资源有限的环境中依然高效。 3. **反向代理与负载均衡**:Nginx可以作为反向代理服务器,将客户端请求转发到后端服务器,实现负载均衡,...

    Nginx高性能WEB服务器系列(超级详细)

    - **缓存**:利用 Nginx 的缓存机制减少后端服务器的压力。 - **负载均衡**:合理分配请求至多个后端服务器。 - **压缩**:启用 gzip 压缩功能,减少传输数据量。 - **健康检查**:定期检查后端服务器状态,自动排除...

    孙一鸣 基于树莓派的远程web服务器.docx

    该系统架构基于树莓派 4作为主控板,mysql作为服务器的数据库,tomcat作为服务器,nginx反向代理tomcat。 在系统架构中,树莓派 4作为主控板,负责处理客户端的请求和数据交互。mysql作为服务器的数据库,负责存储...

    java + 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 mycat redis

    MySQL作为SQL数据库的代表,其主要特点包括ACID(原子性、一致性、隔离性和持久性)事务支持、多种存储引擎(如InnoDB用于事务处理,MyISAM用于读取密集型应用)以及丰富的SQL语法。在大数据量下,MySQL可以通过主从...

    毕业设计源码之基于微信小程序的在线点餐系统设计与实现.zip

    9. **测试与调试**:项目完成后,需要进行功能测试、性能测试和压力测试,确保系统在各种情况下能稳定运行。开发者应熟悉JUnit等测试框架,以及Chrome开发者工具等调试手段。 总的来说,这个毕业设计项目涵盖了软件...

    oschina-config-master.zip

    开源中国(osChina)是中文领域的开源技术社区,其服务器配置文件`oschina-config-master.zip`包含了一系列用于管理和优化服务器环境的配置,特别是针对Nginx、Tomcat和MySQL这三个关键组件。这些配置对于运维人员来说...

    面试总结(1)(1)(5).docx

    在IT领域,特别是云计算和自动化运维中,Kubernetes(k8s)、Docker、Jenkins、Ansible、shell脚本、MySQL、Redis、Linux、LVS、Nginx、Tomcat、Keepalived、Zabbix等技术是核心的组成部分。这些技术在构建高效、可...

    JavaEE求职简历-姓名-JAVA开发工程师-范文.doc

    - **操作系统**:能熟练操作Linux,能在Linux环境下搭建Redis、Nginx、MySQL和Tomcat等。 - **安全与缓存**:掌握Shiro进行权限控制,熟悉Redis缓存、集群及其与Nginx的配合使用。 - **负载均衡**:能实现基于...

Global site tag (gtag.js) - Google Analytics