{"id":3244,"date":"2016-07-29T13:22:00","date_gmt":"2016-07-29T12:22:00","guid":{"rendered":"http:\/\/www.gamlor.info\/wordpress\/?p=3244"},"modified":"2021-03-11T09:42:56","modified_gmt":"2021-03-11T08:42:56","slug":"joyent-triton-native%eb%8a%94-%ec%9a%b0%eb%a6%ac-%ec%b9%9c%ea%b5%ac-%ec%9d%b4%ec%97%90%ec%9a%94","status":"publish","type":"post","link":"https:\/\/www.gamlor.info\/wordpress\/2016\/07\/joyent-triton-native%eb%8a%94-%ec%9a%b0%eb%a6%ac-%ec%b9%9c%ea%b5%ac-%ec%9d%b4%ec%97%90%ec%9a%94\/","title":{"rendered":"Joyent\uc758 Triton: \/native\ub294 \uc6b0\ub9ac \uce5c\uad6c \uc774\uc5d0\uc694!"},"content":{"rendered":"<p>(Here\u2019s the <a href=\"https:\/\/www.gamlor.info\/wordpress\/2016\/07\/joyents-triton-native-our-friend\/\">English version<\/a>, easier to understand)<br \/>\n\uc6b0\ub9ac\ub294 Docker \ucee8\ud14c\uc774\ub108\ub97c Triton\ub85c \ubc30\ud3ec\ud588\uace0 \ub2e4 \uc798 \ub410\uc5b4\uc694. \uadfc\ub370&#8230;\uac11\uc790\uae30 \uc624\ub298 \uc6b0\ub9ac \uc571\uac00 \uba3c\uc81c \uc788\uc5b4\uc694. \uc6b0\ub9ac \uc571\uc740 \ub290\ub824\uc694 \uc544\ub2c8\uba74 \uc791\ub3d9\ud558\uc9c0 \uc54a\uc544\uc694. \uadf8\ub9ac\uace0 \ucee8\ud14c\uc774\ub108 \uc548\uc5d0 \ub514\ubc84\uadf8 \ub3c4\uad6c\uac00 \uc5c6\uc5b4\uc694. \uadf8\ub7fc \uc6b0\ub9ac\ub294 \ubb50 \ud560 \uac70\uc608\uc694?<\/p>\n<div id=\"attachment_3310\" style=\"width: 710px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.gamlor.info\/wordpress\/wp-content\/uploads\/2016\/07\/rebooting.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3310\" src=\"https:\/\/www.gamlor.info\/wordpress\/wp-content\/uploads\/2016\/07\/rebooting-863x1024.jpg\" alt=\"\uc7ac\ubd80\ud305\ub294 \ud574\uacb0 \uc544\ub2c8\uc5d0\uc694\" width=\"700\" height=\"831\" class=\"size-large wp-image-3310\" srcset=\"https:\/\/www.gamlor.info\/wordpress\/wp-content\/uploads\/2016\/07\/rebooting-863x1024.jpg 863w, https:\/\/www.gamlor.info\/wordpress\/wp-content\/uploads\/2016\/07\/rebooting-253x300.jpg 253w, https:\/\/www.gamlor.info\/wordpress\/wp-content\/uploads\/2016\/07\/rebooting-768x911.jpg 768w, https:\/\/www.gamlor.info\/wordpress\/wp-content\/uploads\/2016\/07\/rebooting.jpg 1200w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/a><p id=\"caption-attachment-3310\" class=\"wp-caption-text\">\uc7ac\ubd80\ud305\ub294 \ud574\uacb0 \uc544\ub2c8\uc5d0\uc694<\/p><\/div>\n<h2>Triton\uc758 \ucee8\ud14c\uc774\ub108\ub97c \uc870\uae08 \ud0d0\uc5d0\uc0ac\ud558\uc138\uc694!<\/h2>\n<p>\uc800\ub294 \ub2e4\uc2dc nginx \ucee8\ud14c\uc774\ub108\ub97c \ud2b8\ub9ac\ud1a4\uc5d0\uc11c \uc2dc\uc791\ud588\uc5b4\uc694.<br \/>\n<script src=\"https:\/\/gist.github.com\/674e33d7e8db51040fc00869de0e272a.js?file=explore-start-ngnix.sh\"><\/script><noscript><pre><code class=\"language-shell shell\">#Switch to Triton\neval $(triton env)\n# Start nginx on triton\ndocker run -d --name test -p 80 nginx<\/code><\/pre><\/noscript><br \/>\n\uc774 \ucee8\ud14c\uc774\ub108\ub97c \uc2dc\uc791 \ud588\uc744 \ub5bc \ucee8\ud14c\uc774\ub108 \uc548\uc5d0 `docker exec`\ub85c shell\uc744 \uc0ac\uc791\ud574\uace0 \ud30c\uc77c \uc2dc\uc2a4\ud15c\ub97c \uc870\uae08 \ubcf4\uc138\uc694. \ubb58 \ubc1c\uacac\ud588\uc5b4\uc694?<br \/>\n<script src=\"https:\/\/gist.github.com\/674e33d7e8db51040fc00869de0e272a.js?file=interactive-shell-on-container.sh\"><\/script><noscript><pre><code class=\"language-shell shell\">roman@minty ~ $ docker exec -ti test \/bin\/bash\nroot@ae35cee7759b:\/# ls -l\n<\/code><\/pre><\/noscript><\/p>\n<div id=\"attachment_3254\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.gamlor.info\/wordpress\/wp-content\/uploads\/2016\/07\/native.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3254\" class=\"size-medium wp-image-3254\" src=\"https:\/\/www.gamlor.info\/wordpress\/wp-content\/uploads\/2016\/07\/native-300x195.jpg\" alt=\"\/native?\" width=\"300\" height=\"195\" srcset=\"https:\/\/www.gamlor.info\/wordpress\/wp-content\/uploads\/2016\/07\/native-300x195.jpg 300w, https:\/\/www.gamlor.info\/wordpress\/wp-content\/uploads\/2016\/07\/native.jpg 549w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-3254\" class=\"wp-caption-text\">\/native?<\/p><\/div>\n<p>\/native \ubb50\uc608\uc694? \uc870\uae08 \ub354 \ubcf4\uc138\uc694. \uc544\ub9c8 \uc720\uba85\ud55c Unix \ud504\ub85c\uadf8\ub7a8\uc744 \uc7a6\uc544\ubcf4\uc138\uc694? \uc544\ud558! `awk`\ubd80\ud130 `zcat`\uae4c\uc9c0 \ub2e4 \uc788\uad6c\ub098\uc694! \uadf8\ub798\uc11c \/native\uac00 \ub2e4\ub978 Unix\uc608\uc694? \ub9de\uc544! \/native\ub294 Triton\uc758 \ud1a0\ubc15\uc774 (native) \uc6b4\uc601\uccb4\uc81c \uc774\uc5d0\uc694! \uadf8\ub9ac\uace0 \uc720\uc6a9\ud55c \ub3c4\uad6c\uac00 \uc788\uc5b4\uc694!<\/p>\n<div id=\"attachment_3259\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.gamlor.info\/wordpress\/wp-content\/uploads\/2016\/07\/explored.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3259\" class=\"size-medium wp-image-3259\" src=\"https:\/\/www.gamlor.info\/wordpress\/wp-content\/uploads\/2016\/07\/explored-300x228.jpg\" alt=\"\ud0d0\uc0ac\ud558\uc138\uc694.\" width=\"300\" height=\"228\" srcset=\"https:\/\/www.gamlor.info\/wordpress\/wp-content\/uploads\/2016\/07\/explored-300x228.jpg 300w, https:\/\/www.gamlor.info\/wordpress\/wp-content\/uploads\/2016\/07\/explored.jpg 561w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-3259\" class=\"wp-caption-text\">\ud0d0\uc0ac\ud558\uc138\uc694.<\/p><\/div>\n<div id=\"attachment_3305\" style=\"width: 710px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.gamlor.info\/wordpress\/wp-content\/uploads\/2016\/07\/slash-native.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3305\" src=\"https:\/\/www.gamlor.info\/wordpress\/wp-content\/uploads\/2016\/07\/slash-native-1024x350.jpg\" alt=\"\/native\uc5d0\uc11c \uc5b4\ub79c unix \ub3c4\uad6c\uac00 \uc0ac \uc0b4\uc544\uc694\" width=\"700\" height=\"239\" class=\"size-large wp-image-3305\" srcset=\"https:\/\/www.gamlor.info\/wordpress\/wp-content\/uploads\/2016\/07\/slash-native-1024x350.jpg 1024w, https:\/\/www.gamlor.info\/wordpress\/wp-content\/uploads\/2016\/07\/slash-native-300x103.jpg 300w, https:\/\/www.gamlor.info\/wordpress\/wp-content\/uploads\/2016\/07\/slash-native-768x262.jpg 768w, https:\/\/www.gamlor.info\/wordpress\/wp-content\/uploads\/2016\/07\/slash-native.jpg 1200w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/a><p id=\"caption-attachment-3305\" class=\"wp-caption-text\">\/native\uc5d0\uc11c \uc5b4\ub79c unix \ub3c4\uad6c\uac00 \uc0ac \uc0b4\uc544\uc694<\/p><\/div>\n<h2>\/native\ub97c \uc0ac\uc6a9\ud558\uc790!<\/h2>\n<p>\uc774\uc81c\ub294 \/native\uae30 \uc788\ub294\uac78 \uc54c\uc544\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc5b4\uc694. \uba3c\uc800 \ub098\uc05c \ucee8\ud14c\uc774\ub108 \ubc30\ud3ec\ud574\uc694. \uc800\ub294 &#8216;\ub098\uc05c \ucee8\ud14c\uc774\ub108&#8217; \uc608\ub97c \uc900\ube44\ud588\uc5b4\uc694. <a href=\"https:\/\/gist.github.com\/gamlerhart\/5582bce62cfea2ea4aad57956df2a7b5\">\uc18c\uc2a4 \ucf54\ub4dc\uac00 \uc5ec\uae30<\/a>\uc5d0 \uc788\uc5b4\uc694. \uc774 &#8216;gamlerhart\/waste-io&#8217; \ucee8\ud14c\uc774\ub108\ub97c \uc2dc\uc791\ud558\uc138\uc694:<br \/>\n<script src=\"https:\/\/gist.github.com\/674e33d7e8db51040fc00869de0e272a.js?file=start-bad-container.sh\"><\/script><noscript><pre><code class=\"language-shell shell\">docker run -d --name waste-io-example gamlerhart\/waste-io<\/code><\/pre><\/noscript><br \/>\n\uc774 \ucee8\ud14c\uc774\ub108 \ubb38\uc81c \uc788\uc796\uc544\uc694. \ubb34\uc2a8 \ubb38\uc81c \uc788\ub294 \uac83 \uc7a6\uc544\ubcf4\uc138\uc694. \uc6b0\ub9ac\ub294 \ub2e4\uc2dc `docker exec`\ub85c \ucee8\ud14c\uc774\ub108\uac00 \uc5f0\ub77d\ud574\uc694. \uadf8\ub7fc `iostat&#8217; \uc0ac\uc6a9 \ud574\ubcf4\uba74 `iostat&#8217; \uc5c6\ub2e4\uace0\uc694. \uadfc\ub370 \uc6b0\ub9ac\ub294 \/native \uc0ac\uc6a9\ud560 \uc218 \uc788\uc5b4\uc694. \/native\uc758 PATH\uc5d0 \ub354\ud558\uace0 `iostat&#8217; \uc0ac\uc6a9 \ud560 \uc218 \uc788\uc5b4\uc694:<br \/>\n<script src=\"https:\/\/gist.github.com\/674e33d7e8db51040fc00869de0e272a.js?file=iostat.sh\"><\/script><noscript><pre><code class=\"language-shell shell\">roman@minty ~ $ docker exec -ti waste-io-example \/bin\/bash\nroot@3bd53e4a7fe4:\/# \nroot@3bd53e4a7fe4:\/# iostat -M 1\nbash: iostat: command not found\n\n#Oh...damn...iostat would tell us if our IO is sane.\n#Ah...\/native to the rescue\nroot@3bd53e4a7fe4:\/# iostat -M 1\n   tty      ramdisk1        sd0           sd1           sd2            cpu\n tin tout Mps tps serv  Mps tps serv  Mps tps serv  Mps tps serv   us sy dt id\n   0  236   0   0    0    0   0    0    2 148    0    2  42    1    4  8  0 89\n   0 1214   0   0    0    0   0    0    7 3583    0    0   0    0    9 14  0 77\n   0 2100   0   0    0    0   0    0    7 3531    0    5 157    0    7 17  0 77\n   0  941   0   0    0    0   0    0    7 3640    0    0   0    0    7 14  0 79<\/code><\/pre><\/noscript>.<br \/>\n\uc544\ud558!! \uc6b0\ub9ac \ucee8\ud14c\uc774\ub108\uac00 IO \ub9ce\uc774 \ud558\uace0 \uc788\uc5b4\uc694. \uadfc\ub370 \uc6b0\ub9ac\ub294 \ub354 \uc54c\uace0 \uc2f6\uc5b4\uc694. \ud760~~~&#8230;.&#8217;tracing&#8217; \ud558\uace0 \uc2f6\uc5b4\uc694. &#8216;dtrace&#8217; \ud558\uc790\uc694!. \ub9de\uc544! dtrace\uac00 \/native\uc5d0 \uc788\uc5b4\uc694. \uc800\ub294 dtrace\ud504\ub85c \uc544\ub2c8\uc5d0\uc694. \uadfc\ub370 \uc778\ud130\ub137 \uc548\ub0b4 \ub9ce\uc544\uc694 (<a href=\"http:\/\/dtrace.org\/\">dtrace.org<\/a>, <a href=\"http:\/\/dtrace.org\/blogs\/\">guide<\/a>, <a href=\"http:\/\/www.brendangregg.com\/DTrace\/dtrace_oneliners.txt\">\uc608\uac00<\/a>).<br \/>\n\uc6b0\ub9ac\ub294 &#8216;lx-sycall&#8217;-\ud504\ub85c\ube0c (<strong>L<\/strong>inu<strong>X<\/strong>-syscall) \uc0ac\uc6a9\ud560 \uac70\uc5d0\uc694. `-ln lx-syscall:::`\uac00 lx-syscall \ud504\ub85c\ube0c\ub97c \uba85\ub2e8\ud574\uc694. -n `syscall::: { @num[execname,pid,probefunc] = count() }`\ub294 \ud504\ub85c\ube0c \uc2dc\uc791\ud558\uace0 \ud504\ub85c\uadf8\ub7a8\uacfc \ud504\ub85c\uc138\uc2a4 \uc544\uc774\ub514\uc640 sycall \uc774\ub984 \uadf8\ub8f9 \ud574\uc694. \ud504\ub85c\ube0c\ub97c Cntl+C \uadf8\ub9cc\ud558\uc138\uc694.<br \/>\n<script src=\"https:\/\/gist.github.com\/674e33d7e8db51040fc00869de0e272a.js?file=dtrace-start.sh\"><\/script><noscript><pre><code class=\"language-shell shell\">#linux-syscalls aka lx-syscalls\nroot@3bd53e4a7fe4:\/# dtrace -ln &#039;lx-syscall:::&#039;\n   ID   PROVIDER            MODULE                          FUNCTION NAME\n 1549 lx-syscall             sys32                     inotify_init1 return\n 1550 lx-syscall             sys32                            preadv entry\n 1551 lx-syscall             sys32                            preadv return\n 1552 lx-syscall             sys32                           pwritev entry\n \n# Start tracing the syscalls. Grouped by execname, pid and syscallname (probefunc)\nroot@3bd53e4a7fe4:\/# dtrace -n &#039;syscall::: { @num[execname,pid,probefunc] = count() }&#039;\ndtrace: description &#039;lx-syscall::: &#039; matched 1352 probes\n^C\n\n  node                                                  23210  fsync                                                         11368\n  node                                                  23210  ioctl                                                         11368\n  node                                                  23210  open                                                          11368\n  node                                                  23210  pwrite64                                                      11368\n  node                                                  23210  close                                                         11370\n  node                                                  23210  unlink                                                        11370\n  node                                                  23210  epoll_wait                                                    30332\n  node                                                  23210  read                                                          30332\n  node                                                  23210  write                                                         30332\n  node                                                  23210  futex                                                        180019\n \n<\/code><\/pre><\/noscript><br \/>\n\uc6b0\ub9ac\ub294 node-\ud504\ub85c\uc138\uc2a4\uc758 \ud30c\uc77c \uc2dc\uc2a4\ud15c write, read, open unlink\ud558\uace0 futex \ub9ce\uc774 \ubd10\uc11c \uc774 node \ud504\ub85c\uc138\uc2a4 \ub098\ube60\uc84c\uc5b4\uc694. \uadfc\ub370 \uc774 \ud504\ub85c\uc138\uc2a4\uac00 \ubb50 \ud558\uace0 \uc788\uc5b4\uc694? \ubb34\uc2a8 \ud30c\uc77c \uc0ac\uc6a9\ud558\uace0 \uc788\uc5b4\uc694? \uc6b0\ub9ac\ub294 \ub354 dtrace \ud504\ub85c\ube0c \ud558\uc790! `x-syscall::open:entry` open-syscall\ub9cc \ubcf4\uace0 `execname==&#8221;node&#8221;`\ub85c node-\ud504\ub85c\uadf8\ub7a8\ub9cc \ubd10\uc694. \uace0\ub9ac\uace0 `@num[copyinstr(arg0)] = count()`\ub85c \ud30c\uc77c \uadf8\ub8f9 \ud574\uc694:<br \/>\n<script src=\"https:\/\/gist.github.com\/674e33d7e8db51040fc00869de0e272a.js?file=what-file.sh\"><\/script><noscript><pre><code class=\"language-shell shell\">root@3bd53e4a7fe4:\/# dtrace -n &#039;lx-syscall::open:entry\/execname==&quot;node&quot;\/ {  @num[copyinstr(arg0)] = count() }&#039;\ndtrace: description &#039;lx-syscall::open:entry&#039; matched 2 probes\n^C\n\n  \/tmp\/io-file-0.00023033588805110305                               1\n  \/tmp\/io-file-0.00029973264092197915                               1\n  \/tmp\/io-file-0.001082331117725488                                 1\n  \/tmp\/io-file-0.0017028727466004145                                1\n  \/tmp\/io-file-0.00224423432995402                                  1\n  \/tmp\/io-file-0.002446706340221372                                 1\n  \/tmp\/io-file-0.002880551536430742                                 1<\/code><\/pre><\/noscript><br \/>\n\uc544&#8230;\uc784\uc2dc\uc758 \ud30c\uc77c\uc744 \ub9ce\uc544\uc694. \ud760&#8230;node-\ud504\ub85c\uadf8\ub7a8 \uc548\uc5d0 \uc5b4\ub514\uc5d0 \uc774 \uc784\uc2dc\uc758 \ud30c\uc77c \ub9cc\ub4e4\uc5b4\uc694? Dtrace\uc758 &#8216;jstack\/ustack&#8217; \uc6b0\ub9ac\ub294 \uc2a4\ud0dd \ucd94\uc801\ub97c \ubc1b\uc744 \uc218 \uc788\uc5b4\uc694:<br \/>\n<script src=\"https:\/\/gist.github.com\/674e33d7e8db51040fc00869de0e272a.js?file=stack-probe.sh\"><\/script><noscript><pre><code class=\"language-shell shell\">root@3bd53e4a7fe4:\/# dtrace -n &#039;lx-syscall::open:entry\/execname==&quot;node&quot;\/ {  @num[jstack()] = count() }&#039;\ndtrace: description &#039;lx-syscall::open:entry&#039; matched 2 probes\n^C\n\n\n              libc.so.6`open+0x10\n              libc.so.6`sysconf+0x54c\n              node`_ZN2v88internal20MarkCompactCollector31NumberOfParallelCompactionTasksEil+0x46\n              node`_ZN2v88internal20MarkCompactCollector23EvacuatePagesInParallelEv+0xea\n              node`_ZN2v88internal20MarkCompactCollector29EvacuateNewSpaceAndCandidatesEv+0x67\n              node`_ZN2v88internal20MarkCompactCollector14CollectGarbageEv+0x29\n              node`_ZN2v88internal4Heap11MarkCompactEv+0x6d\n              node`_ZN2v88internal4Heap24PerformGarbageCollectionENS0_16GarbageCollectorENS_15GCCallbackFlagsE+0x4b0\n              node`_ZN2v88internal4Heap14CollectGarbageENS0_16GarbageCollectorEPKcS4_NS_15GCCallbackFlagsE+0x142\n              node`_ZN2v88internal4Heap15HandleGCRequestEv+0x84\n              node`_ZN2v88internal10StackGuard16HandleInterruptsEv+0x31c\n              node`_ZN2v88internal18Runtime_StackGuardEiPPNS0_6ObjectEPNS0_7IsolateE+0x45\n              0x2bd84b30961b\n              0x2bd84b44e1f9\n              0x2bd84b4490eb\n              0x2bd84b44281b\n              0x2bd84b30d157\n              0x2bd84b442615\n              0x2bd84b337f84\n              0x2bd84b322922\n              node`_ZN2v88internal12_GLOBAL__N_16InvokeEPNS0_7IsolateEbNS0_6HandleINS0_6ObjectEEES6_iPS6_S6_+0xb3\n              node`_ZN2v88internal9Execution4CallEPNS0_7IsolateENS0_6HandleINS0_6ObjectEEES6_iPS6_+0x61\n              node`_ZN2v88Function4CallENS_5LocalINS_7ContextEEENS1_INS_5ValueEEEiPS5_+0x139\n              node`_ZN2v88Function4CallENS_5LocalINS_5ValueEEEiPS3_+0x41\n              node`_ZN4node9AsyncWrap12MakeCallbackEN2v85LocalINS1_8FunctionEEEiPNS2_INS1_5ValueEEE+0x149\n              node`_ZN4nodeL5AfterEP7uv_fs_s+0x146\n              node`uv__work_done+0xa5\n              node`uv__async_event+0xab\n              node`uv__async_io+0xa3\n              node`uv__io_poll+0x3a0\n              node`uv_run+0x156\n              node`_ZN4node5StartEiPPc+0x468\n              libc.so.6`__libc_start_main+0xf5\n                2\n\n              libpthread.so.0`open+0x2d\n              node`worker+0xa1\n              node`uv__thread_start+0x19\n              libpthread.so.0`start_thread+0xc4\n            62043\n<\/code><\/pre><\/noscript><br \/>\n\uc544&#8230;\uc6b4\uc774 \uc5c6\uc5b4\uc694. open-syscall\uac00 node\uc758 \uc774\ubca4\ud2b8 \ud504\ub85c\ube0c\uc5d0 \ub098\uc640\uc694 (node\ub97c dtrace\ub85c \uc54c\uc544\ubcf4\uae30 \ub2e4\ub978 \uc8fc\uc81c\uc774\uc5d0\uc694) . \uadfc\ub370 \uc6b0\ub9ac\ub294 node\ub97c \ud504\ub85c\uadf8\ub7a8\uac00 `tmp\/io-file-` \ud30c\uc77c \ub9c8\ub4e4\uae30 \uc54c\uc544\uace0 \uc774\uc81c \uc544\ub9c8 \ud504\ub85c\uadf8\ub7a8 \ubc84\uadf8 \ubb38\uc81c\ub97c \ud480 \uc218 \uc788\uc5b4\uc694.<br \/>\n<div id=\"attachment_3308\" style=\"width: 710px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.gamlor.info\/wordpress\/wp-content\/uploads\/2016\/07\/dtrace.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3308\" src=\"https:\/\/www.gamlor.info\/wordpress\/wp-content\/uploads\/2016\/07\/dtrace-1024x526.jpg\" alt=\"\uc15c\ub85d &#039;dtrace&#039; \ud648\uc988\" width=\"700\" height=\"360\" class=\"size-large wp-image-3308\" srcset=\"https:\/\/www.gamlor.info\/wordpress\/wp-content\/uploads\/2016\/07\/dtrace-1024x526.jpg 1024w, https:\/\/www.gamlor.info\/wordpress\/wp-content\/uploads\/2016\/07\/dtrace-300x154.jpg 300w, https:\/\/www.gamlor.info\/wordpress\/wp-content\/uploads\/2016\/07\/dtrace-768x394.jpg 768w, https:\/\/www.gamlor.info\/wordpress\/wp-content\/uploads\/2016\/07\/dtrace.jpg 1200w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/a><p id=\"caption-attachment-3308\" class=\"wp-caption-text\">\uc15c\ub85d &#8216;dtrace&#8217; \ud648\uc988<\/p><\/div><\/p>\n<h2>dtrace \uc798 \uc544\uc138\uc694?<\/h2>\n<p>dtrace \uc798 \uc54c\uba74 \ub9ce\ub294 \ud504\ub85c\ube0c \ubabb \uc7a6\uc544\uc694? \uadf8\ub7fc Triton\u00a0 \ucee8\ud14c\uc774\ub108 \uc548\uc5d0 \ucee8\ud14c\uc774\ub108\ub9cc \ubcfc \uc218 \uc788\uc5b4\uc11c dtrace \ud504\ub85c\ubcf4 \ub35c \ub9ce\uc544\uc694. \uadf8\ub9ac\uace0 \uc6b0\ub9ac\ub294 Joyent\uc758\u00a0<span id=\"result_box\" class=\"short_text\" lang=\"ko\"><span class=\"\">\ud074\ub77c\uc6b0\ub4dc<\/span><\/span> \uc2a4\ube44\uc2a4 &#8216;global-zone&#8217; \ub4e4\uc5b4\uac00\uba74 \ubabb \ud574\uc694.\u00a0 \uac1c\uc778 Triton\uac00 \uc788\uc73c\uba74 \ud560 \uc218 \uc788\uc5b4\uc694. \uadfc\ub370 \uc774 \uae00 \ub05d\ub0c8\uc5b4\uc694. ^.^\ub05d<\/p>\n","protected":false},"excerpt":{"rendered":"<p>(Here\u2019s the English version, easier to understand) \uc6b0\ub9ac\ub294 Docker \ucee8\ud14c\uc774\ub108\ub97c Triton\ub85c \ubc30\ud3ec\ud588\uace0 \ub2e4 \uc798 \ub410\uc5b4\uc694. \uadfc\ub370&#8230;\uac11\uc790\uae30 \uc624\ub298 \uc6b0\ub9ac \uc571\uac00 \uba3c\uc81c \uc788\uc5b4\uc694. \uc6b0\ub9ac \uc571\uc740 \ub290\ub824\uc694 \uc544\ub2c8\uba74 \uc791\ub3d9\ud558\uc9c0 \uc54a\uc544\uc694. \uadf8\ub9ac\uace0 \ucee8\ud14c\uc774\ub108 \uc548\uc5d0&hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"categories":[187,255],"tags":[300,301,302],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.gamlor.info\/wordpress\/wp-json\/wp\/v2\/posts\/3244"}],"collection":[{"href":"https:\/\/www.gamlor.info\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gamlor.info\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gamlor.info\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gamlor.info\/wordpress\/wp-json\/wp\/v2\/comments?post=3244"}],"version-history":[{"count":45,"href":"https:\/\/www.gamlor.info\/wordpress\/wp-json\/wp\/v2\/posts\/3244\/revisions"}],"predecessor-version":[{"id":3319,"href":"https:\/\/www.gamlor.info\/wordpress\/wp-json\/wp\/v2\/posts\/3244\/revisions\/3319"}],"wp:attachment":[{"href":"https:\/\/www.gamlor.info\/wordpress\/wp-json\/wp\/v2\/media?parent=3244"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gamlor.info\/wordpress\/wp-json\/wp\/v2\/categories?post=3244"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gamlor.info\/wordpress\/wp-json\/wp\/v2\/tags?post=3244"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}