mysql5.7 或者 mysql8 在 windows server 2019 和 ubuntu server 21 这两个操作系统上面,有明显的性能差异吗?
![]() | 1 zhangthe9 2022-05-23 16:33:10 +08:00 小数据量,区别不太大 大厂不会选择 win |
![]() | 2 ysc3839 2022-05-23 17:34:54 +08:00 一般是认为 Windows 的性能更差的,因为 Windows 内核更复杂,比如有很细致的权限管理,那检查权限就会耗更多时间,进程启动时 Win32 子系统要处理窗口相关的东西,也会耗时。 |
![]() | 3 xiangyuecn 2022-05-23 17:52:37 +08:00 ![]() 纠结系统差异,换来 1ms 的性能提升 换数据库,100ms 变 10ms |
![]() | 4 RangerWolf 2022-05-23 18:14:20 +08:00 大厂选 Windows 的话,我估计数据库更可能选择 SQL Server ? 比如 StackOverflow 的架构据说就是这样 |
5 KidsMk 2022-05-23 20:31:20 +08:00 via Android 我觉得,win 和 Linux 能差多少?不直接换数据库? |
![]() | 6 haah 2022-05-23 20:40:18 +08:00 你所谓“性能”的指标是什么?你能先给个范围么? |
![]() | 9 Buges 2022-05-23 20:47:20 +08:00 via Android 当然有差异,如果本来就是小鸡,Windows 系统吃一半资源,性能立马拉跨。 其他的还有一些诸如 direct IO ,文件系统相关的优化,这些一般 Windows 都是二等公民。 |
![]() | 10 haah 2022-05-23 20:47:49 +08:00 你觉得哪“个人”会闲的没事去对比 windows server 2019 和 ubuntu server 21 上的 MYSQL 服务性能呢? 我倒是觉是商业版数据库厂商有这个闲心。 |
![]() | 11 pavelpiero 2022-05-23 20:53:09 +08:00 via Android 涉及到 io 模型可能会有差异,比如 redis |
15 hefish 2022-05-23 21:08:48 +08:00 说的好像已经是单表亿级数据库一样。。。 |
16 codefun666 2022-05-23 21:09:06 +08:00 Windows 用来做服务器? |
![]() | 18 Features OP @codefun666 为啥不能? |
![]() | 19 cubecube 2022-05-23 22:45:26 +08:00 ![]() @ysc3839 然而实际上是之前 oracle11g 那个时代,oracle 两个平台下的性能对比测试下,win 每次都能赢 具体 mysql 现在的性能的对比没太关注了。 另外,数据库讲进程就偏了,win 的实现才是标准的 os 线程模型,而不是 linux 的多进程 /轻量级进程模型。这一点上 win 没劣势。 |
20 i3x 2022-05-23 22:53:57 +08:00 via Android @xiangyuecn 还是看应用。win 下 php5 性能可能只有 linux 的几十分之一。。。比如说 mcpe 当年的 pocketmine 服务端。就是 php 写的。真是人才。同样配置的服务器 win 下 3 人卡,linux 下带宽还得加到 5M 能带 60 个人。 如果是跑 asp mssql ,怎么说都是 win 可靠,虽然 linux 原生 asp 解释器,甚至 mono 跑 asp.net 。。但是 mono 启动起来别的不说多吃好多内存吧。 |
![]() | 21 LeeReamond 2022-05-23 23:56:30 +08:00 win 的异步到现在也没改善吧,因为文件描述符和套接字分开,事件必须由内核提供,而内核是闭源的,三方库很难搞。难以想象有什么理由使得 win 的服务性能高于 linux ,另外寻找稳定版本的 win 也是一个问题,不像 linux 跑就跑了,你可以二十年后再回来看它。 |
![]() | 22 ysc3839 2022-05-24 00:41:21 +08:00 via Android @cubecube 我知道 Windows 的线程开销比进程小,只是举一个可能影响性能的例子。 另外前段时间有看到个新闻,说是某软件不正确地使用线程导致在 Windows 下性能变差,因为 Windows 下频繁创建销毁线程的开销也比较大,正确做法是使用线程池,Windows 有内置的线程池,用起来也不麻烦。 |
23 neoblackcap 2022-05-24 03:02:34 +08:00 ![]() 如果 MySQL 是你关注的点,那么请使用 Linux ,因为 Linux 是它开发的一等公民,MySQL 对 linux 的支持是最完备的。有什么问题,网上几乎也是以 Linux 作为默认操作系统。出于对日后维护的考虑,建议还是购买一台单独的 Linux 虚拟机跑 MySQL |
![]() | 24 jedihy 2022-05-24 03:10:20 +08:00 用 MySql 当然用 linux ,别人是顺便支持 Windows 。 |
![]() | 25 documentzhangx66 2022-05-24 08:55:03 +08:00 如果连接数据库的节点较多,需要注意一个问题: Mysql 社区版没有 thread pool ,没有用 IOCP 或 epoll ,只有 Mysql 企业版、Mariadb 、Percona 才有线程池。 |
![]() | 26 cubecube 2022-05-24 09:09:43 +08:00 ![]() @LeeReamond iocp 比 epoll 先进得多。。不要想当然 |
![]() | 27 litguy 2022-05-24 13:28:23 +08:00 完成端口出来二十多年了,总有人想当然说 windows 不行 不行也是成本问题 ,不是技术问题 |
28 lookStupiToForce 2022-05-24 14:43:03 +08:00 还好看到能有人站出来反驳 win server 性能问题的一些言论,不然还真以为 V2EX 沦落到路边酒馆的水平了。 另外搜索 win server 市占率,对没见过世面的会有惊喜 /吓这还是在 win server 贵的出奇的许可证费用下 |