LNMP环境下压力测试时的主要调试参数

LNMP环境下压力测试时的主要调试参数:

进行HTTP的压力测试时,很多时候会遇到很小的并发数,服务器就会出现不响应,或者连接超时,一般导致的原因有如下几点:

一、Nginx主要调试参数

主模块参数:
worker_processes = 4           #按照CPU核心数量的设置
worker_rlimit_nofile 65535;    #Nginx进程打开文件描述符最大数量
use epoll;                     #使用epoll事件模型
worker_connections = 10240     #每个进程的最大连接数

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=10240 inactive=30s;  #打开文件的缓存,max指缓存的最大数量,inactive指缓存过期时间。
open_file_cache_valid 30s;     #检查缓存的有效时间。
open_file_cache_min_uses 1;    #inactive参数的时间内文件的最少使用次数,如果超过这个值,则保持缓存的打开状态。

fastcgi_buffers 8 32k;         #读取FastCGI返回信息的缓冲数量和大小。
fastcgi_buffer_size 128k;      #读取FastCGI服务器响应头部的缓冲区大小。
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_connect_timeout 120;   #连接到后端FastCGI的超时时间。
fastcgi_send_timeout 120;      #向FastCGI传送请求的超时时间。
fastcgi_read_timeout 120;      #接收FastCGI应答的超时时间。

二、PHP主要调试参数

1、php-fpm主要调试参数
pm = dynamic
进程管理方式,一般是static或者dynamic。

pm.max_children = 100
表示创建的子进程的数量。

pm.max_requests = 10000
每个子进程重起之前服务的请求数,存在内存泄漏时比较有用

rlimit_files = 65535
打开文件描述符的限制,可以使用ulimit -n查看。

2、php.ini主要调试参数
upload_max_filesize 8m
post_max_size 8m
max_execution_time 600
max_input_time 600
memory_limit 8m

三、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

四、Linux系统内核参数

1、sysctl.conf文件常用参数
fs.file-max                  #linux系统中可以打开的文件数量
net.core.netdev_max_backlog  #允许送到队列的数据包的最大数目
net.core.rmem_max            #SOCKET读缓存区大小
net.core.wmem_max            #SOCKET写缓存区大小
net.core.somaxconn           #系统中每一个端口最大的监听队列的长度
net.ipv4.ip_local_port_range #允许系统打开的端口范围
net.ipv4.tcp_fin_timeout     #TIME_WAIT2进入CLOSED的等待时间
net.ipv4.tcp_keepalive_time  #TCP发送keepalive消息的时间
net.ipv4.tcp_max_syn_backlog #SYN队列的长度
net.ipv4.tcp_synack_retries  #内核放弃连接之前发送SYN+ACK包的数量
net.ipv4.tcp_syn_retries     #内核放弃建立连接之前发送SYN包的数量
net.ipv4.tcp_max_tw_buckets  #控制TIME_WAIT的最大数量
fs.file-max                  #系统可打开的文件数
fs.nr_open                   #fs.file-max的值不要超过fs.nr_open的值

使sysctl.conf文件的修改生效
# sysctl -p

2、limits.conf文件
# vi /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535  

五、硬件负载

查看CPU负载情况
# top

查看内存的使用情况
# free -m

查看磁盘IO的情况
# iostat -kx 2

查看网络的流量情况
# sar -n DEV 2
时间: 2024-10-08 10:44:54

LNMP环境下压力测试时的主要调试参数的相关文章

在LNMP环境下安装测试HTTPS及其问题

由于现在HTTPS网站已经成为主流,所以今天在我的LNMP环境下测试了一下自建的SSL证书的使用.由于是自己建的CA以及密钥,所以一般的浏览器是不会认为安全,想要让主流浏览器认为安全,还是要花钱到认证机构去申请证书. 以下是我的配置步骤以及碰到的一个问题. HTTPS简介 https就是在http的基础上使用了ssl加密验证,使网络传输更安全. 1.LNMP环境 [[email protected] sslkey]# /application/nginx/sbin/nginx -V nginx

centos6.7、centos6.5下yum方式搭建lnmp环境,php5.4/mysql5.5

由于电脑重装系统,之前虚拟机中的所有系统都打不开了,不得已又得从0开始安装.我下载的是centos6.5的镜像,在虚拟机中安装完以后,执行了一下yum update,系统升成了6.7的,但是对于lnmp环境的安装时没有影响的,6.5和6.7的安装方法是一样的. 一.安装php5.4 1.配置yum源 6.7和6.5中默认是没有php5.4版本的,所以我们需要先配置一下yum源. 执行命令: rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rp

LNMP环境应用

企业LNMP环境应用 L=linux 丨 N=nginx 丨 A=apache 丨 P=php 丨 T=tomcat Nginx和Apache都是Web应用服务器 相对来说,Nginx处理静态数据快,Apache处理动态快 Nginx对系统资源占用小,Apache资源占用高 Nginx用得是epoll模型(异步非阻塞IO),Apache用的是select模型(同步阻塞IO) LNMP介绍 大约在2010年以前,互联网公司最常用的经典Web服务环境组合就是LAMP(即Linux,Apache,My

搭建lnmp环境,部署php动态网站

搭建LNMP 前言:"N"代表Nginx与apache的作用一样,都是为了搭建网站服务器,由俄罗斯人lgor sysoev开发,其特点是占有内存少,并发能力强,单台物理服务器可支持3万-5万个并发请求,中国使用nginx网站用户有:百度.京东.新浪.网易.腾讯.淘宝等. 通过下面的实验搭建LNMP环境,部署天空影城的php动态网站 本实验在虚拟机中运行,使用Redhat6.5系统部署! 一.安装及运行 1.搭建yum仓库,安装支持软件 nginx的配置及运行需要pcre,zlib等软件

企业中的软件开发——开发环境、测试环境、镜像环境与生产环境的区别

开发环境:开发环境是程序员们专门用于开发的服务器,配置可以比较随意,为了开发调试方便,一般打开全部的错误报告和测试工具,是最基础的环境.开发环境的分支,一般是feature分支. 测试环境:一般是克隆一份生产环境的配置,一个程序在测试环境工作不正常,那么就肯定不能把它发布到生产服务器上,是开发环境到生产环境的过渡环境.测试环境的分支一般是develop分支,部署到公司私有的服务器或者局域网服务器上,主要用于测试是否存在bug,一般会不让用户和其他人看到,并且测试环境会尽量与生产环境相似.有时测试

CentOS6系统源码安装LNMP环境详解

一.安装nginx 以下命令均在root权限下执行,普通用户可通过su命令切换1.安装依赖 yum install gcc-c++ yum install pcre pcre-devel yum install openssl openssl-devel 2.下载源码 wget http://nginx.org/download/nginx-1.8.1.tar.gztar -zxvf nginx-1.8.1.tar.gzcd nginx-1.8.1 3.创建nginx用户 useradd -M 

centos 6.8 安装LNMP环境(linux+nginx+mysql+php)

Nginx 特性 Nginx 性能稳定.功能丰富.运维简单.处理静态文件速度快且消耗系统资源极少.1.相比 Apache,用 Nginx 作为 Web 服务器:使用资源更少,支持更多并发连接,效率更高.2.作为负载均衡服务器:Nginx 既可在内部直接支持 Rails 和 PHP,也可支持作为 HTTP 代理服务器对外进行服务.Nginx 用 C 编写而成, 不论是系统资源开销还是 CPU 使用效率都比 Perlbal 要好的多.3.作为邮件代理服务器:Nginx 同时也是一款非常优秀的邮件代理

从零搭建LNMP环境

Linux就是环境所在的操作系统: Nginx则是一个「高性能的HTTP和反向代理服务器」,官网地址:http://nginx.org/: MySQL则是一个方便地对数据进行增删改查的数据库管理系统,官网地址:http://www.mysql.com/: PHP则是用来处理具体请求的脚本语言,官网地址:http://www.php.net/ 运用这4件工具,最简单直接的一个用途就是搭建一个网站,例如现在我的个人网站就是在「LNMP」上面跑的 其实在Nginx开始受到关注之前,「LAMP」是搭建网

YUM部署高版本LNMP环境

现状: yum epel源自带php mysql nginx版本较低不能满足测试和生产环境中程序性能及安全需求 LNMP-->Web环境快速部署 需求: yum源带的php版本也是5.4, 当我们需要使用5.6或者7.0版本的PHP时, 就只能编译安装了. 但有时候我们不想处理一些依赖问题, 希望能够通过yum, 快速部署, 这个时候就需要引入第三方yum源 WEBTATIC国外第三方EPEL https://webtatic.com/packages/ PHP第三方EPEL源 CentOS 6