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 3
纠结系统差异,换来 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 2
@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 1
如果 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 2
@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 贵的出奇的许可证费用下 |