写操作来自哪里?

时间:2012-05-04 09:22:39

标签: mysql database linux io procfs

我在数据库上做了一些实验。在这种情况下,每个查询都会从TPCH基准(select * from table;)的一个表中选择所有内容。在每个查询之前和之后,我解析/proc/[pid]/io,其中[pid]是数据库的进程。这些值的差异应该告诉我有关查询的IO。这是MySQL的典型输出(秒,MB):

      Query         time          RCHAR        WCHAR   READ_BYTES  WRITE_BYTES CANCELLED_WB
query1.sql|       0.005|       0.00234|     0.00245|     0.00391|     0.00000|     0.00000
query2.sql|       0.008|       0.00043|     0.00058|     0.00391|     0.00000|     0.00000
query3.sql|       0.041|       1.37217|     1.37296|     1.37891|     0.00000|     0.00000
query4.sql|       0.270|      23.41719|    23.64796|    23.44531|     0.00000|     0.00000
query5.sql|       0.346|      23.43413|    23.58974|    23.46484|     0.00000|     0.00000
query6.sql|       1.413|     113.77629|   115.76173|   113.89453|     0.00000|     0.00000
query7.sql|       1.792|     140.49537|   168.27847|   140.64062|     0.00000|     0.00000
query8.sql|       8.847|     614.04820|   759.00238|   614.65625|     0.00000|     0.00000
   Overall|      12.738|     916.54611|  1091.65626|   917.48828|     0.00000|     0.00000

我想知道WCHAR(写字母)值来自何处。我的查询“读取所有内容”而不是“写入任何内容”(因为'WRITE_BYTES'为空,实际上没有磁盘写入,但写入缓存/缓冲区?)。我在这里想念什么?

1 个答案:

答案 0 :(得分:1)

我认为TTY io(可能是网络?)包含在WCHAR中,但WRITE_BYTES只计算写入磁盘的页面。