关于windows环境使用nginx的一些性能问题

news2024/11/15 21:47:55

遇到的问题

最近在一个windows环境中部署nginx,遇到了以下问题:

1. nginx启动了九个线程(1master+8woekr),但是所有链接都被1个woker接收,其余worker不工作

2. 用户端访问web很慢,登录服务器使用127.0.0.1访问本地页面也很慢

3. 已知服务器带宽、内存、磁盘读写均不存在任何瓶颈

4. 服务器并发访问数大概在500-1500左右,ngxin只占用15%的cpu和少量内存

5. 根据网上教程对nginx做了各种参数优化均不起作用。

后来我翻了以下nginx的官方文档,在有关windows环境的说明中提到了以下几点:

Version of nginx for Windows uses the native Win32 API (not the Cygwin emulation layer). Only the select() and poll() (1.15.9) connection processing methods are currently used, so high performance and scalability should not be expected. Due to this and some other known issues version of nginx for Windows is considered to be a beta version. At this time, it provides almost the same functionality as a UNIX version of nginx except for XSLT filter, image filter, GeoIP module, and embedded Perl language.

windows版本的nginx使用Win32原生api,只有select()和poll()两种链接处理方式(nginx上则支持像是epoll()这种高性能的处理方式),所以不要对性能和可拓展性抱有期望了。因为以上原因和一些其他已知的问题,windows版本的nginx被认为是一个beta测试版。目前windows for nginx提供和UNIX版本几乎相同的功能,除了XSLT filter, image filter, GeoIP module, and embedded Perl language.

 Known issues

  • Although several workers can be started, only one of them actually does any work.
  • The UDP proxy functionality is not supported.

已知问题

  • 虽然nginx会启动很多worker线程,但是只有一个worker线程在真正工作。
  • 不支持UDP代理功能
根据nginx官方的描述,结合本人的实践,得出的结论是在面对高并发场景时,最好不要选择在windows上使用nginx。至于这个高并发到底有多高? 就我目前的windows server大概在保持不到300个连接数的时候就已经出现了非常验证的卡顿问题了。

解决方案

更换web服务器,可以使用IIS,如果你对IIS不熟悉的话,也可以换caddy

我将web服务迁移到caddy后,web访问慢的现象立马就解决了,并且cpu占用率也降低至5%(nginx cpu占用率长期为12%,不会增加也不会减少,很奇怪)。

从下列地址可以下载到caddy的发行包

Releases · caddyserver/caddy · GitHub

caddy的优势:

1. 使用go编写,天然跨平台,对windows友好

2. 配置简单。(风格和nginx接近,但是仍然有很多差异,需要好好读一下官方文档)

3. 有开源社区翻译的中文文档提供支持。我大概用了两三个小时的实践根据文档将nginx迁移到了caddy。

4. 原生支持ACME自动更新https证书。

最后补一张对比图,更换caddy后cpu占用降低,且上行带宽消耗增加。幅度可能不大明显,但是web访问速度是明显增加了的,更换之前系统基本处于半瘫痪状态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2053291.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

xcode配置使用摄像头和相册权限,没有Info.plist文件也可以配置,解决Thread 4: signal SIGABRT报错问题

最新的Xcode更改了相册和相机的权限关键字,在进行真机调试,或真正在用户使用的时候需要添加这些权限,否则在程序正确时仍然会产生下面的错误: Thread 4: signal SIGABRT This app has crashed because it attempted to access pri…

【Web APIs】JavaScript 操作元素 ④ ( 修改元素属性示例 | 密码表单标签结构 | 密码输入框样式设置 | 右侧图标按钮设置 | JavaScript 修改元素属性示例 )

文章目录 一、案例需求二、关键要点1、密码表单标签结构2、设置盒子样式3、密码输入框样式设置4、右侧图标按钮设置5、盒子模型右侧图标按钮设置 三、JavaScript 修改元素属性示例四、完整代码示例 JavaScript 中 可以通过 DOM ( 文档对象模型 ) 操作 来 修改网页的 内容 , 结构…

牛客JS题(四十六)斐波那契数列

注释很详细&#xff0c;直接上代码 涉及知识点&#xff1a; 递归斐波那契数列 题干&#xff1a; 我的答案 <!DOCTYPE html> <html><head><meta charset"UTF-8" /><style>/* 填写样式 */</style></head><body><!-…

宝马销量崩了,不卷价格就卷铺盖

文 | AUTO芯球 作者 | 雷慢 宝马这回真天塌了&#xff0c; 还记得7月初宝马宣布涨价吗&#xff0c; 我当初就劝我那准备宝马i3的同学说&#xff0c; 别急&#xff0c;怎么涨上去的就会怎么跌回去。 这不&#xff0c;一涨价&#xff0c;价格是保住了&#xff0c;但是销量惨…

【获取本机简要配置信息】(bat)

输出结果(示例)如下 如果提示 ‘系统找不到指定的路径’ 请把set Log那行的路径换一下&#xff0c;换成一个存在的路径就行 比如直接放C盘 set LogC:\本机配置信息.txt 如果提示 “客户端没有所需的特权” 请右键后选择 “以管理员身份运行” 上代码 echo off::设置信息保存路…

【17】暴力递归改dp(下)

目录 一.两人玩游戏 二.象棋游戏 三.鲍勃存活 四.凑钱方案数问题 一.两人玩游戏 题目&#xff1a;有一个正整数数组&#xff0c;A和B两个人轮流拿数组的最左或最右的数值&#xff0c;返回最终的最高分数。 暴力递归版本 public static int win1(int[] arr) {if (arr null…

Chat App 项目之解析(三)

Chat App 项目介绍与解析&#xff08;一&#xff09;-CSDN博客文章浏览阅读76次。Chat App 是一个实时聊天应用程序&#xff0c;旨在为用户提供一个简单、直观的聊天平台。该应用程序不仅支持普通用户的注册和登录&#xff0c;还提供了管理员登录功能&#xff0c;以便管理员可以…

webflux源码解析(1)-主流程

目录 1.关键实例的创建1.1 实例创建1.2 初始化 2.处理请求的关键流程2.1 从ReactorHttpHandlerAdapter开始2.1 DispatcherHandler的初始化2.2查找mapping handler2.3 处理请求(执行handler)2.4 返回结果处理 3.webflux的配置装配参考&#xff1a; WebFlux是Spring 5.0框架推出的…

算法的学习笔记—对称的二叉树(牛客)

&#x1f600;前言 在算法的世界中&#xff0c;二叉树是一个极其重要的数据结构。它不仅广泛应用于各种算法的设计中&#xff0c;也是面试中常见的考察点之一。今天&#xff0c;我们将深入探讨一个经典的二叉树问题——对称的二叉树&#xff0c;并且会展示如何通过Java代码来解…

趋动VAICP技术认证全球考试正式上线

8月18日&#xff0c;趋动科技主办的VAICP(VirtAl Certified Professional) Al算力池化专家认证考试正式在 Pearson VUE上线。 即日起&#xff0c;凡参加过VAICP培训的学员&#xff0c;可立即通过Pearson VUE官网注册参加考试&#xff0c;官网链接&#xff1a;https://home.pea…

是肯定,更是动力 | 一封封感谢信纷至沓来,全视通服务获赞誉

在全视通的故事里&#xff0c;有那么一群人&#xff0c;他们穿梭于全国各地&#xff0c;奔波于各种交付调试、维检。山河湖海&#xff0c;严寒酷暑&#xff0c;从晨曦至夜幕&#xff0c;他们只为兑现那份让客户更加满意的承诺。他们是使命必达的守护者——全视通服务团队。他们…

串口UART

常见通信接口 串口定义 串口定义&#xff1a; 通用串行异步收发器 通用&#xff1a;UART的应用非常广泛&#xff0c;应用领域&#xff1a;工控行业&#xff0c;电力系统等串行&#xff1a;处理器和外设之间只需连接一根信号线&#xff0c;处理器和外设数据传输是一个bit位一…

CORS跨域问题全解:原理、问题与解决方案

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

【Qt】QDesigner 源码 控件图片资源路径

qttools-5.12.12-designer-1\qttools-5.12.12-designer\qttools-5.12.12\src\designer\src\components\formeditor\images\win qttools-5.12.12-designer-1\qttools-5.12.12-designer\qttools-5.12.12\src\designer\src\components\formeditor\images\widgets

docker部署drawio

1&#xff09;介绍Drawio.io GitHub&#xff1a;GitHub - jgraph/drawio: draw.io is a JavaScript, client-side editor for general diagramming. Draw.io是一款开源的绘制流程图的工具&#xff0c;拥有大量免费素材和模板。程序本身支持中文在内的多国语言&#xff0c;创建…

【源码+文档+调试讲解】健美操评分系统

摘 要 健美操评分系统采用B/S架构&#xff0c;数据库是MySQL。系统的搭建与开发采用了先进的JAVA进行编写&#xff0c;使用了springboot框架。该系统从三个对象&#xff1a;由管理员、裁判员和用户来对系统进行设计构建。主要功能包括首页&#xff0c;个人中心&#xff0c;裁判…

2024潜力市场:工商业屋顶光伏项目开发!

随着全球对可再生能源的日益重视和“双碳”目标的持续推进&#xff0c;工商业屋顶光伏项目作为分布式光伏的主要类型之一&#xff0c;正迎来前所未有的发展机遇。 一、技术成熟度与成本降低 近年来&#xff0c;光伏技术的飞速发展显著提升了光伏组件的转换效率&#xff0c;并降…

记git仓库由局域网迁移到外网

项目管理平台&#xff1a;gitlab 一台云主机 流程&#xff1a; 1.外网机器上搭建gitlab 2.项目网站上新建空白项目 3.本机就项目切换到主分支&#xff0c;切换源&#xff1a;git remote set-url origin http://x.x.x.x:yyy/zzzz/new.git 4.登陆新平台的账号&#xff0c;使…

【吸引力法则】探究人生欲:追求深度体验与宇宙链接

文章目录 什么是人生欲&#xff1f;唤醒人生欲&#xff1a;克服配得感的三大障碍1 第一大障碍&#xff1a;法执的压制2 第二大障碍&#xff1a;家庭的继承2.1 家庭创伤的代际传递2.2 家庭文化基因的传递2.2.1 “成年人最大的美德是让自己的生活过得更加精彩。”2.2.2 荷欧波诺波…

【数据分享】1999—2022年地级市地区生产总值及一二三产构成数据(Shp/Excel格式)

在之前的文章中&#xff0c;我们分享过基于2000-2023年《中国城市统计年鉴》整理的1999-2022年地级市的人口相关数据、各类用地面积数据、污染物排放和环境治理相关数据、房地产投资情况和商品房销售面积、社会消费品零售总额和年末金融机构存贷款余额、一般公共预算收支状况、…