Tomcat 튜닝

jwa·2023년 4월 17일

Tomcat 튜닝

목록 보기
1/4

Tomcat은 웹 어플리케이션 서버로서, 대규모 트래픽 처리를 위해서는 적절한 튜닝이 필요합니다. 이를 위해 다음과 같은 방법들을 고려해볼 수 있습니다.

{
	"Server": {
		"GlobalNamingResources": {
			"Resource": {
				"_name": "UserDatabase",
				"_auth": "Container",
				"_type": "org.apache.catalina.UserDatabase",
				"_description": "User database that can be updated and saved",
				"_factory": "org.apache.catalina.users.MemoryUserDatabaseFactory",
				"_pathname": "conf/tomcat-users.xml"
			}
		},
		"Service": {
			"Connector": {
				"_port": "8080",
				"_protocol": "HTTP/1.1",
				"_connectionTimeout": "20000",
				"_redirectPort": "8443"
			},
			"Engine": {
				"Realm": {
					"Realm": {
						"_className": "org.apache.catalina.realm.UserDatabaseRealm",
						"_resourceName": "UserDatabase"
					},
					"_className": "org.apache.catalina.realm.LockOutRealm"
				},
				"Host": {
					"Valve": {
						"_className": "org.apache.catalina.valves.AccessLogValve",
						"_directory": "logs",
						"_prefix": "localhost_access_log",
						"_suffix": ".txt",
						"_pattern": "%h %l %u %t \"%r\" %s %b"
					},
					"_name": "localhost",
					"_appBase": "webapps",
					"_unpackWARs": "true",
					"_autoDeploy": "true"
				},
				"_name": "Catalina",
				"_defaultHost": "localhost"
			},
			"_name": "Catalina"
		},
		"_port": "8005",
		"_shutdown": "SHUTDOWN"
	}
}
  1. Server

    <Server port="8005" shutdown="SHUTDOWN">

    요소 는 전체 Catalina 서블릿 컨테이너를 나타냅니다. 따라서 구성 파일에서 가장 바깥쪽에 있는 단일 요소여야 합니다 conf/server.xml. 속성은 서블릿 컨테이너 전체의 특성을 나타냅니다.

    AttributeDescription
    port이 서버가 종료 명령을 기다리는 TCP/IP 포트 번호입니다. -1종료 포트를 비활성화하려면 로 설정하십시오
    shutdownTomcat을 종료하기 위해 지정된 포트 번호에 대한 TCP/IP 연결을 통해 수신해야 하는 명령 문자열입니다.
  1. GlobalNamingResources

    <GlobalNamingResources>
        <Resource name="UserDatabase" auth="Container"
            type="org.apache.catalina.UserDatabase"
            description="User database that can be updated and saved"
            factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
            pathname="conf/tomcat-users.xml" />
       </GlobalNamingResources>

    GlobalNamingResources 요소는 서버 의 글로벌 JNDI 자원을 정의 합니다 .
    이러한 리소스는 서버의 전역 JNDI 리소스 컨텍스트에 나열됩니다. 이 컨텍스트는 JNDI 리소스 HOW-TO 에 설명된 웹 애플리케이션별 JNDI 컨텍스트와 다릅니다 . 이 요소에 정의된 리소스는 요소 와 명시적으로 연결하지 않는 한 웹 애플리케이션별 컨텍스트에서 볼 수 없습니다 .

    AttributeDescription
    name컨텍스트 를 기준으로 생성할 리소스의 이름입니다
    type이 리소스에 대한 조회를 수행할 때 웹 애플리케이션에서 예상하는 정규화된 Java 클래스 이름입니다.
  2. Service

    <Service name="Catalina">
        <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />
        <Engine name="Catalina" defaultHost="localhost">
        <Realm className="org.apache.catalina.realm.LockOutRealm">
            <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                   resourceName="UserDatabase"/>
          </Realm>
        <Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true">
            <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                   prefix="localhost_access_log" suffix=".txt"
                   pattern="%h %l %u %t &quot;%r&quot; %s %b" />
       </Host>
        </Engine>
      </Service>

    서비스 요소는 들어오는 요청을 처리하기 위해 단일 엔진 구성 요소를 공유 하는 하나 이상의 커넥터 구성 요소의 조합을 나타냅니다. 하나 이상의 Service 요소가 Server 요소 내에 중첩될 수 있습니다 .
    Service 요소 내에 중첩될 수 있는 유일한 구성 요소는 정확히 하나의 Engine 요소가 뒤따르는 하나 이상의 Connector 요소입니다 .

    AttributeDescription
    name표준 Catalina 구성 요소를 사용하는 경우 로그 메시지에 포함되는 이 서비스 의 표시 이름입니다 . 특정 서버 와 연결된 각 서비스 의 이름은 고유해야 합니다.

    참고 :
    https://tomcat.apache.org/tomcat-7.0-doc/index.html

profile
There is no end to learing 😞

0개의 댓글