이거 실화냐!? 톰캣 캐시 무지성 늘려보리기~

뿌엑·2022년 7월 6일
0
post-thumbnail

아이고 예브다..우리톰캣..




웹의 세계엔 톰캣이란 해체주의 고양이 한마리가 산다.

톰캣 삼대장도 있는데 이건 그냥 넘어가자...

오늘 해볼 건 톰캣 캐시 설정하기!

정보: 서비스 [Catalina]을(를) 시작합니다.
7월 06, 2022 9:42:24 오후 org.apache.catalina.core.StandardEngine startInternal
정보: Starting Servlet Engine: Apache Tomcat/8.5.57
7월 06, 2022 9:42:25 오후 org.apache.catalina.webresources.Cache enforceObjectMaxSizeLimit
경고: objectMaxSize를 위한 값 [512]kB이, maxSize/20인 최대한계값 보다 커서, [0]kB로 줄여졌습니다.
7월 06, 2022 9:42:25 오후 org.apache.catalina.webresources.Cache getResources
경고: [/WEB-INF/classes]에 위치한 리소스를 웹 애플리케이션 [{1}]을(를) 위한 캐시에 추가할 수 없습니다. 왜냐하면 만료된 캐시 엔트리들을 없애버린 이후에도 여유 공간이 충분하지 않기 때문입니다. 캐시의 최대 크기를 증가시키는 것을 고려해 보십시오.
7월 06, 2022 9:42:25 오후 org.apache.catalina.webresources.Cache getResources
경고: [/WEB-INF/classes/META-INF/services/javax.xml.parsers.SAXParserFactory]에 위치한 리소스를 웹 애플리케이션 [{1}]을(를) 위한 캐시에 추가할 수 없습니다. 왜냐하면 만료된 캐시 엔트리들을 없애버린 이후에도 여유 공간이 충분하지 않기 때문입니다. 캐시의 최대 크기를 증가시키는 것을 고려해 보십시오.
7월 06, 2022 9:42:25 오후 org.apache.catalina.webresources.Cache getResources
경고: [/WEB-INF/classes/META-INF/services/javax.xml.parsers.SAXParserFactory]에 위치한 리소스를 웹 애플리케이션 [{1}]을(를) 위한 캐시에 추가할 수 없습니다. 왜냐하면 만료된 캐시 엔트리들을 없애버린 이후에도 여유 공간이 충분하지 않기 때문입니다. 캐시의 최대 크기를 증가시키는 것을 고려해 보십시오.
7월 06, 2022 9:42:25 오후 org.apache.catalina.webresources.Cache getResource
경고: [/WEB-INF/web.xml]에 위치한 리소스를 웹 애플리케이션 []을(를) 위한 캐시에 추가할 수 없습니다. 왜냐하면 만료된 캐시 엔트리들을 없애버린 이후에도 여유 공간이 충분하지 않기 때문입니다. 캐시의 최대 크기를 증가시키는 것을 고려해 보십시오.
7월 06, 2022 9:42:25 오후 org.apache.catalina.webresources.Cache getResource
경고: [/WEB-INF/web.xml]에 위치한 리소스를 웹 애플리케이션 []을(를) 위한 캐시에 추가할 수 없습니다. 왜냐하면 만료된 캐시 엔트리들을 없애버린 이후에도 여유 공간이 충분하지 않기 때문입니다. 캐시의 최대 크기를 증가시키는 것을 고려해 보십시오.
7월 06, 2022 9:42:25 오후 org.apache.catalina.webresources.Cache getResource
경고: [/WEB-INF/classes]에 위치한 리소스를 웹 애플리케이션 []을(를) 위한 캐시에 추가할 수 없습니다. 왜냐하면 만료된 캐시 엔트리들을 없애버린 이후에도 여유 공간이 충분하지 않기 때문입니다. 캐시의 최대 크기를 증가시키는 것을 고려해 보십시오.
7월 06, 2022 9:42:25 오후 org.apache.catalina.webresources.Cache getResource

웹개발을 하다보면 이런 무사시한 경고를 본적 있을 것이다.
근데 실행자체는 되니깐 암생각없이 프로젝트를 돌린다;

캐시란 건 접근에 오래 걸리는 데이터를 임시적으로 저장해 두는 것을 의미한다.

단연 네이버만 봐도 수많은 정적 데이터가 존재한다.

막상 이렇게 보니깐 디자인 나쁘지 않은듯,,?ㅋㅋ

뭔가 알수 없는 파일이 많다!

캐시로 임시 데이터를 브라우저에 저장해두기에 전파낭비를 막을 수 있다.(위험한 전자파!)
만약 캐시가 없다면, 웹을 새로고침할 때마다 모든 이미지와 스크립트를 다운로드할 것이다. 그만큼 화면이 뜨는 속도도 늦어지고, 데이터 낭비가 심해진다.
만약 이미지가 크다면 속도저하는 더욱 심하게 체감될 것이다.

<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
--><!-- The contents of this file will be loaded for each web application --><Context>

    <!-- Default set of monitored resources. If one of these changes, the    -->
    <!-- web application will be reloaded.                                   -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>

	<Resources cachingAllowed="true" cacheMaxSize="10000000000"/>

    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
    <!--
    <Manager pathname="" />
    -->
</Context>

우선 톰캣이 설치된 프로젝트의 context.xml에서 톰캣 캐시설정이 가능하다.

<Context></Context> 내부에 <Resources cachingAllowed="true" cacheMaxSize="10000000000"/>를 사용하여 캐시 용량을 지정할 수 있다.

톰캣 캐시는 기본 10MB이며, 100GB로 늘려보았다.

정보: 서비스 [Catalina]을(를) 시작합니다.
7월 06, 2022 10:17:39 오후 org.apache.catalina.core.StandardEngine startInternal
정보: Starting Servlet Engine: Apache Tomcat/8.5.57
7월 06, 2022 10:17:40 오후 org.apache.jasper.servlet.TldScanner scanJars
정보: 적어도 하나의 JAR가 TLD들을 찾기 위해 스캔되었으나 아무 것도 찾지 못했습니다. 스캔했으나 TLD가 없는 JAR들의 전체 목록을 보시려면, 로그 레벨을 디버그 레벨로 설정하십시오. 스캔 과정에서 불필요한 JAR들을 건너뛰면, 시스템 시작 시간과 JSP 컴파일 시간을 단축시킬 수 있습니다.
7월 06, 2022 10:17:40 오후 org.apache.catalina.core.ApplicationContext log
정보: No Spring WebApplicationInitializer types detected on classpath
7월 06, 2022 10:17:40 오후 org.apache.catalina.core.ApplicationContext log
정보: Initializing Spring root WebApplicationContext
log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
log4j:WARN Please initialize the log4j system properly.
7월 06, 2022 10:17:42 오후 org.apache.catalina.core.ApplicationContext log
정보: Initializing Spring FrameworkServlet 'appServlet'

자 다시 구동하면...

실행결과 전혀 문제없다는 걸 알 수 있다!(닭잡는데 미사일 쏜 격ㅋㅋㅋ)

0개의 댓글