江苏省建设厅网站 投诉,电商企业网站建设方案,唐山建设网站制作,苏州现在能去吗系统调优
系统调优脚本#xff0c;保存为sh文件#xff0c;chmod提权后执行即可
#!/bin/sh
#系统全局允许分配的最大文件句柄数#xff1a;
sysctl -w fs.file-max2097152
sysctl -w fs.nr_open2097152
echo 2097152 /proc/sys/fs/nr_open
#允许当前会话 / 进程打开文…系统调优
系统调优脚本保存为sh文件chmod提权后执行即可
#!/bin/sh
#系统全局允许分配的最大文件句柄数
sysctl -w fs.file-max2097152
sysctl -w fs.nr_open2097152
echo 2097152 /proc/sys/fs/nr_open
#允许当前会话 / 进程打开文件句柄数
ulimit -n 1048576
#持久化 fs.file-max 设置到 /etc/sysctl.conf 文件
FIND_FILE_SYSCTL/etc/sysctl.conf
FIND_STR_FSfs.file-max
if [ grep -c $FIND_STR_FS $FIND_FILE_SYSCTL -ne 0 ];thenecho 已存在fs.file-max配置开始修改sed -i /fs.file-max/d /etc/sysctl.confecho fs.file-max 10485761 /etc/sysctl.confecho fs.file-max配置修改完成else echo 不存在fs.file-max配置开始写入echo fs.file-max 10485761 /etc/sysctl.confecho fs.file-max配置写入完成
fi
#/etc/systemd/system.conf 设置服务最大文件句柄数
FIND_FILE_SYSTEM/etc/systemd/system.conf
FIND_STR_1DefaultLimitNOFILE
if [ grep -c $FIND_STR_1 $FIND_FILE_SYSTEM -ne 0 ];thenecho 已存在DefaultLimitNOFILE配置开始修改sed -i /DefaultLimitNOFILE/d /etc/systemd/system.confecho DefaultLimitNOFILE1048576 /etc/systemd/system.confecho DefaultLimitNOFILE配置修改完成
elseecho 不存在DefaultLimitNOFILE配置开始写入echo DefaultLimitNOFILE1048576 /etc/systemd/system.confecho DefaultLimitNOFILE配置写入完成
fi#/etc/security/limits.conf 持久化设置允许用户 / 进程打开文件句柄数
#* soft nofile 1048576
#* hard nofile 1048576
FIND_FILE_LIMITS/etc/security/limits.conf
FIND_STR_SOFT* soft nofile
FIND_STR_HARD* hard nofile
if [ grep -c $FIND_STR_SOFT $FIND_FILE_LIMITS -ne 0 ];thenecho 已存在soft_nofile配置开始修改sed -i /* soft nofile /d /etc/security/limits.confecho * soft nofile 1048576 /etc/security/limits.confecho soft_nofile配置修改完成
elseecho 不存在soft_nofile配置开始写入echo * soft nofile 1048576 /etc/security/limits.confecho soft_nofile配置写入完成
fiif [ grep -c $FIND_STR_HARD $FIND_FILE_LIMITS -ne 0 ];thenecho 已存在hard_nofile配置开始修改sed -i /* hard nofile/d /etc/security/limits.confecho * hard nofile 1048576 /etc/security/limits.confecho hard_nofile配置修改完成
elseecho 不存在hard_nofile配置开始写入echo * hard nofile 1048576 /etc/security/limits.confecho hard_nofile配置写入完成
fi#TCP 协议栈网络参数
#并发连接 backlog 设置
sysctl -w net.core.somaxconn32768
sysctl -w net.ipv4.tcp_max_syn_backlog16384
sysctl -w net.core.netdev_max_backlog16384
#可用知名端口范围
sysctl -w net.ipv4.ip_local_port_range1000 65535
#TCP Socket 读写 Buffer 设置
sysctl -w net.core.rmem_default262144
sysctl -w net.core.wmem_default262144
sysctl -w net.core.rmem_max16777216
sysctl -w net.core.wmem_max16777216
sysctl -w net.core.optmem_max16777216
#sysctl -w net.ipv4.tcp_mem16777216 16777216 16777216
sysctl -w net.ipv4.tcp_rmem1024 4096 16777216
sysctl -w net.ipv4.tcp_wmem1024 4096 16777216#TCP 连接追踪设置
sysctl -w net.ipv4.tcp_max_tw_buckets1048576
sysctl -w net.ipv4.tcp_fin_timeout15
sysctl -w net.ipv4.ip_local_port_range500 65535echo 1000000 /proc/sys/fs/nr_open
ulimit -n 100000echo 系统优化完成安装
安装dnsperf依赖ck和nghttp2所以要先安装这两个应用
1、安装ck
wget https://github.com/concurrencykit/ck/archive/0.6.0.tar.gz
tar -zxvf ck-0.6.0.tar.gz
cd ck-0.6.0
./configure
make
make install2、因为nghttp2依赖python3.8以上的环境所以需要先安装python
wget https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tgz
#安装依赖
sudo yum install gcc openssl-devel bzip2-devel libffi-devel zlib-develtar -zxvf Python-3.8.12.tgz cd Python-3.8.12./configuremakemake altinstall3、安装nghttp2
wget https://github.com/nghttp2/nghttp2/releases/download/v1.45.1/nghttp2-1.45.1.tar.gz
#安装依赖
yum -y groupinstall Development Tools
yum -y install openssl-devel libxml2-devel libev-devel jemalloc-devel python-devel
tar -zxvf nghttp2-1.45.1.tar.gz
cd nghttp2-1.45.1
./configure
make
make install4、安装dnsperf export PKG_CONFIG_PATH/usr/local/lib/pkgconfig
wget https://www.dns-oarc.net/files/dnsperf/dnsperf-2.13.0.tar.gz
tar -zxvf dnsperf-2.13.0.tar.gz
cd dnsperf-2.13.0
./configure --with-nghttp2/usr/local --with-ssl --with-zlib
make
make install至此安装完毕
使用
使用前需要先准备一个dns配置文件内容如下例
1、使用如下命令开始测试
dnsperf -d dnstest.com.txt -s 10.38.248.218 -c 256 -Q 300000 -q 1000000 -l 10 -S 12、通过上图可知被测试机A的QPS性能为116044
Dnsperf参数说明常用参数
-d :指定datafile的域名数据进行读取进行压力测试 -s : 指定被测试的机器 -l :指定测试的时间 -c指定并发探测数 2.所有参数 -s 用来指定DNS服务器的IP地址默认值是127.0.0.1 -p 用来指定DNS服务器的端口默认值是53 -d 用来指定DNS消息的内容文件该文件中包含要探测的域名和资源记录类型见下文 -t 用来指定每个请求的超时时间默认值是3000ms -Q 用来指定本次压测的最大请求数默认值是1000 -c 用来指定并发探测数默认值是100. dnsperf会从-d指定的文件中随机选取100个座位探测域名来发送DNS请求. -l 用来指定本次压测的时间默认值是无穷大。 -e 本选项通过EDNS0在OPT资源记录中运用edns-client-subnet来指定真实的client ip. -i 用来指定前后探测的时间间隔因为dnsperf是一个压测工具所以本选项目前还不支持。 -P 指定用哪个传输层协议发送DNS请求udp或者tcp。默认值是udp -f 指定用什么地址类型发送DNS请求inet或者inet6。默认值是inet -v 除了标准的输出外还输出每个相应码的个数。 -h 打印帮助