模拟io操作
boot项目 写一个get请求的接口,http 请求一次会复制一次文件到指定文件夹
打包成jar 在服务器执行jar包
nohup java -Xms256m -Xmx256m -XX:PermSize=64m -XX:MaxPermSize=128m -server -Dserver.port=8087 -jar zctest.jar cztest --spring.profiles.active=dev ./test_info_8099.log 2./test_info_8099.log 生成日志2TCP | wc -l
win:netstat -ano | find TCP /i /c ---/i 不匹配大小写 --/c 统计
若发起方机器,这个命令统计后的数值为约1.4w,则你本地端口成为性能瓶颈
tcp udp 区别
相同点:tcp和udp都是传输层协议
不同点:udp 无连接协议,大小有限制,速度快,不靠协议,易丢失
tcp 面向连接协议,故需要三次握手 所以安全,应用广泛,可用来下载,浏览网页
接口50个并发持续压测 300s
并发场景下出现了端口被占用的错误
链接不到被测试服务器,是因为被测服务器问题导致
当前win的tcp端口数量
调优方式:
win 发起时
修改请求方式:去掉keepalive 延迟报错时间
查看当前linux设备的ipv4 端口:sysctl -a |grep net.ipv4.ip_local_port_range
修改端口范围:
sysctl -w net.ipv4.ip_local_port_range=1024 65534
生效 sysctl -p
修改过后ip端口可以达到 6.4w个端口
使用ulimit -a` 查看所有的限制
`ulimit -n` open files 打看文件数量限制 默认1024. 某一个应用程序,最多可以打开的文件数量
临时修改文件 : ulimit -选项参数 配置值 ulimit -n 2048 将打开文件数变为2048
具体参数的含义
持久化\永久性的修改: vim /etc/security/limits.conf
一般配置这两个参数:nofile文件,nproc进程
*代表任何用户
修改limits文件后reboot重启
配置项已经修改
带宽问题的判断方式:
根据吞吐量和网络带宽计算网络是否有瓶颈
通过ping 服务器查看是否丢包和 未压测前的时间与在进行压测时的,时间之间有没有明显的差异
通过检查系统配置是否成为瓶颈
看具体某个进程运行打开的文件数量
可以通过 ulimit -n 修改打开文件数和 ulimit -u 最大并发线程数
cat /proc/sys/fs/file-max 查看系统允许打开的最大文件数量查看某个进程当前已经打开的文件总数
Isof -p PID | wc -l
lsof | wc -l 查看当前系统打开的总文件数量
禁ping 命令 避免对服务器发起负载
原始值为0
通过下列命令修改为1
sysctl -w net.ipv4.icmp_echo_ignore_all=1
sysctl -w net.ipv4.route.flush=1
配置生效
sysctl -p