Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

评测方法不具有实际意义 #4

Closed
klzgrad opened this issue Dec 5, 2020 · 20 comments
Closed

评测方法不具有实际意义 #4

klzgrad opened this issue Dec 5, 2020 · 20 comments

Comments

@klzgrad
Copy link

klzgrad commented Dec 5, 2020

虽然测试结果符合预期,但测试环境不能代表典型用户环境。一是在算力上,Xeon很少有用户使用。二是在带宽上,没有用户具有10Gb国际专线。实验室环境测试指标再高,并不会直接转化为用户实际效果。

用户实际环境中,如果是高算力低带宽,那么TLS开销便不成为瓶颈,这个吞吐指标便没有意义。如果是低算力高带宽,TLS开销才可能成为瓶颈。但是考虑到国际线路高带宽的成本远高于提高用户设备算力的成本,第二种情况是罕见的。

所以这个评测如果要具有实际意义,必须在TLS开销可能成为瓶颈的低算力硬件上,定位不同软件的满载带宽。如果用户的可用国际带宽高于测得的满算力带宽,选用不同软件才可能产生实际性能差异。

@SekiBetu
Copy link

SekiBetu commented Dec 5, 2020

实际测试过程中B为满负荷运行

B的CPU限制,使用cgroup精确限制

我知道你可能不会看完整个测试报告,所以我把其中两句话在此引用出来

更多详情在 #2 中有大量地、重复地进行讨论过了,基本情况和你说的一致,这个项目一直以来就按照这种思维进行测试的

@badO1a5A90
Copy link
Owner

badO1a5A90 commented Dec 5, 2020

所以这个评测如果要具有实际意义,必须在TLS开销可能成为瓶颈的低算力硬件上,定位不同软件的满载带宽。如果用户的可用国际带宽高于测得的满算力带宽,选用不同软件才可能产生实际性能差异。

首先,理论性能不用实验室理想环境测试还应该怎么测试.

你的这个说法是没错的,但测试方法全部做到了,甚至做的更好.
请看具体的试验说明.可以看这里
这里测试方式(需要点击展开),数据流向,限制等等都说明的非常详细了.

@SekiBetu 说的很精准.整个试验中就是刻意制造了瓶颈的低算力硬件(所有测试中满负荷),并且是客户端瓶颈(更具实际意义如硬路由),而其他部分均不会成为瓶颈(包括AD的数据制造接收能力,网络带宽等等),然后算出的不同软件的满载带宽.

所以这个测试成为了相同算力下,选用不同软件,产生实际性能差异的对比.

因此,评测方法很具有实际意义

另外关于你其他说法的补充,我文档里也有说明

  • 关于测试数据的意义
    • 各种组合配置的速率测试是性能对比测试, 不是吞吐量上限测试.
    • 测试可以体现在不同使用模式下,或不同程序版本下性能有差异.
    • 测试代表测试环境下的差异,并不表示绝对差异,也不是每个人使用后的实际性能提升.
    • 通常情况下硬件性能越低,XTLS对性能影响越大,尤其是没有AES指令的硬件设备上,会有更多倍数相差.

@badO1a5A90
Copy link
Owner

其实测试方式中第一句我就说了

要测试协议之间性能差距,那么必然是硬件CPU负荷满的情况下,其他变量不变,仅有协议组合差别下测试的情况才是有意义的。

然后下面的方式都是围绕这个构建的测试模式

@badO1a5A90
Copy link
Owner

badO1a5A90 commented Dec 5, 2020

测试通过合理的方式测试得出了不同软件/协议组合的性能差异.

测试的对于开发者和用户实际意义在于

  • 帮助开发者优化性能,这是每个优秀开发者应该追求的.
  • 帮助使用者在满足安全性伪装性和自己需求(如CDN)的前提下,选择性能最好的软件/协议组合

这也是我在文档中第一句就提到了的.

@klzgrad
Copy link
Author

klzgrad commented Dec 5, 2020

首先cgroup限制CPU使用时间只能是一种极不准确的模拟,cgroup可以限制cache使用吗,可以限制内存带宽吗,可以限制指令集特性吗,可以限制TDP吗?而且cgroup在x86上模拟出来的性能跟用户目标硬件的arm和mips怎么比较?用cgroup限制出来的硬件反而不代表任何实际硬件。

