{"componentChunkName":"component---src-templates-post-template-jsx","path":"/works/posts/2020-12-31--002","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":"a190f00d-67dc-57df-bda9-17b9351640f7","html":"<p>팀에서 서비스하고 있는 제품 중, 아이맘 택시 서비스에서 아래와 같은 현상이 발생 되었다.<br>\n당시, 해당 프로세스의 메모리 사용량이 8G를 넘고 있었고(평균 1G), CPU 사용량도 90% 이상이 넘고 있었다.</p>\n<ul>\n<li>GC Overhead\n\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/e94feaf13307b0fd9b0f8c28a469fa43/fe238/002-10.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: 15%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAADCAYAAACTWi8uAAAACXBIWXMAABJ0AAASdAHeZh94AAAAhElEQVQI13WOQQ7CIBREuY2aFNRCEwRrgdLW3v9A45/WroyLl/mBzMso192QS4/3WrEsBWMdNqY57zklIaNKjuMLKUVYZ9BaonFvmy2PW5nrBUMKmEVGCeVFipQz+UZ48y/EDuz8Q2lzFmHcF3zXsXhIuOrZe3hv8QgOVpZxCXuNPv3wAfPEY983+fF0AAAAAElFTkSuQmCC'); 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=\"002 10\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/e94feaf13307b0fd9b0f8c28a469fa43/d9199/002-10.png\"\n        srcset=\"/devHistoryBlog/static/e94feaf13307b0fd9b0f8c28a469fa43/8ff5a/002-10.png 240w,\n/devHistoryBlog/static/e94feaf13307b0fd9b0f8c28a469fa43/e85cb/002-10.png 480w,\n/devHistoryBlog/static/e94feaf13307b0fd9b0f8c28a469fa43/d9199/002-10.png 960w,\n/devHistoryBlog/static/e94feaf13307b0fd9b0f8c28a469fa43/fe238/002-10.png 1401w\"\n        sizes=\"(max-width: 960px) 100vw, 960px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </li>\n<li>JDBC Connection Pool Error\n\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/21af5a2a6906aa3f25fc1efccceb6cfb/2eb79/002-11.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: 28.333333333333332%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAABJ0AAASdAHeZh94AAAA6klEQVQY02WQUZaDIBRDWc3MaWu1ioKIAmp19r+iDHlqf/qR80DkkkSl2WNeJmz7jPUdsiL8aDFOFiE6DN7ADS1618r6UAfbN2i7CrotZV5SBKZ5xJ6ByxpEfjQCJMjYWtSZ12ceoArV6/4lFeKAmDz2v0VgdMtv7y1hCodDOqYrro1txBXBxfP3Syrmy3TIyEuGEUoQZzjPKK4pl6PXTYGyuuFR/AjkmgKkI7rZstgfQYwb0yDOeqdzX1o65KQ6U38607qUPV2zBsVLhBDK6HxgPffbfsSmxGk+v/6ZzzRMOIUejX7mDh/4B46bx3U4ZIpuAAAAAElFTkSuQmCC'); 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=\"002 11\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/21af5a2a6906aa3f25fc1efccceb6cfb/d9199/002-11.png\"\n        srcset=\"/devHistoryBlog/static/21af5a2a6906aa3f25fc1efccceb6cfb/8ff5a/002-11.png 240w,\n/devHistoryBlog/static/21af5a2a6906aa3f25fc1efccceb6cfb/e85cb/002-11.png 480w,\n/devHistoryBlog/static/21af5a2a6906aa3f25fc1efccceb6cfb/d9199/002-11.png 960w,\n/devHistoryBlog/static/21af5a2a6906aa3f25fc1efccceb6cfb/2eb79/002-11.png 1256w\"\n        sizes=\"(max-width: 960px) 100vw, 960px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </li>\n<li>Java heap Out of memory\n\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/d95cbb210fde1c7f2b63144bf9a46a33/77abb/002-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: 12.5%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAADCAYAAACTWi8uAAAACXBIWXMAABJ0AAASdAHeZh94AAAAjklEQVQI11WOWRKCMBBEuYqWCIZFKERD9gD3v1I7My6lH69myXSni3UL2PYIrnn1CNEiZ/fqg5GaeCb4xnkt6GVCf1UYxoZo0XYVur5GEaIhgRWRp0PrHkjJihELY7Jfw8/OhwVaT1BNCaVKqRd1Egp+TG9RoN6QIe9+00T6lBPd5gHzfZREVX0UztXhjyeB/GKXo0LK/gAAAABJRU5ErkJggg=='); 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=\"002 01\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/d95cbb210fde1c7f2b63144bf9a46a33/d9199/002-01.png\"\n        srcset=\"/devHistoryBlog/static/d95cbb210fde1c7f2b63144bf9a46a33/8ff5a/002-01.png 240w,\n/devHistoryBlog/static/d95cbb210fde1c7f2b63144bf9a46a33/e85cb/002-01.png 480w,\n/devHistoryBlog/static/d95cbb210fde1c7f2b63144bf9a46a33/d9199/002-01.png 960w,\n/devHistoryBlog/static/d95cbb210fde1c7f2b63144bf9a46a33/77abb/002-01.png 1305w\"\n        sizes=\"(max-width: 960px) 100vw, 960px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </li>\n</ul>\n<br>\n<ul>\n<li>현재 내가 진행하고 있는 프로젝트가 아니라.. 로그만으로는 분석이 힘들어 <a href=\"/devHistoryBlog/works/posts/2020-12-31--001\">jvm 분석 툴</a>을 사용하여 아래와 같이 모니터링을 하였다.</li>\n</ul>\n<br>\n<h3>#1. 모니터링 스크립트 만들기</h3>\n<h4>#1.1. 사용 리소스 모니터링</h4>\n<ul>\n<li>해당 서비스의 메모리, cpu 사용률 및 부하 감지를 위한 서비스, DB 포트 연결 개수 모니터링</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"shellscript\"><pre class=\"language-shellscript\"><code class=\"language-shellscript\">#!/bin/bash\n\nLOG=log_res_mn\nwhile [ true ]\ndo\n\n        echo `echo \\[;date;echo \\]` &gt;&gt; $LOG\n        echo `echo netstat 8000 cnt \\[;netstat -na | grep 8000 | wc -l;echo \\];` &gt;&gt; $LOG\n        echo `echo netstat 3306 cnt \\[;netstat -na | grep 3306 | wc -l;echo \\];` &gt;&gt; $LOG\n        ps -eo pid,rss,size,vsize,pmem,pcpu,time,cmd --sort -rss | grep NAMU | head -n 1 &gt;&gt; $LOG\n        #ps -eo pid,rss,size,vsize,pmem,pcpu,time,cmd --sort -rss | head -n 5 &gt;&gt; $LOG\n        echo ------------------------------------------------------------------------ &gt;&gt; $LOG\n        sleep 1;\ndone;</code></pre></div>\n<h4>#1.2. 해당 프로세스 PID의 메모리 사용 내용</h4>\n<ul>\n<li>jmap -histo:live [PID] 명령어를 이용</li>\n<li>해당 프로세스에서 사용하고 있는 클래스 별 사용 내역 (인스턴스 개수, 사용된 메모리 크기)</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"shellscript\"><pre class=\"language-shellscript\"><code class=\"language-shellscript\">#!/bin/bash\n\nLOG=log_mn_jvm\nwhile [ true ]\ndo\n        PID=`sudo jps -v | grep &quot;\\-Xmx2048m&quot; | awk &#39;{print $1}&#39;`\n        echo `echo \\[;date;echo \\]` &gt;&gt; $LOG\n        sudo jmap -histo:live $PID | head -n 10 &gt;&gt; $LOG\n        echo ------------------------------------------------------- &gt;&gt; $LOG\n        sleep 5;\ndone;</code></pre></div>\n<br>\n<h3>#2. 모니터링 결과</h3>\n<p>** 해당 결과는 새벽에 오류 재연을 한 것이므로 오류 상황보다 CPU 점유율이 낮게 나왔다. ** </p>\n<h4>#2.1. 오류 발생 전</h4>\n<ul>\n<li>기본 사용 메모리, cpu\n\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/a32f5708df6f6d955e6607d28bc438db/59822/002-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: 916px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 7.5%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAACCAIAAADXZGvcAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAY0lEQVQI11WNSwqAMAxEPYqt0ETtJ2mbShU3XsL738ToThgew7zFDNKoSFy9c2gQpxksooV/HJiPFuDtDkZApRn6ufVe90MSryUtN8WrpiyUS+DspbEqzoHU6l5i27gKafT1AcX2FT2GuiWgAAAAAElFTkSuQmCC'); 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=\"002 04\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/a32f5708df6f6d955e6607d28bc438db/59822/002-04.png\"\n        srcset=\"/devHistoryBlog/static/a32f5708df6f6d955e6607d28bc438db/8ff5a/002-04.png 240w,\n/devHistoryBlog/static/a32f5708df6f6d955e6607d28bc438db/e85cb/002-04.png 480w,\n/devHistoryBlog/static/a32f5708df6f6d955e6607d28bc438db/59822/002-04.png 916w\"\n        sizes=\"(max-width: 916px) 100vw, 916px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </li>\n<li>인스턴스 개수\n\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/d7ea364e590d1cdea7313d37ba5120ce/c67d4/002-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: 723px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 27.916666666666668%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAABJ0AAASdAHeZh94AAAA/klEQVQY02WRx47DMAxE/SPBprh3yS3uceJD/v+HZjkEVpc9DEiNoMciL04esG2Jtq1Qmww8q9cUMDZHUcYaeaYfhFenKL7/k5floV62XY3jveqjVLz9NWNeBlhboKpTASfIi0hVVokWCqObExmMXpoF8IMfB6QZCZT5+7OJXyl4mnvMomV9St6px845WT9YjGOLRnIFks4Du4oEGCc+tn3Cuo3q8zHzeem1ABvgeEnqO5HDKEAf98dFq3y/p9sNuzvPHV1v8DoWAU7YBPoRj3fHsUqxUiF/4+rI3AX3wg9hdeb02Bkf1CbXaGSXtimlQI3h2aiX5YF2RvEvCP8Flhu5xh0l9PcAAAAASUVORK5CYII='); 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=\"002 03\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/d7ea364e590d1cdea7313d37ba5120ce/c67d4/002-03.png\"\n        srcset=\"/devHistoryBlog/static/d7ea364e590d1cdea7313d37ba5120ce/8ff5a/002-03.png 240w,\n/devHistoryBlog/static/d7ea364e590d1cdea7313d37ba5120ce/e85cb/002-03.png 480w,\n/devHistoryBlog/static/d7ea364e590d1cdea7313d37ba5120ce/c67d4/002-03.png 723w\"\n        sizes=\"(max-width: 723px) 100vw, 723px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </li>\n</ul>\n<br>\n<h4>#2.2. 오류 발생  후</h4>\n<ul>\n<li>문제 발생 시점부터 약 20초간 확 증가된 메모리 사용량\n\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/2d8bf4767dc95258800bb9326e0bb556/b7877/002-08.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: 891px; 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,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAIAAADKYVtkAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAu0lEQVQY0zVPCW4EIQzjNz12kpALGKbHdtX+/0s1VJWiyLFsY8oZ/BPypZQhkVXtYHlRowhRPXCOM8wJGHsBoz9gLmWGvKW8u4xuMHsw8TOkkbrMehung6x6M2f7d26Bl49h3zMf3eeM1i2bSoWO2lgevH9dDSSYSPHVDptxZo9ypd6Hf2ZtGJizSn115+zmvsrPq7dthnPFrXayzM3LcH4Y3Y061DvyoCeUhAIpqIdEkMC7M+/Bz1HbfgFAPDsUDxWudwAAAABJRU5ErkJggg=='); 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=\"002 08\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/2d8bf4767dc95258800bb9326e0bb556/b7877/002-08.png\"\n        srcset=\"/devHistoryBlog/static/2d8bf4767dc95258800bb9326e0bb556/8ff5a/002-08.png 240w,\n/devHistoryBlog/static/2d8bf4767dc95258800bb9326e0bb556/e85cb/002-08.png 480w,\n/devHistoryBlog/static/2d8bf4767dc95258800bb9326e0bb556/b7877/002-08.png 891w\"\n        sizes=\"(max-width: 891px) 100vw, 891px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </li>\n<li>해당 시점의 인스턴스 상태\n\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/94a63512ca1b5551c1ba6a2dc2d8cae7/d4c13/002-06.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: 825px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 25.416666666666664%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAIAAADKYVtkAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAA5ElEQVQY01WNXW6DMBCEuUmSAv7BXmwTGztAgokTICSqVKnvvf8tulVfWunb0exoR5tBzSpJlKp8aABoD3zr2mTVAKwSJWUHQveUvf0Fc2whGQ6vCgn0cjmhXwx8pfgZ3Cw5YQfOc7xm/xGirH/LUnGK5ZqneQLNtZGPNQ29P3UudG4Yu9DZguzzH3Z5uUMl+FwSDjQ717zlRSvp+y12WnjgH0uaez8PYYvDczo/Yz86PVoVnZ5ag/4WLCoWs7ugqSJR0ofVV6BR0JdvZgNLU69HtVq1NIDr3UhMEPSbMy9/3LT8BtTNOfy8kS7WAAAAAElFTkSuQmCC'); 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=\"002 06\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/94a63512ca1b5551c1ba6a2dc2d8cae7/d4c13/002-06.png\"\n        srcset=\"/devHistoryBlog/static/94a63512ca1b5551c1ba6a2dc2d8cae7/8ff5a/002-06.png 240w,\n/devHistoryBlog/static/94a63512ca1b5551c1ba6a2dc2d8cae7/e85cb/002-06.png 480w,\n/devHistoryBlog/static/94a63512ca1b5551c1ba6a2dc2d8cae7/d4c13/002-06.png 825w\"\n        sizes=\"(max-width: 825px) 100vw, 825px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </li>\n</ul>\n<br>\n<ul>\n<li>GC가 돌아 약 25초간 cpu 사용량 쭉 증가 후 약 40초간 유지</li>\n<li>그 후 점차 감소\n\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/f44b9b470a0d2e584d497f3b55e1c871/1cfc2/002-09.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: 900px; 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,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAIAAADKYVtkAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAtklEQVQY00WPQXJDMQhDfZzf5tsYYbDzk006WfT+J6pwFp1hYCGeEGW4zonhPRY8OkazdvxqvUw6TuCcy6iq3oAKqxi7Wx0uhQJHwqEeChe0rxcIN1gjExMs6TelV2Lt04kUCmsmdj0ij0S39v02ebqai1m7X76uQdIYauSZ7EM8UIhFxhaGj4B5Rzt+tD6GcIkwybUs4Z2Fm3TZsJYEtuWn8ud6vPt5t6osnJG5uuh/bN3Pc/kPYT87OkXNaAMAAAAASUVORK5CYII='); 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=\"002 09\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/f44b9b470a0d2e584d497f3b55e1c871/1cfc2/002-09.png\"\n        srcset=\"/devHistoryBlog/static/f44b9b470a0d2e584d497f3b55e1c871/8ff5a/002-09.png 240w,\n/devHistoryBlog/static/f44b9b470a0d2e584d497f3b55e1c871/e85cb/002-09.png 480w,\n/devHistoryBlog/static/f44b9b470a0d2e584d497f3b55e1c871/1cfc2/002-09.png 900w\"\n        sizes=\"(max-width: 900px) 100vw, 900px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </li>\n</ul>\n<br>\n<h4>#2.3. 소스 검토</h4>\n<ul>\n<li>해당시간에 발생된 request url 검사 후 해당 로직 검토를 하였더니\nDocument 테이블에서 가져오는 row수가 1,713,561건 인것을 발견하였다.</li>\n<li>해당 비즈니스 로직에 대한 이해도가 없어 왜 이런 상황이 발생이 됐는지는 모르겠지만,\nselect 최대 row를 강제할 수 있는 방법을 찾아 팀 코드 컨벤션으로 정해야겠다.</li>\n<li>좋은 경험 했다!!!!!!!</li>\n</ul>","fields":{"tagSlugs":["/tags/jvm/","/tags/out-of-memory/"],"slug":"/works/posts/2020-12-31--002"},"frontmatter":{"title":"[작업로그] JVM OutOfMemory Error 분석","tags":["jvm","out of memory"],"date":"2020-12-31","description":""}}},"pageContext":{"slug":"/works/posts/2020-12-31--002"}},"staticQueryHashes":[]}