{"id":698,"date":"2012-03-28T23:22:03","date_gmt":"2012-03-28T15:22:03","guid":{"rendered":"https:\/\/yangtingkun.net\/?p=698"},"modified":"2012-04-12T13:13:33","modified_gmt":"2012-04-12T05:13:33","slug":"linux%e4%b8%8aoracle%e6%98%af%e5%90%a6%e4%bd%bf%e7%94%a8%e5%bc%82%e6%ad%a5io%e7%9a%84%e8%af%8a%e6%96%ad","status":"publish","type":"post","link":"https:\/\/yangtingkun.net\/?p=698","title":{"rendered":"Linux\u4e0aOracle\u662f\u5426\u4f7f\u7528\u5f02\u6b65io\u7684\u8bca\u65ad"},"content":{"rendered":"<p>\u5ba2\u6237\u7684\u6570\u636e\u5e93IO\u8d1f\u8f7d\u8f83\u91cd\uff0c\u68c0\u67e5\u540e\u53d1\u73b0\u5e76\u672a\u8bbe\u7f6e\u5f02\u6b65IO\u3002<\/p>\n<p>\u6574\u4e2a\u6570\u636e\u5e93\u7684\u8d1f\u8f7d\u90fd\u96c6\u4e2d\u5728IO\u76f8\u5173\u7684\u7b49\u5f85\u4e0a\uff1a<\/p>\n<p align=\"left\"><strong>Top 5 Timed Foreground Events <\/strong><\/p>\n<div align=\"center\">\n<table summary=\"Top 5 Timed Foreground Events\" border=\"1\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td>\n<p align=\"center\"><strong>Event<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>Waits<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>Time(s)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>Avg \u00a0 wait (ms)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>% \u00a0 DB time<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>Wait \u00a0 Class<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\">\n<p align=\"left\">log \u00a0 file sync<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\">697,116<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\">70,128<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\">101<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\">36.29<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"left\">Commit<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\">\n<p align=\"left\">db \u00a0 file sequential read<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\">2,982,135<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\">54,498<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\">18<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\">28.20<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"left\">User \u00a0 I\/O<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\">\n<p align=\"left\">db \u00a0 file scattered read<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\">754,680<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\">38,741<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\">51<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\">20.05<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"left\">User \u00a0 I\/O<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\">\n<p align=\"left\">free \u00a0 buffer waits<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\">35,410<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\">20,560<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\">581<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"right\">10.64<\/p>\n<\/td>\n<td valign=\"top\">\n<p align=\"left\">Configuration<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\">\n<p align=\"left\">DB \u00a0 CPU<\/p>\n<\/td>\n<td valign=\"top\"><\/td>\n<td valign=\"top\">\n<p align=\"right\">6,172<\/p>\n<\/td>\n<td valign=\"top\"><\/td>\n<td valign=\"top\">\n<p align=\"right\">3.19<\/p>\n<\/td>\n<td valign=\"top\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>&nbsp;<\/p>\n<p>\u68c0\u67e5\u540e\u53d1\u73b0\uff0c\u5f53\u524d\u7cfb\u7edf\u5e76\u672a\u4f7f\u7528\u5f02\u6b65io\uff1a<\/p>\n<pre lang='SQL'>[oracle@localhost ~]$ cat \/proc\/slabinfo | grep kio\r\nkioctx\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a037 \u00a0\u00a0140\u00a0 \u00a0384\u00a0\u00a0 10\u00a0\u00a0 1 : tunables\u00a0\u00a0 54\u00a0\u00a0 27 \u00a0\u00a08 : slabdata\u00a0\u00a0 \u00a014\u00a0\u00a0\u00a0 14\u00a0\u00a0\u00a0\u00a0 0\r\nkiocb\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a00\u00a0\u00a0 \u00a0\u00a00\u00a0 \u00a0256\u00a0\u00a0 15\u00a0\u00a0 1 : tunables\u00a0 120\u00a0\u00a0 60\u00a0 \u00a08 : slabdata\u00a0 \u00a0\u00a0\u00a00 \u00a0\u00a0\u00a0\u00a00\u00a0\u00a0 \u00a0\u00a00<\/pre>\n<p>\u8fd4\u56de\u7ed3\u679c\u4e2dkiocp\u5bf9\u5e94\u7684\u524d\u4e24\u9879\u4e3a0\uff0c\u8bf4\u660e\u7cfb\u7edf\u4e2d\u6ca1\u6709\u4f7f\u7528\u5f02\u6b65io\u3002<\/p>\n<p>\u68c0\u67e5\u663e\u793aoracle\u5df2\u7ecf\u94fe\u63a5\u4e86aio\u7684\u5305\uff1a<\/p>\n<pre lang='SQL'>[oracle@localhost ~]$ \/usr\/bin\/ldd $ORACLE_HOME\/bin\/oracle | grep libaio\r\nlibaio.so.1 =&gt; \/lib64\/libaio.so.1 (0x0000003e13000000)<\/pre>\n<p>\u800c\u6570\u636e\u5e93\u4e2d\u68c0\u67e5\u53d1\u73b0filesystemio_options\u8bbe\u7f6e\u6709\u8bef\uff1a<\/p>\n<p>SQL&gt; show parameter disk_asynch_io<\/p>\n<pre lang='SQL'>NAME\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 TYPE\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 VALUE\r\n------------------------------------ -------------------------------- --------------------\r\ndisk_asynch_io\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 boolean\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0TRUE\r\n\r\nSQL&gt; show parameter filesystemio_options\r\n\r\nNAME\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 TYPE\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 VALUE\r\n------------------------------------ -------------------------------- -------------------\r\nfilesystemio_options\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 string\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 none<\/pre>\n<p>\u5f53\u524d\u4f7f\u7528\u7684\u662f\u6587\u4ef6\u7cfb\u7edf\uff0c\u56e0\u6b64\u9700\u8981\u5c06filesystemio_options\u8bbe\u7f6e\u4e3aasynch\uff0c\u624d\u80fd\u5f00\u542f\u5f02\u6b65io\uff1a<\/p>\n<pre lang='SQL'>SQL> ALTER SYSTEM SET FILESYSTEMIO_OPTIONS = ASYNCH SCOPE = SPFILE;\r\n\r\nSystem altered.\r\n\r\nSQL> SHUTDOWN IMMEDIATE\r\nDatabase closed.\r\nDatabase dismounted.\r\nORACLE instance shut down.\r\nSQL> STARTUP\r\nORACLE instance started.\r\n\r\nTotal System Global Area 6.0264E+10 bytes\r\nFixed Size 2242912 bytes\r\nVariable Size 2147485344 bytes\r\nDatabase Buffers 5.7982E+10 bytes\r\nRedo Buffers 131960832 bytes\r\nDatabase mounted.\r\nDatabase opened.\r\nSQL> <\/pre>\n<p>\u518d\u6b21\u68c0\u67e5\u7cfb\u7edf\u4e0a\u5f02\u6b65io\u7684\u8bbe\u7f6e\uff0c\u53d1\u73b0\u5f02\u6b65io\u5df2\u7ecf\u542f\u52a8\uff1a<\/p>\n<pre lang='SQL'>[oracle@localhost ~]$ more \/proc\/slabinfo |grep kio\r\nkioctx\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 130 \u00a0\u00a0160\u00a0\u00a0 384\u00a0\u00a0 10 \u00a0\u00a01 : tunables\u00a0\u00a0 54\u00a0\u00a0 27\u00a0\u00a0 8 : slabdata\u00a0 \u00a0\u00a016\u00a0\u00a0\u00a0 16 \u00a0\u00a0\u00a0\u00a00\r\nkiocb\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a016 \u00a0\u00a0\u00a030\u00a0\u00a0 256\u00a0\u00a0 15\u00a0\u00a0 1 : tunables\u00a0 120\u00a0\u00a0 60 \u00a0\u00a08 : slabdata \u00a0\u00a0\u00a0\u00a02 \u00a0\u00a0\u00a0\u00a02 \u00a0\u00a0\u00a0\u00a01<\/pre>\n<p>\u53ef\u4ee5\u770b\u5230\uff0c\u76ee\u524d\u5f02\u6b65IO\u5df2\u7ecf\u751f\u6548\u3002<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5ba2\u6237\u7684\u6570\u636e\u5e93IO\u8d1f\u8f7d\u8f83\u91cd\uff0c\u68c0\u67e5\u540e\u53d1\u73b0\u5e76\u672a\u8bbe\u7f6e\u5f02\u6b65IO\u3002 \u6574\u4e2a\u6570\u636e\u5e93\u7684\u8d1f\u8f7d\u90fd\u96c6\u4e2d\u5728IO\u76f8\u5173\u7684\u7b49\u5f85\u4e0a\uff1a Top 5 Timed Foreground Events Event Waits Time(s) Avg \u00a0 wait (ms) % \u00a0 DB time Wait \u00a0 Class log \u00a0 file sync 697,116 70,128 101 36.29 Commit db \u00a0 file sequential read 2,982,135 54,498 18 28.20 User &hellip; <a href=\"https:\/\/yangtingkun.net\/?p=698\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3],"tags":[580,584,578,579,583,581,582],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2yiY3-bg","_links":{"self":[{"href":"https:\/\/yangtingkun.net\/index.php?rest_route=\/wp\/v2\/posts\/698"}],"collection":[{"href":"https:\/\/yangtingkun.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/yangtingkun.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/yangtingkun.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/yangtingkun.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=698"}],"version-history":[{"count":2,"href":"https:\/\/yangtingkun.net\/index.php?rest_route=\/wp\/v2\/posts\/698\/revisions"}],"predecessor-version":[{"id":734,"href":"https:\/\/yangtingkun.net\/index.php?rest_route=\/wp\/v2\/posts\/698\/revisions\/734"}],"wp:attachment":[{"href":"https:\/\/yangtingkun.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=698"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yangtingkun.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=698"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yangtingkun.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=698"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}