帮助开发者开发当然没问题,具有实验室意义。但是所谓实际意义就是用户实际工况下产生的效果,如果你的测试不能代表实际工况,那用评测指标来引导用户便是一种误导行为。

就现在的评测结果来看,绝大多数人根本没有大于100Mbps的国际线路,也不是将代理软件运行到cgroup限制的Xeon服务器上,所以具体的评测结果与实际工况并没有相关性。

我的推测是大多数用户的硬件算力要大于他的国际线路的带宽,这种情况下选用哪种软件都不会产生性能上的实际区别。如果要用这个评测去证明选用软件会产生性能差异,就要证明有用户实际使用的常用硬件会导致算力瓶颈低于线路带宽,而不是你人为弄残废的一个模拟环境。

@xianren78
Copy link

严格来说,很多基于实验室环境的测试都可以这么说:这个结论只有实验室意义不具有用户环境意义,因为实验室环境只能模拟用户实际环境。但是总要有近似的办法,变量可控且可比较的办法去测试性能才行。
这个其实可以用一个例子来比较,就手机系统中浏览网页速度,大概近些年的手机客户感官体验其实变化不大(相当于上面提到的用户环境100M以下国际带宽),但是人们还是在升级手机(部分为了玩游戏更快,相当于要求极限性能;更多新接口/小新屏幕/5G等特性,相当于vless提供的更多新特性;部分人单纯是看着各种测试中速度更快,耗电更低)
这个测试的意义对于用户来说,相同的有限网络环境下,需要的硬件最低,比如在软硬路由上已经得到了实际上的验证。当然对于大多数人来说,可能没有实际可肉眼感知的差别,可这也并不妨碍人换新手机啊。所以也不需要指责卖手机的各种实验室测试不具有用户意义。

@kakakuwai
Copy link

kakakuwai commented Dec 6, 2020

首先cgroup限制CPU使用时间只能是一种极不准确的模拟,cgroup可以限制cache使用吗,可以限制内存带宽吗,可以限制指令集特性吗,可以限制TDP吗?而且cgroup在x86上模拟出来的性能跟用户目标硬件的arm和mips怎么比较?用cgroup限制出来的硬件反而不代表任何实际硬件。

帮助开发者开发当然没问题,具有实验室意义。但是所谓实际意义就是用户实际工况下产生的效果,如果你的测试不能代表实际工况,那用评测指标来引导用户便是一种误导行为。

实际状况下的实际硬件情况千千万,本来就不可能被代表,协议或软件调用的资源和效能也不近相同,这时使CPU满负荷不恰好是实际意义吗?代表软件在当前情况下的最大性能,而是不是cgroup不重要。
不同架构之间当然不能直接比较,测试也只能代表测试时的实际情况,但测试也没说任何情况下提升是两倍或几倍啊,为何这就是误导了呢?为何不说网上大篇大篇的各种比较的文章或视频是误导?照你逻辑那像电子设备续航啊,防水等在实验室按特定方法测得的数据就全是误导消费者了?测试的实际意义是提供参照啊,之前的测试有arm设备的测试,性能提升是两倍,这不就是一个例子?

就现在的评测结果来看,绝大多数人根本没有大于100Mbps的国际线路,也不是将代理软件运行到cgroup限制的Xeon服务器上,所以具体的评测结果与实际工况并没有相关性。

我不知道你在哪看到的结果,但你这句话肯定错的,现在美西的vps卖最多吧,大多数都不止100Mpbs,搬瓦工美西差不多都是1G共享,跑个几百Mpbs没问题,难道你说的绝大部分人用的都是香港小水管?你要说本地带宽我还认为有可能。
代理软件运行的设备不同就没有相关性?Xtls,splice恰好是设备越差越吃香,更有可能跑出比测试还大的提升!这相关性被你吃了?

我的推测是大多数用户的硬件算力要大于他的国际线路的带宽,这种情况下选用哪种软件都不会产生性能上的实际区别。如果要用这个评测去证明选用软件会产生性能差异,就要证明有用户实际使用的常用硬件会导致算力瓶颈低于线路带宽,而不是你人为弄残废的一个模拟环境。

除了桌面端,我不敢赞同你的推测,而我也有个推测与你恰恰结论相反,大多数用户根本跑不满本地带宽,硬件算力、不同软件的性能差异有时候是很大影响因素,要不然为啥软路由这么火?大家都是吃饱了撑买性能好的CPU来翻墙?为啥都说SS和trojan-go快,说到v2ray就嫌慢?

