.\" .\" Copyright (c) 1998, 1999 Kenneth D. Merry. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. The name of the author may not be used to endorse or promote products .\" derived from this software without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" %FreeBSD: src/lib/libdevstat/devstat. 3, v 1.7. 2.8 2001/12/17 10:08:29 ru Exp % .\" .\" $FreeBSD: doc/ja_JP.eucJP/man/man3/devstat. 3, v 1.5 2002/11/03 06:38:28 horikawa Exp $ .Dd May 21, 1998 .Dt DEVSTAT 3 .Os .Sh ¸íĪ .Nm devstat , .Nm getnumdevs , .Nm getgeneration , .Nm getversion , .Nm checkversion , .Nm getdevs , .Nm selectdevs , .Nm buildmatch , .Nm compute_stats , .Nm compute_etime .Nd µð¹ÙÀ̽º Åë°è À¯Æ¿¸®Æ¼ ÇÁ·Î±×·¥ ¶óÀ̺귯¸® .Sh ÇÁ·Î±×·¥ ¶óÀ̺귯¸® .Lb libdevstat .Sh ¼­½Ä .In sys/dkstat.h .In devstat.h .Ft int .Fn getnumdevs "void" .Ft long .Fn getgeneration "void" .Ft int .Fn getversion "void" .Ft int .Fn checkversion "void" .Ft int .Fn getdevs "struct statinfo *stats" .Ft int .Fo selectdevs .Fa "struct device_selection **dev_select" .Fa "int *num_selected" .Fa "int *num_selections" .Fa "long *select_generation" .Fa "long current_generation" .Fa "struct devstat *devices" .Fa "int numdevs" .Fa "struct devstat_match *matches" .Fa "int num_matches" .Fa "char **dev_selections" .Fa "int num_dev_selections" .Fa "devstat_select_mode select_mode" .Fa "int maxshowdevs" .Fa "int perf_select" .Fc .Ft int .Fo buildmatch .Fa "char *match_str" .Fa "struct devstat_match **matches" .Fa "int *num_matches" .Fc .Ft int .Fo compute_stats .Fa "struct devstat *current" .Fa "struct devstat *previous" .Fa "long double etime" .Fa "u_int64_t *total_bytes" .Fa "u_int64_t *total_transfers" .Fa "u_int64_t *total_blocks" .Fa "long double *kb_per_transfer" .Fa "long double *transfers_per_second" .Fa "long double *mb_per_second" .Fa "long double *blocks_per_second" .Fa "long double *ms_per_transaction" .Fc .Ft long double .Fo compute_etime .Fa "struct timeval cur_time" .Fa "struct timeval prev_time" .Fc .Sh ÇØ¼³ .Nm ÇÁ·Î±×·¥ ¶óÀ̺귯¸®´Â, Ä¿³Î .Xr devstat 9 ÀÎÅÍÆäÀ̽º¸¦ ó¸®Çϴµ¥ Æí¸®ÇÑ ÇÔ¼öÀÇ ÇÁ·Î±×·¥ ¶óÀ̺귯¸®ÀÔ´Ï´Ù. Ä¿³Î .Xr devstat 9 ÀÎÅÍÆäÀ̽º´Â, .Xr sysctl 3 ¿¡ ÀÇÇØ À¯Àú°¡ ¾×¼¼½º ÇÒ ¼ö ÀÖ½À´Ï´Ù. .Pp .Fn getnumdevs (Àº)´Â, Ä¿³Î³»ÀÇ .Nm ÇϺÎÁ¶Á÷¿¡ µî·ÏµÇ¾ú´Ù µð¹ÙÀ̽ºÀÇ ¼ö¸¦ µ¹·ÁÁÝ´Ï´Ù. .Pp .Fn getgeneration (Àº)´Â, Ä¿³Î³»ÀÇ µð¹ÙÀ̽º .Nm ¸®½ºÆ®ÀÇ ÇöÀçÀÇ ¼¼´ë¸¦ µ¹·ÁÁÝ´Ï´Ù. .Pp .Fn getversion (Àº)´Â, ÇöÀçÀÇ Ä¿³Î .Nm µð¹ÙÀ̽º ¹öÁ¯À» µ¹·ÁÁÝ´Ï´Ù. .Pp .Fn checkversion (Àº)´Â, Ä¿³Î .Nm ¹öÁ¯¿¡ ´ëÇØ¼­ À¯Àú ·£µå devstat (À»)¸¦ üũÇÕ´Ï´Ù. 2 °³(»ì)ÀÌ µ¿ÀÏÇÑ °æ¿ì, 0 ÀÌ µ¹·ÁÁÖ¾îÁý´Ï´Ù. ±×·¸Áö ¾ÊÀº °æ¿ì´Â, .Va devstat_errbuf ¿¡ ÇØ´çÇÏ´Â ¿¡·¯¸¦ Ç¥½ÃÇØ -1 ¸¦ µ¹·ÁÁÝ´Ï´Ù. .Pp .Fn getdevs (Àº)´Â, µð¹ÙÀ̽º¿Í Åë°èÀÇ ÇöÀçÀÇ ¸®½ºÆ®¸¦ ²¨³», ÁöÁ¤µÇ¾ú´Ù .Va statinfo ±¸Á¶¿¡ ³Ö½À´Ï´Ù. .Va statinfo ±¸Á¶´Â .Aq Pa devstat.h ¿¡ ÀÖ½À´Ï´Ù. .Bd -literal -offset indent struct statinfo { long cp_time[CPUSTATES]; long tk_nin; long tk_nout; struct devinfo *dinfo; struct timeval busy_time; }; .Ed .Pp .Fn getdevs (Àº)´Â, .Va statinfo ±¸Á¶¸¦ ÇÒ´çÇÒ ¼ö ÀÖ´Â °ÍÀ» ±â´ëÇØ, ¶Ç, .Fn getdevs ÀÇ ±âµ¿ Àü¿¡ .Va dinfo ¼­ºê ¿¤¸®¸ÕÆ®¸¦ ÇÒ´çÇÒ ¼ö ÀÖ¾î 0 À¸·Î ÃʱâÈ­µÇ´Â Àϵµ ±â´ëÇÕ´Ï´Ù. .Va dinfo ¼­ºê ¿¤¸®¸ÕÆ®´Â, È£ÃâÀ̶ó°í ºÒ·¯ ¹æÆíÀÇ »çÀÌ »óŸ¦ °Ý³³Çϱâ À§Çؼ­ »ç¿ëµÇ¾î ÃÖÃÊÀÇ .Fn getdevs È£ÃâÀÇ µÚ¿¡´Â º¯°æÇØ µÇÁö ¾Ê½À´Ï´Ù. .Va dinfo ¼­ºê ¿¤¸®¸ÕÆ®¿¡´Â ´ÙÀ½ÀÇ ¿¤¸®¸ÕÆ®°¡ µé¾î°¡ ÀÖ½À´Ï´Ù. .Bd -literal -offset indent struct devinfo { struct devstat *devices; u_int8_t *mem_ptr; long generation; int numdevs; }; .Ed .Pp .Va kern.devstat.all sysctl º¯¼ö¿¡´Â, .Nm ±¸Á¶ÀÇ ¹è¿­ÀÌ µé¾î°¡ ÀÖ½À´Ï´Ù¸¸, ¹è¿­ÀÇ ¼±µÎ´Â ÇöÀçÀÇ .Nm ¼¼´ëÀÔ´Ï´Ù. ¼¼´ë°¡ ¹öÆÛÀÇ ¼±µÎ¿¡ ÀÖ´Â ÀÌÀ¯´Â, .Nm Åë°è¿¡ ¾×¼¼½º Çϰí ÀÖ´Â À¯Àú ·£µå ¼ÒÇÁÆ®¿þ¾î°¡ ÀÚµ¿ÀûÀ¸·Î Åë°è Á¤º¸ ¹× ´ëÀÀÇÏ´Â ¼¼´ë ¹øÈ£ÀÇ ¾çÂÊ ¸ðµÎ¸¦ ºÒ°¡ºÐ¿¡ ¾òµµ·Ï(µíÀÌ) Çϱâ (À§ÇØ)¶§¹®ÀÔ´Ï´Ù. Ŭ¶óÀÌ¾ðÆ® ¼ÒÇÁÆ®¿þ¾î°¡ ´Ù¸¥ .Nm sysctl º¯¼ö (À̰ÍÀº ÆíÀǸ¦ À§Çؼ­(¶§¹®¿¡) ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù)¸¦ ÅëÇØ¼­ ¼¼´ë ¹øÈ£¸¦ ¾ò´Â °ÍÀ» °­Á¦´çÇßÀ» °æ¿ì, µð¹ÙÀ̽ºÀÇ ¸®½ºÆ®´Â, Ŭ¶óÀÌ¾ðÆ®°¡ ¼¼´ë¸¦ ¾òÀ» ¶§ °¢°ú Ŭ¶óÀÌ¾ðÆ®°¡ µð¹ÙÀ̽º ¸®½ºÆ®¸¦ ¾òÀ» ¶§ °¢ÀÇ »çÀÌ¿¡ º¯È­ÇÒ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. .Pp .Va devinfo ±¸Á¶ÀÇ .Va mem_ptr ¼­ºê ¿¤¸®¸ÕÆ®´Â, ÇÒ´çÇØÁø ¸Þ¸ð¸®¸¦ °¡¸®Å°´Â Æ÷ÀÎÅÍÀ̸ç, ÇÊ¿äÇϸé, .Fn getdevs ¿¡ ÀÇÇØ »çÀÌÁî°¡ º¯°æµË´Ï´Ù. .Va devinfo ±¸Á¶ÀÇ µð¹ÙÀ̽º ¼­ºê ¿¤¸®¸ÕÆ®´Â ±âº»ÀûÀ¸·Î, .Va kern.devstat.all .Nm sysctl º¯¼ö·ÎºÎÅÍ .Nm ±¸Á¶ÀÇ ¹è¿­ÀÇ ¼±µÎ¸¦ °¡¸®Å°´Â Æ÷ÀÎÅÍÀÔ´Ï´Ù. .Va devinfo ±¸Á¶ÀÇ ¼¼´ë ¼­ºê ¿¤¸®¸ÕÆ®¿¡´Â, .Va kern.devstat.all .Nm sysctl º¯¼ö·ÎºÎÅÍÀÇ ¼¼´ë ¹øÈ£°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. .Va devinfo ±¸Á¶ÀÇ .Va numdevs ¼­ºê ¿¤¸®¸ÕÆ®¿¡´Â, Ä¿³Î .Nm ÇϺÎÁ¶Á÷¿¡¼­ µî·ÏµÈ µð¹ÙÀ̽ºÀÇ ÇöÀçÀÇ ¹øÈ£°¡ µé¾î°¡ ÀÖ½À´Ï´Ù. .Pp .Fn selectdevs (Àº)´Â, ±ÔÁØÀÇ ¼ö¸¦ ±âÃÊ·Î ÇØ Ç¥½ÃÇÏ´Â µð¹ÙÀ̽º¸¦ ¼±ÅÃÇÕ´Ï´Ù. .Bl -tag -width flag .It ÁöÁ¤ µð¹ÙÀ̽º ÁöÁ¤µÈ µð¹ÙÀ̽º´Â ÃÖÃÊÀÇ ¼±Åà ¿ì¼± ¼øÀ§ÀÔ´Ï´Ù. À̰͵éÀº, ÀϹÝÀûÀ¸·Î, À¯Àú¿¡ ÀÇÇØ À̸§¿¡ ÀÇÇØ ÁöÁ¤µÈ µð¹ÙÀ̽º, ¿¹¸¦ µé¾î, da0, da1, cd0 ÀÔ´Ï´Ù. .It ¸ÅÄ¡ ÆÐÅÏ ÀÌ·¯ÇÑ ÆÐÅÏ À¯Àú ÀÔ·ÂÀ¸·ÎºÎÅÍ .Fn buildmatch ¿¡ ÀÇÇØ »ý¼ºµÈ ÆÐÅÏ ¸ÅνÄÀÔ´Ï´Ù. .It ¼º´É ¼º´É ¸ðµå°¡ À¯È¿ÇÑ °æ¿ì, µð¹ÙÀ̽º´Â, .Fn selectdevs ¿¡°Ô °Ç³×Áø´Ù .Va device_selection ±¸Á¶³»ÀÇ .Va bytes Çʵ带 ±âÃÊ·Î ÇØ Á¤·Ä µË´Ï´Ù. .Va bytes °ªÀº, Çö½ÃÁ¡¿¡¼­´Â, À¯Àú°¡ ¸ÞÀÎÆ®³Í½ºÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. Àå·¡ÀûÀ¸·Î´Â, À̰ÍÀº .Nm ÇÁ·Î±×·¥ ¶óÀ̺귯¸® routine·Î ÇàÇØÁú °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. µð¹ÙÀ̽º°¡ À̸§ ¶Ç´Â ÆÐÅÏ¿¡ ÀÇÇØ ¼±ÅõǾî ÀÖÁö ¾ÊÀº °æ¿ì, ¼º´É ÃßÀû Äڵ尡 ½Ã½ºÅÛ³»ÀÇ °¢ µð¹ÙÀ̽º¸¦ ¼±ÅÃÇØ, À̰͵éÀ» ¼º´É¿¡ ÀÇÇØ Á¤·Ä ÇÕ´Ï´Ù. µð¹ÙÀ̽º°¡ À̸§ ¶Ç´Â ÆÐÅÏ¿¡ ÀÇÇØ ¼±Åõǰí ÀÖ´Â °æ¿ì, ¼º´É ÃßÀû ÄÚµå´Â ÀÌ·¯ÇÑ ¼±ÅÃÀ» Á¸ÁßÇØ, ¼±ÅÃµÈ µð¹ÙÀ̽ºÀÇ »çÀÌ¿¡¸¸ Á¤·Ä ÇÕ´Ï´Ù. .It devstat ¸®½ºÆ®³»ÀÇ ¼ø¼­ ¼±Åà ¸ðµå°¡ DS_SELECT_ADD ·Î ¼³Á¤µÇ¾î °Ô´Ù°¡ .Va maxshowdevs ¹Ì¸¸ÀÇ µð¹ÙÀ̽º°¡ ¼±Åõǰí ÀÖ´Â °æ¿ì, .Fn selectdevs ÇÏÁö¸¸ ÀÚµ¿ÀûÀ¸·Î .Va maxshowdevs µð¹ÙÀ̽º¸¦ ¼Â¾÷ ÇÕ´Ï´Ù. .El .Pp .Fn selectdevs (Àº)´Â, ´ÙÀ½ÀÇ 4 °³ÀÇ ¸ðµå·Î ¼±ÅÃÀ» ½Ç½ÃÇÕ´Ï´Ù. .Bl -tag -width DS_SELECT_ADDONLY .It DS_SELECT_ADD Ãß°¡ ¸ðµå·Î, .Fn selectdevs (Àº)´Â, À̸§ ¶Ç´Â ÀÏÄ¡ ÆÐÅÏ¿¡ ÀÇÇØ ÁöÁ¤µÇ¾ú´Ù ¼±ÅõǾî ÀÖÁö ¾ÊÀº µð¹ÙÀ̽º¸¦ ¼±ÅÃÇÕ´Ï´Ù. ¶Ç, À̰ÍÀº .Nm ÀÇ ¼ø¼­·Î ÇÑÃþ ´õ µð¹ÙÀ̽º¸¦ ¼±ÅÃÇÕ´Ï´Ù. ¼±ÅÃÇÑ µð¹ÙÀ̽ºÀÇ ¼ö°¡ .Va maxshowdevs ¿¡ µ¿ÀÏÇØÁú ¶§±îÁö, ¶Ç´Â ¸ðµç µð¹ÙÀ̽º°¡ ¼±ÅÃµÉ ¶§±îÁöÀÔ´Ï´Ù. .It DS_SELECT_ONLY only ¸ðµå·Î, .Fn selectdevs (Àº)´Â, ÇöÀçÀÇ ¼±ÅûçÇ×À» ¸ðµÎ Ŭ¸®¾î ÇØ, À̸§ ¶Ç´Â ÀÏÄ¡ÇÏ´Â ÆÐÅÏÀ¸·Î ÁöÁ¤µÈ µð¹ÙÀ̽º¸¸À» ¼±ÅÃÇÕ´Ï´Ù. .It DS_SELECT_REMOVE Á¦°Å ¸ðµå·Î, .Fn selectdevs (Àº)´Â, À̸§ ¶Ç´Â ÀÏÄ¡ ÆÐÅÏ¿¡ ÀÇÇØ ÁöÁ¤µÈ µð¹ÙÀ̽º¸¦ Á¦°ÅÇÕ´Ï´Ù. Ãß°¡ µð¹ÙÀ̽º´Â ¼±ÅÃÇÏÁö ¾Ê½À´Ï´Ù. .It DS_SELECT_ADDONLY Ãß°¡¸¸ ¸ðµå·Î, .Fn selectdevs (Àº)´Â, À̸§ ¶Ç´Â ÀÏÄ¡ÇÑ´Ù ÆÐÅÏÀ¸·Î ÁöÁ¤µÈ ¼±ÅõÇÁö ¾Ê´Â µð¹ÙÀ̽º¸¦ ¼±ÅÃÇÕ´Ï´Ù. ÀÌ Á¡¿¡¼­´Â, À̰ÍÀº Ãß°¡ ¸ðµå¿Í µ¿ÀÏÇÕ´Ï´Ù. ±×·¯³ª, ÁöÁ¤µÈ ÀÌ¿ÜÀÇ µð¹ÙÀ̽º´Â ¼±ÅÃÇÏÁö ¾Ê½À´Ï´Ù. .El .Pp ¸ðµç ¼±Åà ¸ðµå·Î, .Fn selectdevs (Àº)´Â, .Va maxshowdevs µð¹ÙÀ̽º¸¦ ³Ñ´Â µð¹ÙÀ̽º´Â ¼±ÅÃÇÏÁö ¾Ê½À´Ï´Ù. 1 °³ÀÇ ¿¹¿Ü´Â, .Dq top ¸ðµå¿¡ ÀÖ¾î, µð¹ÙÀ̽º°¡ ¼±ÅõǾî ÀÖÁö ¾ÊÀ» ¶§ÀÔ´Ï´Ù. ÀÌ °æ¿ì, .Fn selectdevs (Àº)´Â, ½Ã½ºÅÛ³»ÀÇ °¢ µð¹ÙÀ̽º (À»)¸¦ ¼±ÅÃÇÕ´Ï´Ù. Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥Àº, ƯÁ¤ÀÇ µð¹ÙÀ̽º¿¡ ÁÖÀ§¸¦ ±â¿ïÀÌ´ÂÁö ¾î¶²Áö °áÁ¤ÇÒ ¶§, ¼±ÅÃÀÇ ¼ø¼­¿¡ ÁÖÀ§¸¦ ±â¿ïÀÏ Çʿ䰡 ÀÖ½À´Ï´Ù. À̰ÍÀº ¾ÈµÈ´Ù µ¿ÀÛÀ̸ç, ÇÑÃþ ´õ °í·ÁÇÒ Çʿ䰡 ÀÖ´Ù°í »ý°¢µË´Ï´Ù. .Pp .Fn selectdevs (Àº)´Â, Ŭ¶óÀÌ¾ðÆ®¿¡ ÀÇÇØ °Ç³×¹Þ¾Ò´Ù .Va dev_select ±¸Á¶ÀÇ ÇÒ´ç°ú »çÀÌÁî º¯°æÀ» ó¸®ÇÕ´Ï´Ù. .Fn selectdevs (Àº)´Â, .Va numdevs Çʵå¿Í .Va current_generation Çʵ带 »ç¿ëÇØ, ÇöÀçÀÇ .Nm ¼¼´ë¿Í µð¹ÙÀ̽ºÀÇ ¼ö¸¦ ÃßÀûÇÕ´Ï´Ù. .Va num_selections ÇÏÁö¸¸ .Va numdevs (¿Í)°ú °°Áö ¾ÊÀº °æ¿ì, ¶Ç´Â .Va select_generation ÇÏÁö¸¸ .Va current_generation (¿Í)°ú °°Áö ¾ÊÀº °æ¿ì, .Fn selectdevs (Àº)´Â, ¼±Åà ¸®½ºÆ®¸¦ Çʿ信 µû¶ó¼­ »çÀÌÁî º¯°æÇØ, ¼±Åà ¹è¿­À» ´Ù½Ã ÃʱâÈ­ÇÕ´Ï´Ù. .Pp .Fn buildmatch (Àº)´Â, ÄÞ¸¶·Î ´Ü¶ôÁö¾îÁø ÀÏÄ¡ string¸¦ ÃëÇØ, .Fn selectdevs ÇÏÁö¸¸ ÀÌÇØÇÑ´Ù \fBdevstat_match\fR ±¸Á¶¿¡ ÄÄÆÄÀÏ ÇÕ´Ï´Ù. ÀÏÄ¡ stringÀÇ Çü½ÄÀº ´ÙÀ½°ú °°½À´Ï´Ù. .Pp .Bd -literal -offset indent device, type, if .Ed .Pp .Fn buildmatch (Àº)´Â, Çʿ信 µû¶ó¼­, ÀÏÄ¡ ¸®½ºÆ®ÀÇ ÇÒ´ç°ú ÀçÇÒÀÎ ¸ÂÈ÷°í¸¦ ó¸®ÇÕ´Ï´Ù. Çö½ÃÁ¡¿¡¼­ ±âÁ¸ÀÇ ÀÏÄ¡ ŸÀÔ¿¡´Â ´ÙÀ½ÀÇ °ÍÀÌ Æ÷ÇԵ˴ϴÙ. .Pp .Bl -tag -width indent -compact .It µð¹ÙÀ̽º ŸÀÔ: .Bl -tag -width 9n -compact .It da ´ÙÀÌ·ºÆ® ¾×¼¼½º µð¹ÙÀ̽º .It sa ½ÃÄý¼È ¾×¼¼½º µð¹ÙÀ̽º .It printer ÇÁ¸°ÅÍ .It proc ÇÁ·Î¼¼¼­ µð¹ÙÀ̽º .It worm ±âÀÔ 1 ȸ µ¶ÇØ º¹¼ö µð¹ÙÀ̽º (Write Once Read Multiple devices) .It cd CD µð¹ÙÀ̽º .It scanner ½ºÄ³³Ê µð¹ÙÀ̽º .It optical ±¤ÇÐ ¸Þ¸ð¸®µ¥¹ÙÀ̽º .It changer ¸Åü º¯°æ (Medium Changer) µð¹ÙÀ̽º .It comm Åë½Å µð¹ÙÀ̽º .It array ½ºÅ丮Áö ¹è¿­ µð¹ÙÀ̽º .It enclosure Æ÷À§ ¼­ºñ½º µð¹ÙÀ̽º (Enclosure Services devices) .It floppy Ç÷ÎÇÇ µð¹ÙÀ̽º .El .Pp .It ÀÎÅÍÆäÀ̽º: .Bl -tag -width 9n -compact .It IDE ÅëÇÕ µå¶óÀ̺ê ÀüÀÚ °øÇÐ µð¹ÙÀ̽º (Integrated Drive Electronics devices) .It SCSI ¼ÒÇü ÄÄÇ»ÅÍ ½Ã½ºÅÛ ÀÎÅÍÆäÀ̽º µð¹ÙÀ̽º .It other ´Ù¸¥ µð¹ÙÀ̽º ÀÎÅÍÆäÀ̽º .El .Pp .It ÆÄ½º½º¸£: .Bl -tag -width 9n -compact .It pass ÆÄ½º½º¸£µ¥¹ÙÀ̽º .El .El .Pp .Fn compute_stats (Àº)´Â, ´Ù¾çÇÑ µð¹ÙÀ̽º Åë°è¸¦ ¾ò±â À§ÇÑ °£´ÜÇÑ ¹æ¹ýÀÔ´Ï´Ù. .Va current (¿Í)°ú .Va etime ÀÇ 2 °³ÀÇ Àμö°¡ ÇʼöÀÔ´Ï´Ù. ´Ù¸¥ °¢ Àμö´Â ¿É¼ÇÀÔ´Ï´Ù. ´ëºÎºÐÀÇ ¾îÇø®ÄÉÀ̼ÇÀÇ °æ¿ì, À¯Àú´Â .Va current (¿Í)°ú .Va previous ÀÇ .Nm ±¸Á¶ÀÇ ¾çÂÊ ¸ðµÎ¸¦ ÁöÁ¤ÇÏ°í ½Í´Ù°í »ý°¢ÇÏ´Â °ÍÀÔ´Ï´Ù. ÁöÁ¤ ±â°£¿¡ °ÉÃÄ Åë°è°¡ °è»êÇÒ ¼ö ÀÖµµ·Ï(µíÀÌ) Çϱâ À§ÇÑ(ÇØ)¿¡ÀÔ´Ï´Ù. ÀνºÅϽº¿¡ µû¶ó¼­´Â, ½Ã½ºÅÛ ±âµ¿À¸·ÎºÎÅÍÀÇ Åë°è¸¦ °è»êÇϱâ À§Çؼ­, À¯Àú´Â .Va previous ÀÇ Àμö¿¡ ´ëÇØ NULL Æ÷ÀÎÅ͸¦ °Ç³×ÁÖ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù. ±× °æ¿ì, .Fn compute_stats (Àº)´Â, .Va current ÀÇ ±¸Á¶³»ÀÇ ÇÕ°è »óŸ¦ »ç¿ëÇØ, .Va etime ½Ã°£¿¡ °ÉÄ¡´Â Åë°è¸¦ °è»êÇÕ´Ï´Ù. .Fn compute_stats ÇÏÁö¸¸ °è»êÇÒ °¡´É¼ºÀÌ ÀÖ´Â °¢Á¾ Åë°è´Â, ÇÔ¼ö ¼±¾ð ÀÚü·Î ÁÖ·Î ¼³¸íÇÑ´Ù Çʿ䰡 ÀÖ½À´Ï´Ù¸¸, ¿ÏÀü¼ºÀ» ±âÇϱâ À§Çؼ­(¶§¹®¿¡), º¯¼ö¸íÀÇ ¸®½ºÆ®¿Í °Å±â¿¡ ³ÖÀ» ¼ö ÀÖ´Ù Åë°è¸¦ ³ªÅ¸³À´Ï´Ù. .Bl -tag -width transfers_per_second .It total_bytes .Va previous ÀÇ Ãëµæ°ú .Va current ÀÇ Ãëµæµ¿¾È¿¡¼­, µ¶ÇØ¿Í ±âÀÔÀÇ ¾çÂÊ ¸ðµÎ°¡, ÁöÁ¤ µð¹ÙÀ̽º·Î Àü¼Û µÇ´Â ¹ÙÀÌÆ®ÀÇ ÇÕ°è¼öÀÔ´Ï´Ù. .Va previous ÇÏÁö¸¸ NULL ÀÇ °æ¿ì, °á°ú´Â .Va current ±×¸®°í ÁÖ¾îÁö´Â ÇÕ°èÀÇ µ¶ÇØ¿Í ±âÀÔÀÔ´Ï´Ù. .It total_transfers .Va previous ÀÇ Ãëµæ°ú .Va current ÀÇ Ãëµæµ¿¾È¿¡¼­ ¿Ï·áµÇ´Â Àü¼ÛÀÇ ÇÕ°è¼öÀÔ´Ï´Ù. ÀÌÀüÀÌ NULL ÀÇ °æ¿ì, °á°ú´Â .Va current ¾È¿¡ ¸®½ºÆ® µÇ´Â Æ®·£Àè¼Ç(transaction)ÀÇ ÇÕ°è¼öÀÔ´Ï´Ù. .It total_blocks ±âº»ÀûÀ¸·Î .Va total_bytes (À»)¸¦ µð¹ÙÀ̽º ºí·Ï »çÀÌÁî·Î Á¦»êÇÑ °ÍÀÔ´Ï´Ù. ºí·Ï »çÀÌÁî°¡ .Sq 0 (À¸)·Î¼­ ¸®½ºÆ® µÇ°í ÀÖ´Â °æ¿ì, µð¹ÙÀ̽º ºí·Ï »çÀÌÁî´Â, µðÆúÆ®·Î 512 ¹ÙÀÌÆ®°¡ µË´Ï´Ù. .It kb_per_transfer ÃøÁ¤ ±â°£ÀÇ »çÀÌÀÇ Àü¼Û¸¶´ÙÀÇ Æò±Õ KB ¼öÀÔ´Ï´Ù. .It transfers_per_second ÃÊ ¸¶´ÙÀÇ Àü¼ÛÀÇ Æò±Õ¼öÀÔ´Ï´Ù. .It mb_per_second ÃÊ ¸¶´ÙÀÇ Æò±Õ MB ÀÔ´Ï´Ù. .It locks_per_second ÃÊ ¸¶´ÙÀÇ Æò±Õ ºí·ÏÀÔ´Ï´Ù. µð¹ÙÀ̽º ºí·Ï »çÀÌÁî°¡ .Sq 0 ÀÇ °æ¿ì, µðÆúÆ®ÀÇ ºí·Ï »çÀÌÁî 512 ¹ÙÀÌÆ®°¡ ´ë½Å¿¡ »ç¿ëµË´Ï´Ù. .It ms_per_transaction Æ®·£Àè¼Ç(transaction)¸¶´ÙÀÇ Æò±Õ ¹Ð¸® ¼¼ÄÁµå¼öÀÔ´Ï´Ù. .El .Pp .Fn compute_etime (Àº)´Â, 2 °³(»ì)ÀÇ .Va timeval ±¸Á¶µ¿¾ÈÀÇ ÃÊ´ÜÀ§ÀÇ Â÷À̸¦ °ËÃâÇÏ´Â °£´ÜÇÑ ¹æ¹ýÀÔ´Ï´Ù. À̰ÍÀº, .Fn getdevs ÇÔ¼ö ( .Va statinfo ±¸Á¶ ü³» )°¡, ÇöÀçÀÇ .Nm ¸®½ºÆ®¸¦ ²¨³¾ ¶§¸¶´Ù, .Fn getdevs ÇÔ¼ö°¡ ±â·ÏÇßÀ» ¶§ °¢°ú ÇÔ²² °¡Àå ÀϹÝÀûÀ¸·Î »ç¿ëµË´Ï´Ù. .Sh ¹Ýȯ°ª .Fn getnumdevs , .Fn getgeneration , ¹× .Fn getversion (Àº)´Â, Áö½Ã¹ÞÀº \fBsysctl\fR º¯¼ö¸¦ µ¹·ÁÁÝ´Ï´Ù. º¯¼ö¸¦ ²¨³¾ ¶§ ¿¡·¯°¡ ÀÖ¾úÀ» °æ¿ì´Â -1 À» µ¹·ÁÁÝ´Ï´Ù. .Pp .Fn checkversion (Àº)´Â, Ä¿³Î°ú À¯Àú ·£µå devstat ¹öÁ¯ÀÌ ÀÏÄ¡ÇÏ´Â °æ¿ì, 0 À» µ¹·ÁÁÝ´Ï´Ù. ÀÏÄ¡ÇÏÁö ¾Ê´Â °æ¿ì, -1 ¸¦ µ¹·ÁÁÝ´Ï´Ù. .Pp .Fn getdevs (¿Í)°ú .Fn selectdevs (Àº)´Â, ¿¡·¯ÀÇ °æ¿ì´Â -1 À» µ¹·ÁÁÖ¾î, ¿¡·¯°¡ ¾ø´Â °æ¿ì´Â 0 À» µ¹·ÁÁÖ¾î, µð¹ÙÀ̽º ¸®½ºÆ® ¶Ç´Â ¼±ÅÃÇÑ µð¹ÙÀ̽º°¡ º¯È­Çϰí ÀÖ´Â °æ¿ì´Â 1 À» µ¹·ÁÁÝ´Ï´Ù. .Fn getdevs (À¸)·ÎºÎÅÍÀÇ ¹Ýȯ°ªÀÌ 1 ÀÎ °ÍÀº, .Fn selectdevs ÀÇ Àç½ÇÇàÀÇ ÈùÆ®ÀÔ´Ï´Ù. µð¹ÙÀ̽º ¸®½ºÆ®°¡ º¯È­Çϰí Àֱ⠶§¹®ÀÔ´Ï´Ù. .Pp .Fn buildmatch (Àº)´Â ¿¡·¯ÀÇ °æ¿ì´Â -1 , ¿¡·¯°¡ ¾ø´Â °æ¿ì´Â 0 À» µ¹·ÁÁÝ´Ï´Ù. .Pp .Fn compute_stats (Àº)´Â ¿¡·¯ÀÇ °æ¿ì´Â -1 , ¼º°øÀÇ °æ¿ì´Â 0 À» µ¹·ÁÁÝ´Ï´Ù. .Pp .Fn compute_etime °è»ê ³¡³­ °æ°ú½Ã°£À» µ¹·ÁÁÝ´Ï´Ù. .Pp .Nm ÇÁ·Î±×·¥ ¶óÀ̺귯¸® ÇÔ¼öÀÇ 1 °³·ÎºÎÅÍ ¿¡·¯°¡ µ¹·ÁÁÖ¾îÁ³À» °æ¿ì, ÀϹÝÀûÀ¸·Î, ¿¡·¯ÀÇ ÀÌÀ¯°¡ ±Û·Î¹ú string .Va devstat_errbuf ¿¡ ÀμâµË´Ï´Ù. .Va devstat_errbuf ÀÇ ±æÀÌ´Â .Dv DEVSTAT_ERRBUF_SIZE ij¸¯ÅÍÀÔ´Ï´Ù. .Sh °ü·Ã Ç׸ñ .Xr systat 1 , .Xr iostat 8 , .Xr rpc.rstatd 8 , .Xr vmstat 8 , .Xr devstat 9 .Sh ¿ª»ç .Nm Åë°è ½Ã½ºÅÛÀº ÃÖÃÊ·Î .Fx 3.0 ¿¡ ³ªÅ¸³µ½À´Ï´Ù. .Sh ÀúÀÚ .An Kenneth Merry Aq ken@FreeBSD.org .Sh ¹ö±× .Fn getdevs , .Fn selectdevs , ¹× .Fn buildmatch ¿¡ ÀÇÇØ ÇÒ´çÇØÁø ¸Þ¸ð¸®¸¦ ÇÒ´ç ÇØÁ¦Çϱâ À§ÇÑ ÀÎÅÍÆäÀ̽º°¡ ¾Æ¸¶ ÀÖÀ» °ÍÀÔ´Ï´Ù. .Pp .Fn selectdevs (Àº)´Â, µð¹ÙÀ̽º°¡ ÀÌÀü¿¡ ¼±ÅõǾî ÀÖÁö ¾ÊÀº °æ¿ì, .Dq top ¸ðµå¿¡¼­´Â, .Va maxshowdevs µð¹ÙÀ̽ºº¸´Ù ´ëºÎºÐÀ» ¼±ÅÃÇÏ´Â °ÍÀº ¾Æ¸¶ ÇÒ ¼ö ¾ø½À´Ï´Ù. .Pp ÀÌ ÇÁ·Î±×·¥ ¶óÀ̺귯¸®ÀÇ ´ëºÎºÐÀÇ Å¬¶óÀÌ¾ðÆ®¿¡ ´ëÇØ ÇàÇØÁö´Â Åë°è ¹öÆÛ ½º¿Ò (À»)¸¦ ½ÇÇàÇϱâ À§ÇÑ ÇÔ¼ö°¡ ¾Æ¸¶ ÀÖÀ» °ÍÀÔ´Ï´Ù. .Pp .Va statinfo ±¸Á¶¿Í .Nm devinfo ±¸Á¶´Â, Ŭ¸° ¾÷ ÇØ, Á» ´õ »ý°¢ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.