{"componentChunkName":"component---src-templates-post-template-jsx","path":"/works/posts/2020-12-20--001","result":{"data":{"site":{"siteMetadata":{"title":"Blog by Eunyoung","subtitle":"작업 기록 블로그","copyright":"© All rights reserved.","author":{"name":"EunYoung","twitter":"#"},"disqusShortname":"","url":"https://ssongey.github.io"}},"markdownRemark":{"id":"aace0308-9f7c-5999-a56f-d8882cec531c","html":"<h3>#1. uname: 시스템과 커널의 정보</h3>\n<div class=\"gatsby-highlight\" data-language=\"cmd\"><pre class=\"language-cmd\"><code class=\"language-cmd\">$ uname -a\nLinux V2G-Dev-Server 5.4.0-1034-azure #35~18.04.1-Ubuntu SMP Thu Dec 10 09:13:52 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux\n\n# [Linux] : 커널 명\n# [V2G-Dev-Server] : 호스트 명\n# [5.4.0-1034-azure] : 커널 릴리즈 정보\n# [#35~18.04.1-Ubuntu SMP Thu Dec 10 09:13:52 UTC 2020] : 커널 버전\n# [x86_64] : 머신 하드웨어 이름\n# [x86_64] : 프로세서 종류\n# [x86_64] : 하드웨어 플랫폼\n# [GNU/Linux] : 운영체제</code></pre></div>\n<br>\n<h3>#2. top: 운영체제 작업 내역 모니터링</h3>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/e77a778d1624d604f10cb27d89a5eefc/d7542/001-01.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 810px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 86.66666666666667%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAARCAYAAADdRIy+AAAACXBIWXMAABJ0AAASdAHeZh94AAACmklEQVQ4y22UWVPbUAyF/VO6zECA7E7sLN4SO4HQJZAEmJZ22iEQSKBM+/8fVH1yTDMdHjS+vro6OjrSvU6v70kQdmSYRtLttqTTce2/12+Lr+so7km311Jry2AYCudZR3FX/U1pNMtSqZakXNlXK4kzPh7agTSLJU56BhBGXclGiVos2XigyUJJ9Z8voINBYASC0LfzHSUCYLV2IA5sPL8htcaRMswZ1euH0nSrEilw22voumLB/cCTVrsux5PUKugHvrHcL72Tvf23Zs7N8oes1yuzh/WdbDb38ut5I3erG9t7fHyQla5X90vbw37/ebazrJe3P+Xpaf1izvnss1xcnqvNZDo9lY+fJnJ9fSWXV3P5qt/54ky+ff8ipx9GMptP1X8ii4szs/liatKMMJUGc9ArTvrWCLdVFVdLSlWfRPfQidL4IgNnkQcZKB9Jjsp7WuobKxtz0Gw0TgwQPXwVmKw062SSWTLWvgJxljNF42hkR3Wvq/4Y3XbIRDdh12rXjEGsAXQTpnQehm31FQwBxLJRPgHEMj502iky0Uk6mM9eV5JBqBYYg2Eai+fVJVQQAEP1kwzN0kxl0bGDjAEyQ4NhsAPYzFkxb7rPIMPQgLYMkYdkVIHW6AwgeuYMNYDSAfP8pgUwvJTFYSrYBcyrigww0Fk8OHxvYKZhAUgg3QMQcADjbXYCreQtIAOd2G3JAdGPpljJsAGQDbdVM8CinOJ2WFMMsLdTct+Y57en9q8pZCMTARgB6IY2+F5juKthUQU9eAHEkW2z7ZYURh3bMw3/A6Rh9lBsm4f+1hSEJ6B4JHAQCMOiKclrDNXPPiPmKjteGmNI0ERvRP7u6Ruoc1cMc6Gj3RRuiIIwl3y5DPhJwhtavIl/AYIFRncOvUqRAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"001 01\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/e77a778d1624d604f10cb27d89a5eefc/d7542/001-01.png\"\n        srcset=\"/devHistoryBlog/static/e77a778d1624d604f10cb27d89a5eefc/8ff5a/001-01.png 240w,\n/devHistoryBlog/static/e77a778d1624d604f10cb27d89a5eefc/e85cb/001-01.png 480w,\n/devHistoryBlog/static/e77a778d1624d604f10cb27d89a5eefc/d7542/001-01.png 810w\"\n        sizes=\"(max-width: 810px) 100vw, 810px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<h4>#2.1. CPU</h4>\n<ul>\n<li>User값이 높다면, 사용자 코드를 수행하는데 시간이 오래 걸린다면 내부적으로 계산을 많이 하고 있다는 것 </li>\n<li>System값이 높다면, 시스템에 의해 사용되고 있는 시간이 오래 걸린다면 프로세스들이 시스템 호출 또는 I/O가 많다고 할 수 있음 </li>\n<li>idle의 값이 항상 0이라면 CPU를 100% 사용하고 있다는 것을 의미</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">[us] : 사용자가 사용중인 사용률\n[sy] : 시스템이 사용중인 사용률\n[ni] : 프로세스 우선순위를 기반으로 사용되는 사용률(사용자 공간에서 사용됨)\n[id] : 아무 일도 하지 않는 여유률\n[wa] : 입출력을 기다리는 프로세스 사용률\n[hi] : 하드웨어 인터럽트 사용률\n[si] : 소프트웨어 인터럽트 사용률\n[st] : 가상화 환경에서 손실률</code></pre></div>\n<br>\n<h4>#2.2. PROCESS</h4>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">[PID] : 프로세스 ID\n[USER] : 프로세스를 실행시킨 사용자 ID\n[PR] : 프로세스의 우선순위\n[NI] : NICE 값, 마이너스를 가지는 값이 우선순위가 높음\n[VIRT] : 가상 메모리의 사용량(SWAP+RES)\n[RES] : 현재 페이지가 상주하고 있는 크기\n[SHR] : 가상 메모리 중 사용중인 메모리를 제외한 잔여 가상 메모리\n[S] : 프로세스의 상태\n[%CPU] : 프로세스가 사용하는 CPU의 사용률\n[%MEM] : 프로세스가 사용하는 메모리의 사용률\n[TIME+] : 프로세스가 CPU를 사용한 시간\n[COMMAND] : 실행된 명령어</code></pre></div>\n<br>\n<h4>#2.3. 프로세스의 정렬 방법</h4>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">[SHIFT + M] : 메모리 사용률 정렬\n[SHIFT + N] : PID 기준 정렬\n[SHIFT + P] : CPU 사용률 정렬\n[SHIFT + T] : 실행시간 기준 정렬\n[SHIFT + R] : 정렬 기준변경 (오름차순인 경우 내림차순으로, 내림차순인 경우 오름차순으로 변경)\n\n[u] : 사용자 명 입력 시 해당 사용자의 프로세스만 표시\n\n[1] : CPU Core 개수 만큼 표시</code></pre></div>\n<br>\n<h3>#3. free</h3>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/73cd2a356a713f3ee226b98bc619c1be/cab8c/001-02.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 744px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 12.083333333333332%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAACCAYAAABYBvyLAAAACXBIWXMAABJ0AAASdAHeZh94AAAAcElEQVQI1x2Oaw7DMAiDe5luXTLyThqolN3/VB7hB7JB1oePPhLGnTG5Qp6O9RPUFvRWsBYjJodcCPes8N+X5fa0nsDSVaPl5RmmB0tDyh7OnwjRKZBB9FaQN78hpQZ7tDO7wFQ4hUt9tp3ixwps4B8hdD/LLMaJYQAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"001 02\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/73cd2a356a713f3ee226b98bc619c1be/cab8c/001-02.png\"\n        srcset=\"/devHistoryBlog/static/73cd2a356a713f3ee226b98bc619c1be/8ff5a/001-02.png 240w,\n/devHistoryBlog/static/73cd2a356a713f3ee226b98bc619c1be/e85cb/001-02.png 480w,\n/devHistoryBlog/static/73cd2a356a713f3ee226b98bc619c1be/cab8c/001-02.png 744w\"\n        sizes=\"(max-width: 744px) 100vw, 744px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">[total] : 설치된 총 메모리 크기 / 설정된 스왑 총 크기\n[used] : total에서 free, buff/cache를 뺀 사용중인 메모리. / 사용중인 스왑 크기\n[free] : total에서 used와 buff/cahce를 뺀 실제 사용 가능한 여유 있는 메모리량 / 사용되지 않은 스왑 크기\n[shared] : tmpfs(메모리 파일 시스템), ramfs 등으로 사용되는 메모리. 여러 프로세스에서 사용할 수 있는 공유 메모리\n[buffers] : 커널 버퍼로 사용중인 메모리\n[cache] : 페이지 캐시와 slab으로 사용중인 메모리\n[buff/cache] : 버퍼와 캐시를 더한 사용중인 메모리\n[available] : swapping 없이 새로운 프로세스에서 할당 가능한 메모리의 예상 크기. (예전의 -/+ buffers/cache이 사라지고 새로 생긴 컬럼)</code></pre></div>\n<p>참고) <a href=\"https://www.whatap.io/ko/blog/37/\">https://www.whatap.io/ko/blog/37/</a></p>\n<br>\n<h3>#4. vmstat: 시스템 정보 모니터링</h3>\n<ul>\n<li>시스템 작업, 메모리, 페이징, 블록장치의 I/O, CPU상태 등을 확인</li>\n<li>vmstat [delay [count]]를 사용하면 실시간으로 상태 확인 가능</li>\n</ul>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/f06f8b5b17cef1388d3a548d4524408f/5e3a3/001-03.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 763px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 12.916666666666664%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAADCAYAAACTWi8uAAAACXBIWXMAABJ0AAASdAHeZh94AAAAmklEQVQI1yWOWRLCMAxDexcoJfvSJF1goLQzcP8TCdv90ER2kid1Pmj4oGDsDdM8opQA5++wboA2PXmF2iLu6iL7EDWUviJlizYl+XfODjEZdFr3AmTwTMDaEvLoRGPxsm9TlgCGhWjkzHRXahQIa14KFlK3rBXH8cL3t2P7PLGTf2+P88FaJJ1h0pjCeQ4Uwu3ZGztIKBfg1n/TAF1vgdDDJgAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"001 03\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/f06f8b5b17cef1388d3a548d4524408f/5e3a3/001-03.png\"\n        srcset=\"/devHistoryBlog/static/f06f8b5b17cef1388d3a548d4524408f/8ff5a/001-03.png 240w,\n/devHistoryBlog/static/f06f8b5b17cef1388d3a548d4524408f/e85cb/001-03.png 480w,\n/devHistoryBlog/static/f06f8b5b17cef1388d3a548d4524408f/5e3a3/001-03.png 763w\"\n        sizes=\"(max-width: 763px) 100vw, 763px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<h4>#4.1. procs</h4>\n<ul>\n<li>[r] : CPU에서 대기중인 프로세스의 수를 의미, r의 개수가 CPU의 개수의 2배를 넘는다면 CPU의 성능을 올려줘야 함</li>\n<li>[b] : 인터럽트가 불가능한 sleep 상태에 있는 프로세스의 수 (I/O 처리를 하는 동안 블록 처리된 프로세스), b의 수치가 높은 경우라면 CPU가 계속 대기상태로 있다는 의미이므로 디스크 I/O를 확인해 볼 필요가 있다</li>\n</ul>\n<br>\n<h3>#5. iostat: CPU, 디스크 입출력 상태 모니터링</h3>\n<ul>\n<li>평균 CPU부하 와 디스크 I/O의 세부적인 내용을 확인</li>\n<li>iostat [delay [count]]를 사용하면 실시간으로 상태 확인 가능</li>\n</ul>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/7c15d14f463f1b5977e3b45ae7a9f9dc/ef6b9/001-04.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 832px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 26.25%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAYAAABFA8wzAAAACXBIWXMAABJ0AAASdAHeZh94AAAA5UlEQVQY01VQWXKFMAzjMC0lkMXZSVg6r/e/k56gy/R9aGTHtmRn2PaK42x4fO3kFftRse0F52dD7wneL1j0O0I0qMyFubETGuOYLGsjArlUf78PuQibNdKaEbJHLBGZcW4Fa69INd2ISXCuCdp8/OESML/8gyGx0YmCFkNoSLBw0d0GEi3hkYqHsNaISPOrP5GtUy8GF4btsVCEBZ6lHc+pncMKgVuZ0hhP8G2DjhE2B0g/YKPAk423FBlfN5T89r3+5UBBFXgW/2V2BirW20iJxywOsxdMuWOx8923iOXcCP1P8AmZmJxU+sHKAQAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"001 04\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/7c15d14f463f1b5977e3b45ae7a9f9dc/ef6b9/001-04.png\"\n        srcset=\"/devHistoryBlog/static/7c15d14f463f1b5977e3b45ae7a9f9dc/8ff5a/001-04.png 240w,\n/devHistoryBlog/static/7c15d14f463f1b5977e3b45ae7a9f9dc/e85cb/001-04.png 480w,\n/devHistoryBlog/static/7c15d14f463f1b5977e3b45ae7a9f9dc/ef6b9/001-04.png 832w\"\n        sizes=\"(max-width: 832px) 100vw, 832px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<h4>#5.1. Device</h4>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">[tps] : 디바이스에 초당 전송 요청 건수\n[kB_read/s] : 디바이스에서 초당 읽은 데이터 블록 단위\n[kB_wrtn/s] : 디바이스에서 초당 쓴 데이터 블록 단위\n[kB_read] : 디바이스에서 지정한 간격 동안 읽은 블록 수\n[kB_wrtn] : 디바이스에서 지정한 간격 동안 쓴 전체 블록 수</code></pre></div>\n<br>\n<h3>#6. df: 디스크 모니터링</h3>\n<ul>\n<li>파일시스템 별 전체공간, 사용중인 공간, 여유 공간 표시</li>\n</ul>\n<br>\n<h3>#7. du: 디렉토리 용량</h3>\n<ul>\n<li>특정 파일이나 디렉토리 용량 확인</li>\n<li>du -s [파일이나 디렉토리] 를 사용하면 해당 파일이나 디렉토리 용량 확인(-s만 적을 경우 현재 디렉토리) </li>\n</ul>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/5b3e4335a12c338a628ada3e7ae7638f/b23ad/001-05.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 519px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 44.583333333333336%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAJCAYAAAAywQxIAAAACXBIWXMAABJ0AAASdAHeZh94AAABIElEQVQoz5VS2W6DQAzkR9q0hPsMZLkhgFL6/3803XEEQrRC6oM13t3x2GMwxqlHVee4qwRllSPLI4lbFiK/J0hSH+ktkJyYpAHixINlX2A7Hxs67idcz4QxzcMmpIpUiihG5B2LKcqcyHMQ2oIM8oiefxVR4/k1om4UijLDskzo+lIXx3qiWBpwIp7LKhNRClCQbwzWquIGP7BegsOjQa6J5vUN/VChaZV0o5XVju3s85e99d2y3wU3y8v3rEd29eGKx9himnuZwHFNIfwnZEKK0J6lO7ddCaVS6bgnHYvOcqMbam05Fiu0z31wVyQcxf5qcAxjfj4Qxa4Qu77COHYy6brLVWDf4EzUoEiqfweSwsiVr0WhMHJ+Fb92ez7hDyIrDh6iu2SSAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"001 05\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/5b3e4335a12c338a628ada3e7ae7638f/b23ad/001-05.png\"\n        srcset=\"/devHistoryBlog/static/5b3e4335a12c338a628ada3e7ae7638f/8ff5a/001-05.png 240w,\n/devHistoryBlog/static/5b3e4335a12c338a628ada3e7ae7638f/e85cb/001-05.png 480w,\n/devHistoryBlog/static/5b3e4335a12c338a628ada3e7ae7638f/b23ad/001-05.png 519w\"\n        sizes=\"(max-width: 519px) 100vw, 519px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>","fields":{"tagSlugs":["/tags/linux/","/tags/resource/"],"slug":"/works/posts/2020-12-20--001"},"frontmatter":{"title":"리눅스 명령어를 이용한 시스템 모니터링하기","tags":["linux","resource"],"date":"2020-12-20","description":""}}},"pageContext":{"slug":"/works/posts/2020-12-20--001"}},"staticQueryHashes":[]}