normal diskgroup情况下的IO读取
normal diskgroup情况下的IO读取
前段时间,在ML的群中,原厂一个哥们发了图,图中提到oracle 12c之前,asm 的读取默认都是始终从primary extent开始的,然而从12c开始发生变化。
当时的图片我找不到了,在以前的文档中,
?1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 ---diskgroup [oracle@10gasm ~]$ export ORACLE_SID=+ASM [oracle@10gasm ~]$ asmcmd ASMCMD> lsdg State Type Rebal Unbal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Name MOUNTED EXTERN N 毕业论文 N 512 4096 1048576 2048 687 0 687 0 DATA1/ MOUNTED NORMAL N N 512 4096 1048576 2048 1922 0 961 0 DATA2/ ---test table SQL> select count(1) from test_asm_read; COUNT(1) ---------- 10000 SQL> SQL> select dbms_rowid.rowid_relative_fno(rowid) file#,dbms_rowid.rowid_block_number(rowid) blk# 2 from test_asm_read where object_id=100; FILE# BLK# ---------- ---------- 6 13 SQL> select object_name,object_id from test_asm_read where object_id=100; OBJECT_NAME OBJECT_ID ------------------------------ ---------- killdb.com 100 SQL> select name from v$datafile where file#=6; NAME -------------------------------------------------------------------------------- +DATA2/test/datafile/test.256.804807701 SQL> l 1 select owner,segment_name,FILE_ID,EXTENT_ID,BLOCK_ID,BLOCKS 2* from dba_extents where SEGMENT_NAME='TEST_ASM_READ' SQL> / OWNER SEGMENT_NAME FILE_ID EXTENT_ID BLOCK_ID BLOCKS ------------------------------ ------------------------- ---------- ---------- ---------- ---------- ROGER TEST_ASM_READ 6 0 9 8 ROGER TEST_ASM_READ 6 1 17 8 ROGER TEST_ASM_READ 6 2 25 8 ROGER TEST_ASM_READ 6 3 33 8 ROGER TEST_ASM_READ 6 4 41 8 ROGER TEST_ASM_READ 6 5 49 8 ROGER TEST_ASM_READ 6 6 57 8 ROGER TEST_ASM_READ 6 7 65 8 ROGER TEST_ASM_READ 6 8 73 8 ROGER TEST_ASM_READ 6 9 81 8 ROGER TEST_ASM_READ 6 10 89 8 ROGER TEST_ASM_READ 6 11 97 8 ROGER TEST_ASM_READ 6 12 105 8 ROGER TEST_ASM_READ 6 13 113 8 ROGER TEST_ASM_READ 6 14 121 8 ROGER TEST_ASM_READ 6 15 129 8 ROGER TEST_ASM_READ 6 16 137 128 17 rows selected.
从上面信息可以看出,测试表有17个extent,前面0~15,是1m大小,后面第16号extent是1m大小。 由于asm默认的au size
也是1m,那么,所以我们可以肯定的讲,我们所要查询的这条数据和前面这16个extent,都在一个au里面。
oracle里面,最小的分配单元是extent,而asm中最小的分配单元是AU.
?123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 SQL> select HEADER_FILE,HEADER_BLOCK,blocks from dba_segments 2 where segment_name='TEST_ASM_READ'; HEADER_FILE HEADER_BLOCK BLOCKS ----------- ------------ ---------- 6 11 256 SQL> l 1* select file#,name from v$datafile order by 1 SQL> / FILE# NAME ---------- ------------------------------------------------------------ 1 +DATA1/test/datafile/system.256.802678453 2 +DATA1/test/datafile/undotbs1.258.802678457 3 +DATA1/test/datafile/sysaux.257.802678455 4 +DATA1/test/datafile/users.259.802678457 5 +DATA1/test/datafile/roger.266.804210969 6 +DATA2/test/datafile/test.256.804807701 7 +DATA1/test/datafile/roger.267.806226805 SQL> select disk_kffxp, au_kffxp, xnum_kffxp 2 from x$kffxp 3 where GROUP_KFFXP=2 and 4 NUMBER_KFFXP=256; DISK_KFFXP AU_KFFXP XNUM_KFFXP ---------- ---------- ---------- 1 52 0 0 52 0 0 53 1 1 53 1 1 54 2 0 54 2 0 55 3 1 55 3 1 56 4 0 56 4 0 57 5 DISK_KFFXP AU_KFFXP XNUM_KFFXP ---------- ---------- ---------- 1 57 5 1 58 6 0 58 6 0 59 7 1 59 7 1 60 8 0 60 8 0 61 9 1 61 9 1 62 10 0 62 10 22 rows selected. SQL> l 1* select name,path,DISK_NUMBER from v$asm_disk where group_number=2 order by 3 SQL> / NAME PATH DISK_NUMBER ------------------------------ ------------------------------ ----------- DATA2_0000 /dev/sdb 0 DATA2_0001 /dev/sde 1 SQL>
从上面可以看到,我们的datafile 6大小是10m,而我创建的测试表占据2m(未建其他表),所以,我们的test_asm_read表
应该就在最前面的2个au当中。从上面的查询结果我们也可以看到,au分别存了2份,一份是primary extent,一份是
mirror extent, 我们来验证下:
?123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 SQL> show user USER is "ROGER"SQL> select sid from v$mystat where rownum=1; SID ---------- 153 SQL> alter system flush BUFFER_CACHE; System altered. SQL> show user USER is "ROGER"SQL> select sid from v$mystat where rownum=1; SID ---------- 153 SQL> alter system flush BUFFER_CACHE; System altered. SQL> select s.sid,s.serial#,p.spid from v$process p,v$session s where p.addr=s.paddr and s.sid=153; SID SERIAL# SPID ---------- ---------- ------------ 153 148 5390 SQL> select * from test_asm_read where object_id=100; OWNER OBJECT_NAME SUBOBJECT_NAME OBJECT_ID DATA_OBJECT_ID ------------------------------ ------------------------------ ------------------------------ ---------- -------------- OBJECT_TYPE CREATED LAST_DDL_ TIMESTAMP STATUS T G S ------------------- --------- --------- ------------------- ------- - - - SYS killdb.com 100 100 INDEX 30-JUN-05 30-JUN-05 2005-06-30:19:10:18 VALID N N N SQL> ----strace spid 5390 [oracle@10gasm ~]$ strace -fr -o /tmp/5390.log -p 5390 Process 5390 attached - interrupt to quit Process 5390 detached [oracle@10gasm ~]$ cd /proc/5390/fd/ [oracle@10gasm fd]$ ls -ltr total 0 lrwx------ 1 oracle oinstall 64 Mar 13 06:25 0 -> /dev/pts/2 lr-x------ 1 oracle oinstall 64 Mar 13 07:10 9 -> /home/oracle/oracle/product/10.2.0/rdbms/mesg/oraus.msb lr-x------ 1 oracle oinstall 64 Mar 13 07:10 8 -> pipe:[118609] lr-x------ 1 oracle oinstall 64 Mar 13 07:10 7 -> /dev/zero l-wx------ 1 oracle oinstall 64 Mar 13 07:10 6 -> /home/oracle/admin/test/bdump/alert_test.log lr-x------ 1 oracle oinstall 64 Mar 13 07:10 5 -> /dev/null lr-x------ 1 oracle oinstall 64 Mar 13 07:10 4 -> /dev/null lr-x------ 1 oracle oinstall 64 Mar 13 07:10 3 -> /dev/null lrwx------ 1 oracle oinstall 64 Mar 13 07:10 2 -> /dev/pts/2 lrwx------ 1 oracle oinstall 64 Mar 13 07:10 14 -> /dev/sdb lrwx------ 1 oracle oinstall 64 Mar 13 07:10 13 -> /dev/sde lrwx------ 1 oracle oinstall 64 Mar 13 07:10 12 -> /dev/sdd l-wx------ 1 oracle oinstall 64 Mar 13 07:10 11 -> pipe:[118610] lrwx------ 1 oracle oinstall 64 Mar 13 07:10 10 -> /dev/sdc lrwx------ 1 oracle oinstall 64 Mar 13 07:10 1 -> /dev/pts/2 [oracle@10gasm fd]$ cat /tmp/5390.log |grep pread64 5390 0.000056 pread64(10, "\6\242\0\0\375\274@\0\25\237\v\0\0\0\1\0063\340\0\0\2\0\24\0\3\0\0\0\24\237\v\0"..., 8192, 347054080) = 8192 5390 0.000047 pread64(12, "\6\242\0\0S\335@\0Z\311\v\0\0\0\1\6J\305\0\0\1\0-\0\2\0\0\0\233\234\v\0"..., 8192, 293232640) = 8192 5390 0.000046 pread64(10, "\6\242\0\0\320\317@\0\f\237\v\0\0\0\1\6\v7\0\0\2\0\0\0g\0\0\0\10\237\v\0"..., 8192, 315228160) = 8192 5390 0.000076 pread64(10, "\6\242\0\0\305\314@\0#\236\v\0\0\0\1\6\333V\0\0\2\0\36\0003\0\0\0\34\236\v\0"..., 8192, 321429504) = 8192 5390 0.000027 pread64(13, "#\242\0\0\v\0\200\1\231|\n\0\0\0\1\4\215c\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 8192, 54616064) = 8192 5390 0.000027 pread64(13, "\6\242\0\0\f\0\200\1&\220\n\0\0\0\1\0046\206\0\0\1\0\0\0\212\311\0\0&\220\n\0"..., 40960, 54624256) = 40960 5390 0.000026 pread64(13, "\6\242\0\0\21\0\200\1m|\n\0\0\0\2\0046\364\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 65536, 54665216) = 65536 5390 0.000025 pread64(13, "\6\242\0\0\32\0\200\1m|\n\0\0\0\2\4\2\250\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 57344, 54738944) = 57344 5390 0.000024 pread64(13, "\6\242\0\0!\0\200\1s|\n\0\0\0\2\4\337d\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 65536, 54796288) = 65536 5390 0.000024 pread64(13, "\6\242\0\0*\0\200\1y|\n\0\0\0\2\4h\30\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 57344, 54870016) = 57344 5390 0.000024 pread64(13, "\6\242\0\0001\0\200\1y|\n\0\0\0\2\4\n\233\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 65536, 54927360) = 65536 5390 0.000023 pread64(13, "\6\242\0\0:\0\200\1y|\n\0\0\0\2\4\335\t\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 57344, 55001088) = 57344 5390 0.000022 pread64(13, "\6\242\0\0A\0\200\1\177|\n\0\0\0\2\4\243\261\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 65536, 55058432) = 65536 5390 0.000024 pread64(13, "\6\242\0\0J\0\200\1\205|\n\0\0\0\2\4\177\221\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 57344, 55132160) = 57344 5390 0.000024 pread64(13, "\6\242\0\0Q\0\200\1\205|\n\0\0\0\2\4\377[\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 65536, 55189504) = 65536 5390 0.000060 pread64(13, "\6\242\0\0Z\0\200\1\205|\n\0\0\0\2\4\357\30\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 57344, 55263232) = 57344 5390 0.000025 pread64(13, "\6\242\0\0a\0\200\1\213|\n\0\0\0\2\4D\n\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 65536, 55320576) = 65536 5390 0.000024 pread64(13, "\6\242\0\0j\0\200\1\221|\n\0\0\0\2\4\212\351\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 57344, 55394304) = 57344 5390 0.000036 pread64(13, "\6\242\0\0q\0\200\1\221|\n\0\0\0\2\4_\0\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 65536, 55451648) = 65536 5390 0.000024 pread64(14, "\6\242\0\0\200\0\200\1\227|\n\0\0\0\2\4w\206\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 8192, 55574528) = 8192 5390 0.000022 pread64(13, "\6\242\0\0z\0\200\1\221|\n\0\0\0\2\4;=\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 49152, 55525376) = 49152 5390 0.000024 pread64(14, "\6\242\0\0\201\0\200\1\227|\n\0\0\0\2\4f\213\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 65536, 55582720) = 65536 5390 0.000024 pread64(14, "\6\242\0\0\213\0\200\1\227|\n\0\0\0\2\4\343\352\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 57344, 55664640) = 57344 [oracle@10gasm fd]$ SQL> select 54616064/1024/1024 from dual; 54616064/1024/1024 ------------------ 52.0859375 SQL> select (54616064-52*1024*1024)/4096 from dual; (54616064-52*1024*1024)/4096 ---------------------------- 22 SQL> select (54624256-52*1024*1024)/4096 from dual; (54624256-52*1024*1024)/4096 ---------------------------- 24 SQL> select (54665216-52*1024*1024)/4096 from dual; (54665216-52*1024*1024)/4096 ---------------------------- 34 SQL> select (54738944-52*1024*1024)/4096 from dual; (54738944-52*1024*1024)/4096 ---------------------------- 52 SQL> select (54796288-52*1024*1024)/4096 from dual; (54796288-52*1024*1024)/4096 ---------------------------- 66 SQL> select (54870016-52*1024*1024)/4096 from dual; (54870016-52*1024*1024)/4096 ---------------------------- 84 SQL> select (54927360-52*1024*1024)/4096 from dual; (54927360-52*1024*1024)/4096 ---------------------------- 98 SQL> select (55001088-52*1024*1024)/4096 from dual; (55001088-52*1024*1024)/4096 ---------------------------- 116 SQL> select (55058432-52*1024*1024)/4096 from dual; (55058432-52*1024*1024)/4096 ---------------------------- 130 SQL> select (55132160-52*1024*1024)/4096 from dual; (55132160-52*1024*1024)/4096 ---------------------------- 148 SQL> select (55189504-52*1024*1024)/4096 from dual; (55189504-52*1024*1024)/4096 ---------------------------- 162 SQL> select (55263232-52*1024*1024)/4096 from dual; (55263232-52*1024*1024)/4096 ---------------------------- 180 SQL> select (55320576-52*1024*1024)/4096 from dual; (55320576-52*1024*1024)/4096 ---------------------------- 194 SQL> select (55394304-52*1024*1024)/4096 from dual; (55394304-52*1024*1024)/4096 ---------------------------- 212 SQL> select (55451648-52*1024*1024)/4096 from dual; (55451648-52*1024*1024)/4096 ---------------------------- 226 SQL> select (55574528-52*1024*1024)/4096 from dual; --file 14 (55574528-52*1024*1024)/4096 ---------------------------- 256 SQL> select (55525376-52*1024*1024)/4096 from dual; (55525376-52*1024*1024)/4096 ---------------------------- 244 SQL> select (55582720-52*1024*1024)/4096 from dual; --file 14 (55582720-52*1024*1024)/4096 ---------------------------- 258 SQL> select (55664640-52*1024*1024)/4096 from dual; --file 14 (55664640-52*1024*1024)/4096 ---------------------------- 278 SQL>
从上面的信息,似乎还看不太出来,我直接通过dump 这个block,来看下它的具体offset,如下:
?123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 ---打开一个session [oracle@10gasm ~]$ sqlplus "/as sysdba" SQL*Plus: Release 10.2.0.1.0 - Production on Wed Mar 13 07:47:55 2013 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options SQL> select sid from v$mystat where rownum=1; SID ---------- 153 SQL> select s.sid,s.serial#,p.spid from v$process p,v$session s where p.addr=s.paddr and s.sid=153; SID SERIAL# SPID ---------- ---------- ------------ 153 151 8375 SQL> oradebug setmypid Statement processed. SQL> select name from V$datafile where file#=6; NAME -------------------------------------------------------------------------------- +DATA2/test/datafile/test.256.804807701 SQL> alter system dump datafile '+DATA2/test/datafile/test.256.804807701' block 13; System altered. SQL> oradebug tracefile_name /home/oracle/admin/test/udump/test_ora_8375.trc SQL> ----执行alter system之前,执行如下strace跟踪 [oracle@10gasm fd]$ strace -fr -o /tmp/8375.log -p 8375 Process 5390 attached - interrupt to quit Process 5390 detached [oracle@10gasm fd]$ cd /proc/8375/fd [oracle@10gasm fd]$ ls -ltr total 0 lrwx------ 1 oracle oinstall 64 Mar 13 07:47 0 -> /dev/pts/2 lr-x------ 1 oracle oinstall 64 Mar 13 07:55 9 -> /home/oracle/oracle/product/10.2.0/rdbms/mesg/oraus.msb lr-x------ 1 oracle oinstall 64 Mar 13 07:55 8 -> pipe:[123600] lr-x------ 1 oracle oinstall 64 Mar 13 07:55 7 -> /dev/zero lr-x------ 1 oracle oinstall 64 Mar 13 07:55 6 -> /dev/null l-wx------ 1 oracle oinstall 64 Mar 13 07:55 5 -> /home/oracle/admin/test/udump/test_ora_8375.trc lr-x------ 1 oracle oinstall 64 Mar 13 07:55 4 -> /dev/null lr-x------ 1 oracle oinstall 64 Mar 13 07:55 3 -> /dev/null lrwx------ 1 oracle oinstall 64 Mar 13 07:55 2 -> /dev/pts/2 lrwx------ 1 oracle oinstall 64 Mar 13 07:55 14 -> /dev/sde lrwx------ 1 oracle oinstall 64 Mar 13 07:55 13 -> /dev/sdd lrwx------ 1 oracle oinstall 64 Mar 13 07:55 12 -> /dev/sdc l-wx------ 1 oracle oinstall 64 Mar 13 07:55 11 -> pipe:[123601] lrwx------ 1 oracle oinstall 64 Mar 13 07:55 10 -> /home/oracle/admin/test/adump/ora_8375.aud lrwx------ 1 oracle oinstall 64 Mar 13 07:55 1 -> /dev/pts/2 [oracle@10gasm fd]$ cat /tmp/8375.log |grep pread64 8375 0.000028 pread64(14, "\v\242\0\0\1\0\200\1\0\0\0\0\0\0\1\4\326\n\0\0\0\0\0\0\0\1 \n\231\v8}"..., 512, 54534144) = 512 8375 0.000031 pread64(14, "\v\242\0\0\1\0\200\1\0\0\0\0\0\0\1\4\326\n\0\0\0\0\0\0\0\1 \n\231\v8}"..., 8192, 54534144) = 8192 8375 0.000028 pread64(14, "\v\242\0\0\1\0\200\1\0\0\0\0\0\0\1\4\326\n\0\0\0\0\0\0\0\1 \n\231\v8}"..., 8192, 54534144) = 8192 8375 0.000027 pread64(14, "\6\242\0\0\r\0\200\1e}\n\0\0\0\1\4H\331\0\0\1\0\0\0\212\311\0\0e}\n\0"..., 8192, 54632448) = 8192 [oracle@10gasm fd]$ SQL> select (54534144-52*1024*1024)/4096 from dual; (54534144-52*1024*1024)/4096 ---------------------------- 2 SQL> select (54632448-52*1024*1024)/4096 from dual; (54632448-52*1024*1024)/4096 ---------------------------- 26
可以看到这里,实际上就是操作的offset 54632448,转换一下,就知道这个位置是第53个AU的第26个block(4096来计算).
如何换成8192计算,那么正好是我们的数据库block file 6,block 13.
这里需要补充点知识,asm的mirror 是以extent为单位进行,我这里的diskgroup data2中有2个disk,分别是/dev/sdb,/dev/sde,
换句话讲,我的测试表test_asm_read大小2m,实际上消耗了4m的asm空间,其中分别在2个disk中各站2m. 从前面我们的查询可以
看出,我们这个测试表一共分配了0~16个,也就是17个extent,这就是说着17个extent分别存在2个disk中,各一份。
我们知道这个block在第53个au中,一个1m/8k=128,那说明我们的13号block就在一个unit单元里面。
?1234567891011 [oracle@10gasm fd]$ dd if=/dev/sde of=/tmp/dd.asm bs=1024k skip=52 count=1 1+0 records in 1+0 records out 1048576 bytes (1.0 MB) copied, 0.00809608 seconds, 130 MB/s [oracle@10gasm fd]$ dd if=/tmp/dd.asm of=/tmp/asm_dump bs=8k skip=13 count=1 1+0 records in 1+0 records out 8192 bytes (8.2 kB) copied, 0.000183065 seconds, 44.7 MB/s [oracle@10gasm fd]$ strings /tmp/asm_dump |grep killdb.com killdb.com [oracle@10gasm fd]$
从这么dd内容来看,我们定位的位置是正确的。
我们再回到前面的问题来,上面的一连串block号,我们除以2,用db block_size来计算,那么就是如下数据:
/dev/sde au (53) 11,12,17,26,33,42,49,58,65,79,81,90,97,106,113 au(54) 129 ,au 54的129-128=1,即是第1个block.
/dev/sdb au (53) 128,122 au(54)139,au 54的139-128=11,即是第11个block.
注意,我这里是为8192个单位进行计算的。
这里我们可以发现一个意思的事情:所读取的/dev/sdb盘操作offset,如果是以4096单位计算的话,分别对应第53个au的如下block:
256 258 278,也就是第53个au的最后一个block,和第54个au的第2个block,第11个block。
同样通过上面dd的方式去查看,我发现这几个block中并没有我们查询的那条数据。
这里还有个问题要说明,那么就是我仅仅查询了一条数据,为什么strace的结果来看,server process读取了上述多个block呢?
这个很容易解释,因为我的测试表没有索引,该sql必须走全表扫描。会扫描读取高水位线以下所有的block。
?12345678910111213141516171819 5390 0.000027 pread64(13, "#\242\0\0\v\0\200\1\231|\n\0\0\0\1\4\215c\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 8192, 54616064) = 8192 5390 0.000027 pread64(13, "\6\242\0\0\f\0\200\1&\220\n\0\0\0\1\0046\206\0\0\1\0\0\0\212\311\0\0&\220\n\0"..., 40960, 54624256) = 40960 5390 0.000026 pread64(13, "\6\242\0\0\21\0\200\1m|\n\0\0\0\2\0046\364\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 65536, 54665216) = 65536 5390 0.000025 pread64(13, "\6\242\0\0\32\0\200\1m|\n\0\0\0\2\4\2\250\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 57344, 54738944) = 57344 5390 0.000024 pread64(13, "\6\242\0\0!\0\200\1s|\n\0\0\0\2\4\337d\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 65536, 54796288) = 65536 5390 0.000024 pread64(13, "\6\242\0\0*\0\200\1y|\n\0\0\0\2\4h\30\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 57344, 54870016) = 57344 5390 0.000024 pread64(13, "\6\242\0\0001\0\200\1y|\n\0\0\0\2\4\n\233\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 65536, 54927360) = 65536 5390 0.000023 pread64(13, "\6\242\0\0:\0\200\1y|\n\0\0\0\2\4\335\t\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 57344, 55001088) = 57344 5390 0.000022 pread64(13, "\6\242\0\0A\0\200\1\177|\n\0\0\0\2\4\243\261\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 65536, 55058432) = 65536 5390 0.000024 pread64(13, "\6\242\0\0J\0\200\1\205|\n\0\0\0\2\4\177\221\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 57344, 55132160) = 57344 5390 0.000024 pread64(13, "\6\242\0\0Q\0\200\1\205|\n\0\0\0\2\4\377[\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 65536, 55189504) = 65536 5390 0.000060 pread64(13, "\6\242\0\0Z\0\200\1\205|\n\0\0\0\2\4\357\30\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 57344, 55263232) = 57344 5390 0.000025 pread64(13, "\6\242\0\0a\0\200\1\213|\n\0\0\0\2\4D\n\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 65536, 55320576) = 65536 5390 0.000024 pread64(13, "\6\242\0\0j\0\200\1\221|\n\0\0\0\2\4\212\351\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 57344, 55394304) = 57344 5390 0.000036 pread64(13, "\6\242\0\0q\0\200\1\221|\n\0\0\0\2\4_\0\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 65536, 55451648) = 65536 5390 0.000024 pread64(14, "\6\242\0\0\200\0\200\1\227|\n\0\0\0\2\4w\206\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 8192, 55574528) = 8192 5390 0.000022 pread64(13, "\6\242\0\0z\0\200\1\221|\n\0\0\0\2\4;=\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 49152, 55525376) = 49152 5390 0.000024 pread64(14, "\6\242\0\0\201\0\200\1\227|\n\0\0\0\2\4f\213\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 65536, 55582720) = 65536 5390 0.000024 pread64(14, "\6\242\0\0\213\0\200\1\227|\n\0\0\0\2\4\343\352\0\0\1\0\0\0\212\311\0\0f|\n\0"..., 57344, 55664640) = 57344
最后一列代表的是读取的大小,简单计算一下,可以得出如下信息: