Clear Linux 是不是用了自家的 Server 版本当生产环境?

2019-09-21 08:00:27 +08:00
 geekvcn
官网挂掉了,怎么那么想不开用个性能虽然激进,但是没怎么经过检验的当生产环境,而且所谓的优化貌似就是软件加点编译参数,懂得人都知道编译优化是有局限性的,比如 AVX 之类的,想要发挥复杂指令集全部优势,还得源代码上就对相应指令集做优化
5390 次点击
所在节点    Linux
10 条回复
zeroDev
2019-09-21 08:15:31 +08:00
502 的确出问题了
不过我看这系统跑分比其他第二名 Ubuntu (好像是的)多了快一倍
geekvcn
2019-09-21 08:37:25 +08:00
@zeroDev 那点性能优势,别的发行版内核启动参数里把熔断和幽灵缓解补丁禁用,立马就追回来了
msg7086
2019-09-21 08:46:27 +08:00
源代码上对相应指令集做优化是指?
geekvcn
2019-09-21 08:50:33 +08:00
@msg7086 打个比方,一个游戏服务器,需要通过虚拟地图控制 AI 的碰撞和路径,防止出现钻地,飞天,穿墙的情况,这就需要大量的浮点运算,在代码中把响应组件中对应计算添加 AVX512 的支持,性能就会指数级提升,类似指令集还有很多
geekvcn
2019-09-21 08:56:28 +08:00
@msg7086 我原来打算给个人服务器直接装 Clear Linux,然后通过 LXC 部署软件,试试水,结果官网都打不开,希望只是他们 web 服务代码有问题吧
msg7086
2019-09-21 08:57:35 +08:00
@geekvcn 那让编译器自己矢量化不行吗?
geekvcn
2019-09-21 09:00:22 +08:00
@msg7086 都说有局限性了,没有手动优化的性能好,要是编译器就能完全优化,那倒是好事,可惜效果有限
msg7086
2019-09-21 09:13:24 +08:00
@geekvcn 关于 SIMD 优化的技术我倒是一直想找人探讨一下,可惜很少看到讨论的帖子。
我之前在做一个视频滤镜的 SIMD 优化工作。有一块代码是数组里存的下标,然后用下标从另一个数组里找值,再存进寄存器里做后续的操作。当时我手动写完的汇编代码跑出来的速度远远比交给编译器优化的慢。我是百思不得其解,前后大概花了十几个小时进去研究为什么编译器跑出来的结果会比我的快。后来我发现之前写的代码,把数据存进数组然后做 _mm_load_si128,如果让编译器来优化的话,会直接重写成 _mm_insert_pi16,整段代码都被编译器完全打乱了,然后自动做了矢量化,最后每一帧的运行速度翻了一倍。后来写 AVX2 的时候,我发现要把几十行代码的循环整个 Unroll 成 16 遍,然后全部按照之前编译器优化的代码( _mm_insert_pi16 然后 _mm256_inserti128_si256 )来写才能勉强赶上编译器自动优化的 SSE,如果按照自己原先的优化(用 _mm256_load_si256 载入)来写的话慢出翔。

折腾了整整 3 天以后我把整个代码优化分支删了。去™的手动优化……
geekvcn
2019-09-21 09:22:17 +08:00
@msg7086 一般很少有人手动优化,甚至软件都是随便扒来的代码改改,不然就不会有渣优化软件了,但是有的项目确实有性能需求,就得手动优化了,付出和回报自己取舍吧,回报远不及付出就没必要费脑子,不如加硬件实在,Clear Linux 就使用了大量编译器优化,所以我想试试在同样禁用幽灵和熔断缓解补丁的情况下,各方面性能究竟比其他发行版好多少,然后个人服务器用一段时间试试稳定性,个人比较追求性能,在保证稳定的前提下
ivmm
2019-09-21 10:57:47 +08:00
阿里云的 AliyunLinux,借鉴(参考?融合? 我也不知道该怎么形容这个词)了 ClearLinux 后,确实同实例下比其他操作系统跑分能高 15~20 个点

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/602721

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX