我尝试使用 SystemTap 脚本来计算 IOPS 和 I/O 大小,并使用 MySQL 作为工作负载。
我发现mysqld
不调用系统调用,但mysqld
对 VFS 进行读/写。
那么,MySQL进程是运行在用户模式还是内核模式呢?
答案1
Mysql没有内核模块,因此它运行在用户模式。
也许您看到的是 mysql 使用内存映射文件而不是调用读/写。因此,访问内存页面会导致读/写而不使用系统调用。
或者,也许您调用 strace 时不带“-f”来跟踪子进程?
我尝试使用 SystemTap 脚本来计算 IOPS 和 I/O 大小,并使用 MySQL 作为工作负载。
我发现mysqld
不调用系统调用,但mysqld
对 VFS 进行读/写。
那么,MySQL进程是运行在用户模式还是内核模式呢?
Mysql没有内核模块,因此它运行在用户模式。
也许您看到的是 mysql 使用内存映射文件而不是调用读/写。因此,访问内存页面会导致读/写而不使用系统调用。
或者,也许您调用 strace 时不带“-f”来跟踪子进程?