@kakakuwai
Copy link

Xtls和splice是实实在在的巨大提升,测试也只是反应了这一事实而已。

@ghost
Copy link

ghost commented Dec 6, 2020

我的推测是大多数用户的硬件算力要大于他的国际线路的带宽,这种情况下选用哪种软件都不会产生性能上的实际区别。

何不食肉糜

@ghost
Copy link

ghost commented Dec 6, 2020

测试结果用的千兆IPLC(大误);
当然核心观点:进步是好事。只是CPU性能强的和弱的一同比较,观感更好
另外试过xtls-rprx-splice mode效能果真比trojan还高些,这个进步是明显的

@badO1a5A90
Copy link
Owner

badO1a5A90 commented Dec 6, 2020

首先cgroup限制CPU使用时间只能是一种极不准确的模拟,cgroup可以限制cache使用吗,可以限制内存带宽吗,可以限制指令集特性吗,可以限制TDP吗?而且cgroup在x86上模拟出来的性能跟用户目标硬件的arm和mips怎么比较?用cgroup限制出来的硬件反而不代表任何实际硬件。
帮助开发者开发当然没问题,具有实验室意义。但是所谓实际意义就是用户实际工况下产生的效果,如果你的测试不能代表实际工况,那用评测指标来引导用户便是一种误导行为。
就现在的评测结果来看,,也不是将代理软件运行到cgroup限制的Xeon服务器上,所以具体的评测结果与实际工况并没有相关性。

已经解释过了,测试验证的是,同样的环境下不同软件/协议组合的性能高低,并不表示绝对差异,也不是每个人使用后的实际性能提升.

  1. "绝大多数人根本没有大于100Mbps的国际线路"--不要臆测和代表所有人.

  2. 你所谓的"你的测试不能代表实际工况"--实际工况千差万别,测试当然不能代表每一个人具体使用情况,你这想法本身就不可能成立的,而且这里你的说法很模糊,偷偷混淆了概念.

准确的说,测试可以代表实际工况的理论表现,只是不能代表每一个用户实际工况的具体的精确差异.但,重要的是,测试可以证明相同的实际工作环境下,不同软件/协议组合的性能有差异.
证明相同的实际工作环境下,不同软件/协议组合的性能有差异,就是有意义的,意义在于可以供用户参考选择然后投放到自己实际工况去.
何来误导?何来没有实际意义?

  1. "具体的评测结果与实际工况并没有相关性"--因为可以证明有差异,就有相关性.
    正如上面其他人的回复中说的,测试的实际意义是提供参照啊,因为
    用户可以因此知道这些不同软件/协议组合在相同环境下,性能有差异,然后可以选择相对性能最好的.
    何来误导?何来没有实际意义?

我的推测是大多数用户的硬件算力要大于他的国际线路的带宽,这种情况下选用哪种软件都不会产生性能上的实际区别。如果要用这个评测去证明选用软件会产生性能差异,就要证明有用户实际使用的常用硬件会导致算力瓶颈低于线路带宽,而不是你人为弄残废的一个模拟环境。

  1. "我的推测是大多数用户的硬件算力要大于他的国际线路的带宽"--不要臆测和代表所有人

  2. 所谓"这种情况下选用哪种软件都不会产生性能上的实际区别"--根本就是错误理解,你把性能等同于网速?
    请你理解性能,当网络物理带宽不为瓶颈时,性能可以转化成网速.当网络物理带宽成为瓶颈时,性能可以转化为低资源消耗.(比如很多硬路由用户实测cpu明显降低,低到令人发指(群友原话))
    何来误导?何来没有实际意义?

  3. "就要证明有用户实际使用的常用硬件会导致算力瓶颈低于线路带宽"--这里直接打脸,事实就是有大量硬路由用户使用后,实际提升了网速,因为原先无法跑满网络带宽.
    何来误导?何来没有实际意义?

  4. 你总是说"实际工况",实际工况就是有用户原先没有跑满带宽然后跑满了带宽,或者同样跑满带宽的情况下但是CPU显著下降.
    我的文档里面也有用户以树莓派做服务器的实际具体数据,有显著提升(从跑不满带宽到跑满带宽).
    何来误导?何来没有实际意义?

PS: 我喜欢上面回复中的一句话.
“绝大多数人都在用蜡烛,你发明电干嘛?”

开发者是车头,应该去追求性能和优化,尽力给所有人带来更好的体验.
即便个人不追求性能和优化,也不应该说性能和优化没有意义.

@klzgrad
Copy link
Author

klzgrad commented Dec 7, 2020

#4 (comment)

绝大多数人根本没有大于100Mbps的国际线路

“绝大多数人都在用蜡烛,你发明电干嘛?”,
“绝大多数人根本没有买5G套餐,你们研发什么6G?”
【吐槽:最低价格的5G套餐比搬瓦工2.5Gbps宽带的CN2-GIA-E线路的机子还贵】
很喜欢Jim Jefferies的一句话:世界就像一列火车,车头是科学家,后面的车厢是民众,你知道把车厢断开之后车头能跑多快吗?

编辑4

我的推测是大多数用户的硬件算力要大于他的国际线路的带宽,这种情况下选用哪种软件都不会产生性能上的实际区别。

100Mbps带宽跑满了,性能好的软件CPU占用比性能差的软件少一半,但是不会产生性能上的实际区别?
两个人干活只给一份工资,资本家听了都落泪
等等,我现在才意识到,你不会把网速当成性能了吧?不会吧不会吧不会吧

据我所知CN2-GIA-E虽然标称2.5Gbps,但这这是网口指标,实际性能远低于标称,高峰期实测甚至低到10Mbps,然而这些瓶颈都不在本地可控范围内,也许是太多人开始使用KCP这类环境污染协议。我很奇怪,以CN2-GIA-E线路高昂费用,然后接上一个廉价低算力的软路由,造成软路由因廉价成为瓶颈,如果用户在这里有经济理性的话,这应该是不会发生的事情。

那么所谓用户实际情况有三种情况:

  • 有钱。那么高带宽,高算力,用什么软件无所谓。
  • 没钱。那么低带宽,低算力,即使用低效软件,算力还用不完。
  • 中等。这才是这个评测需要设计的目标场景。我一进来看见什么4000Mbps,是完全不现实的指标。

优化当然是好事。假如性能优化了十倍二十倍,但优化的只是整个系统里占据10%的部分,那整个系统也就提升了10%。这就是这类microbenchmark常见脱离实际的问题所在。

@badO1a5A90
Copy link
Owner

badO1a5A90 commented Dec 7, 2020

据我所知CN2-GIA-E虽然标称2.5Gbps,但这这是网口指标,实际性能远低于标称,高峰期实测甚至低到10Mbps,然而这些瓶颈都不在本地可控范围内,也许是太多人开始使用KCP这类环境污染协议。我很奇怪,以CN2-GIA-E线路高昂费用,然后接上一个廉价低算力的软路由,造成软路由因廉价成为瓶颈,如果用户在这里有经济理性的话,这应该是不会发生的事情。

那么所谓用户实际情况有三种情况:

  • 有钱。那么高带宽,高算力,用什么软件无所谓。
  • 没钱。那么低带宽,低算力,即使用低效软件,算力还用不完。
  • 中等。这才是这个评测需要设计的目标场景。我一进来看见什么4000Mbps,是完全不现实的指标。

你用不到不等于别人用不到.
还是那句话,不要以自己臆测所有人,不要我即世界.
"我一进来看见什么4000Mbps,是完全不现实的指标"--你完全不懂测试的意义,一直混淆概念和目的.
测试是为了验证相同环境下各种不同软件/协议组合的相对性能,不是让你看什么绝对数值.

优化当然是好事。假如性能优化了十倍二十倍,但优化的只是整个系统里占据10%的部分

任何优化都不一定所有人都能享受到,觉得优化能服务到的用户不是全部就不做了吗?
所以 又不是不能用.jpg 了是吧,你的逻辑太混乱了.
不会因此就不去优化,而是尽量优化,各个角度的优化以及增加功能,是一个逐渐完善的过程.

@SekiBetu
Copy link

SekiBetu commented Dec 7, 2020

#4 (comment)

行了行了,已经知道你不懂什么叫性能测试了,李说是,辣就是,你就当我们这群人自娱自乐行了吧😅

@badO1a5A90 下次把文档里类似以下内容的字体放大点然后加粗,有必要的话写三遍,以免某些眼瞎的人来指责说误导路人

  • 关于测试数据的意义
    • 各种组合配置的速率测试是性能对比测试, 不是吞吐量上限测试.
    • 测试可以体现在不同使用模式下,或不同程序版本下性能有差异.
    • 测试代表测试环境下的差异,并不表示绝对差异,也不是每个人使用后的实际性能提升.
    • 通常情况下硬件性能越低,XTLS对性能影响越大,尤其是没有AES指令的硬件设备上,会有更多倍数相差.

@badO1a5A90
Copy link
Owner

badO1a5A90 commented Dec 7, 2020

image

我也不想再回复了.

身为开发者,有意义的争论应该是
如何更好的去完善测试-->完善软件-->提供用户更好的体验.

而不是在这里扯淡有没有意义/有没有人能用到这优化(事实上至少硬路由/手机用户群体都享受的到)/多少人用到才有意义.

@ghost
Copy link

ghost commented Dec 7, 2020

他说不具有实际意义,那就是不具有实际意义,为什么你们知道吗,因为他这个位置很尴尬,他说的话就像是一位癌症晚期患者说的话。
他都已经这样了,你为什么不顺从他,你总得给人留一段美好的回忆吧,最后的时光里。
因为他这个位置很尴尬,在往上一点,哎,开发了一个代理类的项目,可能有丶实力,还能操作一下,在往下,连性能测试的概念都搞不懂。
人家就纯属过来装装逼的,自己也知道自己垃圾,上不去又下不来,他觉得搞测试的人不配反驳自己,
但是呢他想上去,他又上不去,想操作又操作不起来,卡在这个位置,掉下去了又不值得。
他说你们脱离实际的问题所在,为什么呢?因为他看不懂实际的问题所在。
"只要你性能测试分数比我高,那你说的所有话都是脱离实际的问题所在,我不管你说的有没有道理。"
但是,他的想法还是对的,为什么呢?因为他癌症晚期,对不起哈,可能是我膨胀了。

咋那个项目的赞都挺多的,开发者一到这就拉了胯呢

@Butterflyflower
Copy link

楼上在干嘛?????

@badO1a5A90
Copy link
Owner

他说不具有实际意义,那就是不具有实际意义,为什么你们知道吗,因为他这个位置很尴尬,他说的话就像是一位癌症晚期患者说的话。
他都已经这样了,你为什么不顺从他,你总得给人留一段美好的回忆吧,最后的时光里。
因为他这个位置很尴尬,在往上一点,哎,开发了一个代理类的项目,可能有丶实力,还能操作一下,在往下,连性能测试的概念都搞不懂。
人家就纯属过来装装逼的,自己也知道自己垃圾,上不去又下不来,他觉得搞测试的人不配反驳自己,
但是呢他想上去,他又上不去,想操作又操作不起来,卡在这个位置,掉下去了又不值得。
他说你们脱离实际的问题所在,为什么呢?因为他看不懂实际的问题所在。
"只要你性能测试分数比我高,那你说的所有话都是脱离实际的问题所在,我不管你说的有没有道理。"
但是,他的想法还是对的,为什么呢?因为他癌症晚期,对不起哈,可能是我膨胀了。

咋那个项目的赞都挺多的,开发者一到这就拉了胯呢

请大家友善讨论,勿搞人身攻击.

@badO1a5A90
Copy link
Owner

也罢,为了避免无谓的骂战,此贴终结.

@82kg
Copy link

82kg commented Dec 18, 2020

他说不具有实际意义,那就是不具有实际意义,为什么你们知道吗,因为他这个位置很尴尬,他说的话就像是一位癌症晚期患者说的话。
他都已经这样了,你为什么不顺从他,你总得给人留一段美好的回忆吧,最后的时光里。
因为他这个位置很尴尬,在往上一点,哎,开发了一个代理类的项目,可能有丶实力,还能操作一下,在往下,连性能测试的概念都搞不懂。
人家就纯属过来装装逼的,自己也知道自己垃圾,上不去又下不来,他觉得搞测试的人不配反驳自己,
但是呢他想上去,他又上不去,想操作又操作不起来,卡在这个位置,掉下去了又不值得。
他说你们脱离实际的问题所在,为什么呢?因为他看不懂实际的问题所在。
"只要你性能测试分数比我高,那你说的所有话都是脱离实际的问题所在,我不管你说的有没有道理。"
但是,他的想法还是对的,为什么呢?因为他癌症晚期,对不起哈,可能是我膨胀了。

咋那个项目的赞都挺多的,开发者一到这就拉了胯呢

人身攻击,没必要吧?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants