我嘗試使用SystemTap腳本統計IOPS和I/O大小,並使用MySQL作爲工作負載。MySQL進程在用戶模式還是內核模式下運行?
我發現mysqld
不會調用systemcall,但mysqld
已在VFS上讀取/寫入。
那麼,MySQL進程是否在用戶或內核模式下運行?
我嘗試使用SystemTap腳本統計IOPS和I/O大小,並使用MySQL作爲工作負載。MySQL進程在用戶模式還是內核模式下運行?
我發現mysqld
不會調用systemcall,但mysqld
已在VFS上讀取/寫入。
那麼,MySQL進程是否在用戶或內核模式下運行?
很明顯,它們在用戶空間中運行,就像系統上的大多數其他進程一樣。
只需使用ps -eaf即可輕鬆檢查這一點。
內核進程是括號[]中的內核進程。其他任何東西都是用戶進程。
請注意,使用MySQL時,如果使用原始設備,則可以繞過VFS。在Linux上,這或多或少被棄用。人們更喜歡使用O_DIRECT模式的文件。
MySQL可能正在使用內存映射文件I/O進行讀取和寫入,除了初始化mmap()調用之外,它不需要系統調用。