【发布时间】:2015-08-21 10:40:34
【问题描述】:
我尝试使用 SystemTap 脚本计算 IOPS 和 I/O 大小,并使用 MySQL 作为工作负载。
我发现mysqld 不调用系统调用,但mysqld 在 VFS 上具有读/写功能。
那么,MySQL 进程是在用户模式还是内核模式下运行?
【问题讨论】:
标签: mysql kernel system-calls vfs
我尝试使用 SystemTap 脚本计算 IOPS 和 I/O 大小,并使用 MySQL 作为工作负载。
我发现mysqld 不调用系统调用,但mysqld 在 VFS 上具有读/写功能。
那么,MySQL 进程是在用户模式还是内核模式下运行?
【问题讨论】:
标签: mysql kernel system-calls vfs
显然,它们在用户空间中运行,就像您系统上的大多数其他进程一样。
您只需使用 ps -eaf 即可轻松检查这一点。
内核进程是括号[]中的进程。其他任何东西都是用户进程。
请注意,对于 MySQL,如果您使用原始设备,有一种方法可以绕过 VFS。在 Linux 上,这或多或少已被弃用。人们更喜欢在 O_DIRECT 模式下使用文件。
【讨论】:
MySQL 可能正在使用内存映射文件 I/O 进行读取和写入,除了初始 mmap() 调用之外不需要任何系统调用。
【讨论】: