- 主题:学了个新手艺,跨进程传递文件描述符
windows上很简单,就一个DuplicateHandle
进程是隔离单位,大量的进程间通信,除非是为了特别的设计目的或限制,是不好的做法。
【 在 z16166 的大作中提到: 】
: 你是指子进程继承父进程句柄?还是别的进程dup一下句柄?
: unix/linux上这是基本手法,入门功课。
: 子进程继承句柄在win上用得人少。而且MS家有个LSP机制跟这个东西冲突,LSP有两种,用得最多的是其中一种,叫non-IFS LSP。
: ...................
--
FROM 114.246.171.*
通信机制不就是ipc么,系统相关的岗位有的会把列举ipc方式当作暖场面试题的
另外说的这个单机上靠进程做负载均衡的,现在Linux世界还有这么原始的实现呢?应该没人用了吧,这玩意延迟有点大
【 在 hgoldfish 的大作中提到: 】
: DuplicateHandle() 和 dup() 类似。需要配合一个其它通信机制,才能把 handle 发送给另外一个进程。
: 而楼主说的是 sendmsg() + unixsocket 功能更完整一点,包含了 DuplicateHandle() 的功能和额外的通信机制。
: 这种机制,经常被用于 Unix 的服务进程负载均衡。master 进程专门接收 socket fd,再根据 slave 进程的繁忙程度给它们派发 fd
: ...................
--
FROM 114.246.171.*
跨进程传handle对于现代web server来说也太落后了。
nginx性能还比不过iis:
https://www.rootusers.com/linux-vs-windows-web-server-benchmarks/iis都多少年没有更新了。
听说Linux那边有Lighttpd和几个新的web server性能不错,如果不是为了隔离等目的,应该没有再跨进程玩的了吧
【 在 hgoldfish 的大作中提到: 】
: sendmsg() 本身就是 IPC 啊。所以我说 sendmsg() 和 DuplicateHandle() 有区别。
: 我描述的是 UNP 里面写的内容。实际生产中好像没有真的用 sendmsg() 调度的。
: 不过 UNIX 下面用进程太正常了。鼎鼎大名的 nginx 就是多进程模式啊。
: ...................
--
FROM 114.246.171.*
你说的是url rewrite?nginx不可能比iis复杂的,iis当年是同时是web server和application server,两条线竞争的。
我想起来你举的nginx的例子当负载均衡可能不太妥当,web server有时候需要做in process 的application server,这种情况需要的是隔离而不是负载均衡,这个是无法绕过去的。
【 在 hgoldfish 的大作中提到: 】
: nginx 性能性能拼不过 IIS 主要是因为 nginx 功能多吧。nginx 的配置文件感觉比 IIS 复杂啊,表达式求值,判断语句都有了。不知道循环语句有没有。CDN 的人已经把 nginx 用成 C/lua 语言的应用服务器了。
:
--
FROM 114.246.171.*
这就是我看不起“开源运动”的一点:没有设计能力,没有执行落地能力
现在都该用iouring、dpdk做web server的年代了,一个落地的也没有
【 在 adoal 的大作中提到: 】
: 有锤皆钉原理……
: 不过话说当年Linux圈也考虑过在kernel里给web server加速作弊,
: 做出来效果一般,又没有通用性,后来就没人搞了。毕竟不像Windows
: ...................
--
FROM 114.246.171.*
你再仔细读读,我原文有说因为多进程么,只是借机调戏调戏老鱼
【 在 Naory 的大作中提到: 】
: 他这个测试到8核的时候,Nginx已经比iis差得不多了。
:
: 而且他也承认没有专门调过,用的是系统默认配置。真的到了线上肯定要针对调的。
: ...................
--
FROM 114.246.171.*
开源主力一直是外国人吧
国内一直是 用 开源的主力
【 在 hgoldfish 的大作中提到: 】
: 因为现在开源都是倾销。
: 码农们都吃不起饭买不起房子了,还搞啥开源呢。
:
--
FROM 114.246.171.*
“开源运动”另外一个让人看不起的点就是,技术问题通过谎言手段变的宗教化。
商业,免费,闭源,开源,开放,开源运动,这六个是不同的东西。
开源这东西在开源运动几十年前就出现了,甚至如果算上科学那边各种底稿手稿公开的话,可以说开源先于开源运动几百年。
开源和开源运动的区别在于,开源运动试图对立开源和商业闭源,美化开源,丑化商业和闭源。
现在仍然有很多开源产品并不参与开源运动,不排斥商业化和闭源,比如用mit许可的产品。
而商业闭源有什么问题?没有什么问题,通过创作产品挣钱一点也不可耻。
开源运动通过强行对立开源和商业闭源,诱惑十几岁二十岁的年轻人,别人创作的产品应该无偿让你用,别人开源才是你学习的唯一途径,别人不开源就是邪恶的。
全然不顾很多商业公司尽管是闭源的,但是都公开了所有设计原理和思路。
开源运动通过强行对立三种情况,在年轻人中培养了大量的二极管思维。
比如英明神武的豆大,你平时肯定不会是二极管的。
但开源运动在你年轻的时候对你有过影响,在我批评开源运动之后,自然而然的把我归入开源运动在你脑中植入的敌对方--商业闭源那边。
而事实上我是支持商业,免费,闭源,开源,开放的,我在GitHub上的开源的项目肯定比Linux版面绝大部分人多多了。但我并不支持开源运动。
商业和闭源我其实一点都没有提。此处的二极管想法很容易就把我归入开源运动自己树立的敌对方去了
另外比如@Naory , @hongyan2022 , @hgoldfish ,@lambdai ,这一排回复看下来,明显是一个宗教破防之后人群意识自我补偿的过程:
Naory说8核之后差不多,但其实还有别的说明nginx不行的数据我没有贴,毕竟最开始纯粹是打算调戏一下老鱼。
Naory还提到调优能优化nginx。难道iis就不能调优了么。没有什么逻辑在此的。
hongyan2022 高兴的发现了有人和他想法一致。人群思想开始强化
到老鱼这就开始“iis问题是那不是现实”
lambdai 开始“运行在内核态的部分在虚拟机得环境很容易偷cpu的"。
一个很有意思的、不讲数据的、纯嘴炮的起承转合的过程
把技术问题宗教化,是一个很扯淡的过程
【 在 adoal 的大作中提到: 】
: 哦,你喜欢闭源商业模式里的长处就好^_^
:
--
FROM 114.246.171.*
没有落地的就别说啥执行力了吧。
Windows 8上面有registered io(rio),dpdk和iouring抄的rio。
大概是2016年有人给.net的application server提过rio的修改,性能据他们公司自己测试,打爆了techempower上所有框架。
但这个补丁进了.net的预备役之后被微软否了。
这些没有完全落地的没有太多讨论价值
【 在 lambdai 的大作中提到: 】
: webserver还是httpserver? 前者不太需要吧。
: envoy有iouring的extension,虽然没那么纯粹,因为需要libevent去触发检查cq
: 我前些天看netty社区在大量试验iouring了,zuul也提供option了
: ...................
--
FROM 114.246.171.*
目前只是一个简单平和的技术讨论吧,除了为了解释清楚,打的字有点多。
开源运动的讨论,咱俩也不是第一次讨论了,如果对于你来说是个宗教引战的讨论不想参与,就不要继续回复了呗
【 在 adoal 的大作中提到: 】
: 哦,你喜欢沉浸在用anti开源运动能坚持你纯技术化初心的想象中就好。
: 我是真不明白,就说了一下kernel加速http的旧事,我又没引战,你哪来
: 这么激动……你直接回那几个好了嘛,关我捷豹毛事,我已经尽量避免
: ...................
--
FROM 114.246.171.*