MySQL 是在用户模式还是内核模式下处理 运行?

Does MySQL processes run in user or kernel modes?

我尝试使用 SystemTap 脚本计算 IOPS 和 I/O 大小,并使用 MySQL 作为工作负载。

我发现 mysqld 不调用系统调用,但 mysqld 在 VFS 上有 read/write。

那么,MySQL 是在用户模式还是内核模式下处理 运行?

显然,它们 运行 在用户区,就像您系统上的大多数其他进程一样。

您只需使用 ps -eaf.

即可轻松检查这一点

内核进程就是括号[]中的进程。其他都是用户进程。

请注意,对于 MySQL,如果您使用原始设备,则可以绕过 VFS。在 Linux 上,这或多或少已被弃用。人们更喜欢在 O_DIRECT 模式下使用文件。

MySQL 可能正在使用内存映射文件 I/O 进行读取和写入,除了初始 mmap() 调用外,不需要系统调用。