{"componentChunkName":"component---src-templates-post-template-jsx","path":"/works/posts/2020-12-31--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":"052b4553-6cdc-58cc-82d1-f9edb22850fd","html":"<h3>#1. JPS</h3>\n<ul>\n<li>Java Virtual Machine Process Status Tool</li>\n<li>JVM 프로세스 표시</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"cmd\"><pre class=\"language-cmd\"><code class=\"language-cmd\">// PID, 메인 메소드의 args 표시\n$ jps -m \n\n// PID, jvm 파라미터 표시\n$ jps -v</code></pre></div>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/606d55ea709aec7b00e1db5f9a698485/3f8cf/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: 960px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 16.249999999999996%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAADCAYAAACTWi8uAAAACXBIWXMAABJ0AAASdAHeZh94AAAAjUlEQVQI11WO2Q6DIBRE/Zu2iUsVrCwKyOL//9HIkPTBhwNDuPdkOmNX+GCRi0cpATE5hHOH8+ZBqDOcYz6cxvqbIdep8sW89BBywiIGdDzsviFlj+s6karwjAdKzSS2HOu/a0KilMA4fdAPLwzj+0ETasOWpjUjXKI018Z8M2sjsamlIeTYWlHwl/ImN7d0Y6bnJPHsAAAAAElFTkSuQmCC'); 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/606d55ea709aec7b00e1db5f9a698485/d9199/001-01.png\"\n        srcset=\"/devHistoryBlog/static/606d55ea709aec7b00e1db5f9a698485/8ff5a/001-01.png 240w,\n/devHistoryBlog/static/606d55ea709aec7b00e1db5f9a698485/e85cb/001-01.png 480w,\n/devHistoryBlog/static/606d55ea709aec7b00e1db5f9a698485/d9199/001-01.png 960w,\n/devHistoryBlog/static/606d55ea709aec7b00e1db5f9a698485/3f8cf/001-01.png 1293w\"\n        sizes=\"(max-width: 960px) 100vw, 960px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<br>\n<h3>#2. JMAP</h3>\n<ul>\n<li>JVM 프로세스의 메모리 맵 표시</li>\n</ul>\n<h4>#2.1. heap 메모리 사용 현황에 대한 요약 정보</h4>\n<div class=\"gatsby-highlight\" data-language=\"cmd\"><pre class=\"language-cmd\"><code class=\"language-cmd\">$jmap -heap &lt;PID&gt;</code></pre></div>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/e3ebc5805eef55d29ea1f806757ca33f/68e9c/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: 654px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 145.83333333333331%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAdCAYAAACqhkzFAAAACXBIWXMAABJ0AAASdAHeZh94AAADBElEQVRIx42W6WLaQAyE/TBt2gDm9AHG5rDBHCFp3/9lVH1alkJYSH4o62B7dqQZaR1Vi5nUzUJW67kU80zmGraWmf5WynI1t3t+LeapzIpUsnxs13k+kukssUjSgUT7w0ZOp51s27Xs9o3sNZrNUhrdhN8AT7OhxXgSSy/+dRdx//flOiqrqbGBaVnltmu1nMlyWdgDr50fFp3uT+n2Xm4AroG4JqJ8Ola6E0f/fJ1PJ7Z6ZpmmNRh2bl58FFGpzKgP7OZlLpWuy1UhdV3JQllSlzQbSX/wegcY2iDiYVjkWuTMwr3sHyBVIsQmCAjIm4qCMMe3Vj4+jpYyIADDejjqXurXi1/uxLgB5A+2QVXSzrL/9SIQDftgJ1frTBZaJjYJMhzojdP7wdghyq0dXk39P39PlkW7q+WkGez3tTEOitJXNvitbipj9vnBWZFIs10ZMOl7AX1d71IGZKMvbNTMpDdJ4hshrlm7l9waUv0C2O4a7ZJaY2OW8d6jM2BEOba66VqtRDbvHwfbKJR2xE7btjaWiMNKapOkL6NxbIYH5HDcGiDenKoLHtoGhl5JVgBG494l5SQd2jDgnvfnU9tUC9fLFBogwteHIC0iJEKQIephByZNUbjRRLsBitfIwA8G1kfMLoC8RN1KOkLZUS/GF2KwCWKRAaWgfmTwbEhE3IQlrFC23a0NFEAAEAKxGGcb/T1RsR6Z2vWyym8dcNobMCB+LpL+deeE5mFQZbw30xFO+oCSMtahd2PAAhPmISDFp4aYGYuQanPuGljGgRef1hAQAEmVzugPOpfW8mfIV1P6LmUKDxvfaqa6MmQwfE75S8BYmdDLpEy7AY5dTBytox8G306ZI8DZo3T2UVBvZNL2hu72fn7P2KOzmdfayxzWnNPYaHE+vJjkHAlsnKvqwy9OP1MZ46Zq7EkyMDBA3ddEKe35A4B5eXzb2XPe2MFeBpD6IQoM8SOGxoPUtHc28/VJ+Mzg9uXgJk6utZyZurSZ/8ax/1eFuC+M3JR39gpP7H8Vh5vqNP4baAAAAABJRU5ErkJggg=='); 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/e3ebc5805eef55d29ea1f806757ca33f/68e9c/001-02.png\"\n        srcset=\"/devHistoryBlog/static/e3ebc5805eef55d29ea1f806757ca33f/8ff5a/001-02.png 240w,\n/devHistoryBlog/static/e3ebc5805eef55d29ea1f806757ca33f/e85cb/001-02.png 480w,\n/devHistoryBlog/static/e3ebc5805eef55d29ea1f806757ca33f/68e9c/001-02.png 654w\"\n        sizes=\"(max-width: 654px) 100vw, 654px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<h4>#2.2. 객체 타입 별 사용 내역</h4>\n<div class=\"gatsby-highlight\" data-language=\"cmd\"><pre class=\"language-cmd\"><code class=\"language-cmd\">$jmap -histo:live &lt;PID&gt;</code></pre></div>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/679ddd85c15c253c61840fa681e2e7a0/ddc81/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: 837px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 40%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAICAYAAAD5nd/tAAAACXBIWXMAABJ0AAASdAHeZh94AAABNklEQVQoz12SV3LDMAxEdZg4trpE9d6Vcv/7bLBQ6PH4A0NABJYPO3LqJkfblWjbAlVlUJQJ8iJG15eo6kzPfqgkNyirVMLIfaJ9tpdnlkWIEw9Oll9JUaYiXCBJfYTRQ4VK+cZ7Dvn+Da73oeFJ7vlX7srpB58aQXiHk5pQBVmc56rDrL++N4xjo/RNm8sDlZDWGKdGe/iQUgptFLsy/1AQx/yjhvLxOBeYLNQGCk5zi3kdsO8T9mNG3WRITYA8j3Vtrk8bLsG7FbwIWSwyTC/Y8PN7qOA4dZiXHqvcMdhDYQpwdbsq53VlI+jWt20bdZWLcH+uTAF6SjH6zN73eBISmYQ02Aq63k3Xn6ZWvaOHo+Ss+fgrkQ0r7NBoUlB4FUES0B96xlVJNc8dBqElKX+fV4H3+ANJ/QA2tLReEQAAAABJRU5ErkJggg=='); 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/679ddd85c15c253c61840fa681e2e7a0/ddc81/001-03.png\"\n        srcset=\"/devHistoryBlog/static/679ddd85c15c253c61840fa681e2e7a0/8ff5a/001-03.png 240w,\n/devHistoryBlog/static/679ddd85c15c253c61840fa681e2e7a0/e85cb/001-03.png 480w,\n/devHistoryBlog/static/679ddd85c15c253c61840fa681e2e7a0/ddc81/001-03.png 837w\"\n        sizes=\"(max-width: 837px) 100vw, 837px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<h5>참고) [C, [I, [B 이란?</h5>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/2e6fbdc0096ef686e2a9338f1f0eef4a/3a737/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: 897px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 72.08333333333333%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAOCAYAAAAvxDzwAAAACXBIWXMAABJ0AAASdAHeZh94AAABaElEQVQ4y5VTi5KDIAz0/3+zM9UKCAhaH21z2Wgctb3OXWZ2ACGbzYKF9w35ECjERK5p6Ha7UZtaejweNM8zTdP0hnEcD+vX60UI5BR+JbHGUM2w1lJd12R4jr2qqijGSPf7nfq+p67rNuAboCGEMQYhaTjZOcejk7Vzzfbde085ZUopUdu2AsyFOGcZc040DAMVgduFGpBBGQjMqtCsivWMKkdH3odNcWZStA6LVkIrhMCeSIE1ClnrtuLL2gop2oaPz+eTCbkdEGoiVFhrtpbtWmixwb0Vgh0gh89QWeAQWtBWQFherzLHhQDG1DJCYVmWcgY+orsQopABuP0CNwMfcAjkMHtkc/W2YbQ+H4zzvIyfQm4Zk8TVLpeL+IFERGZiVP0t4NkeB8LlTQ3bQd1UJedkwYn4qJDVwDP1AhvwBxao4n3iJ7VHhfyO8Pud/dgr/BZvhHjl+gt9a/kfhFmewTfCvyr8AV7ZPfAq0C2/AAAAAElFTkSuQmCC'); 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/2e6fbdc0096ef686e2a9338f1f0eef4a/3a737/001-04.png\"\n        srcset=\"/devHistoryBlog/static/2e6fbdc0096ef686e2a9338f1f0eef4a/8ff5a/001-04.png 240w,\n/devHistoryBlog/static/2e6fbdc0096ef686e2a9338f1f0eef4a/e85cb/001-04.png 480w,\n/devHistoryBlog/static/2e6fbdc0096ef686e2a9338f1f0eef4a/3a737/001-04.png 897w\"\n        sizes=\"(max-width: 897px) 100vw, 897px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<ul>\n<li>[L 은 class 또는 interface 즉, any non-primitives(Object)</li>\n</ul>\n<h4>#2.3. gc 대기중인 클래스 목록 확인</h4>\n<div class=\"gatsby-highlight\" data-language=\"cmd\"><pre class=\"language-cmd\"><code class=\"language-cmd\">$jmap -finalizerinfo &lt;PID&gt;</code></pre></div>\n<h4>#2.4. 덤프 파일 생성</h4>\n<ul>\n<li>파일 확장자는 일반적으로 .hprof 를 사용</li>\n<li>\n<p>힙 메모리의 크기가 GB 단위로 크다면, 분석할 덤프 파일 크기도 GB 단위로 늘어남</p>\n<div class=\"gatsby-highlight\" data-language=\"cmd\"><pre class=\"language-cmd\"><code class=\"language-cmd\">jmap -dump:[live,]format=b,file=&lt;dump filename&gt; &lt;PID&gt;</code></pre></div>\n</li>\n</ul>\n<br>\n<h3>#3. JHAT</h3>\n<ul>\n<li>Java Heap Analyzer Tool</li>\n<li>힙 메모리 분석 툴</li>\n<li>\n<p>입력한 포트(기본은 7000)로 덤프파일이 분석된 웹페이지가 구동</p>\n<div class=\"gatsby-highlight\" data-language=\"cmd\"><pre class=\"language-cmd\"><code class=\"language-cmd\">$ jhat [-port] &lt;dump filename&gt;</code></pre></div>\n</li>\n</ul>","fields":{"tagSlugs":["/tags/jvm/","/tags/analyzer/"],"slug":"/works/posts/2020-12-31--001"},"frontmatter":{"title":"JVM 분석 툴","tags":["jvm","analyzer"],"date":"2020-12-31","description":""}}},"pageContext":{"slug":"/works/posts/2020-12-31--001"}},"staticQueryHashes":[]}