- 방문자수
전체 방문자
오늘 방문자
어제 방문자
인기 길
-
[Server] netstat 명령어 - 네트워크 통계 정보
netstat이란 network statistics의 약자 네트워크 접속, 라우팅 테이블, 네트워크 인터페이스의 통계 정보를 보여주는 도구 netstat 옵션 -a : 현재 다른 PC와 연결(Established)되어 있거나 대기(Listening) 중인 상태 -l (listen) : 연결 가능한 상태 -t (tcp) : tcp -u (udp) : udp -p : 프로그램 이름 / PID -n (number port) : 포트 넘버 netstat field 정보 $ netstat -antplF Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN - - Pro..
-
[DOCKER] Docker restart 옵션
linux 서버에 docker를 설치하고 실행하면 docker daemon을 stop 하거나 종료할 일이 거의 없지만 만약, local PC에서 docker desktop을 사용한다면 pc를 재부팅할 때마다 docker daemon을 종료할 경우도 생긴다. 이러한 경우 다시 docker daemon을 재시작하는 경우 내부에 docker container의 start 관련 동작을 설정할 수 있다. restart option docker run -d --restart {option} redis no Don't automatically restart the container (default) on-failure[:max-retries] container가 정상적으로 종료되지 않은 경우(exit code가 0이..
-
[Nginx] nginx keepalive 설정(client-nginx-tomcat)
keepalive란 서버와 클라이언트가 맺은 연결을 유지하는 방식을 의미 HTTP 트랜잭션이 완료된 후에도 클라이언트와 서버 간의 TCP 연결을 열어둔다. 클라이언트가 다른 HTTP 트랜잭션을 수행해야 하는 경우 새 TCP 연결을 만드는 대신 유휴 Keepalive 연결을 사용한다. 장점 3-way handshacking overhead 줄임 단점 메모리 사용 증가 - connection을 열고 대기 server - keepalive 설정 https://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_timeout 하위에 해당하는 server 블록에 keepalive-timeout 설정 기본값 75s 해당 값에 0을 설정하면 keepalive 기능..
-
[NGINX] client ip설정 (proxy_set_header, remote_addr, http_x_forwarded_for, proxy_add_x_forwarded_for)
location 하위 블록에 proxy_set_header를 통해서 X-Forwarded-For, X-Real_IP와 같은 header를 세팅한다. 그러면 Tomcat과 같은 WAS Layer에서 해당 설정을 읽어서 IP 정보를 사용하게 된다. user nginx; worker_processes 2; ... http { include mime.types; upstream back-server { server 127.0.0.1:3000; keepalive 32; } ... server { ... location / { proxy_pass http://back-server; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP..
-
[Tomcat] connection, thread, keep-alive 설정 살펴보기
외장 Tomcat을 이용하여서 운영하던 서비스를 Spring Boot에서 제공하는 내장 Tomcat으로 전환하기로 하였다. 그 과정에서 Tomcat server.xml 설정의 Connector 내용을 spring boot 설정으로 옮기게 되었다. 각 설정들의 값들 중에 connection, thread에 해당하는 값들을 살펴보도록 하자. Thread server.tomcat.threads.max: 200 server.tomcat.threads.min-spare: 10 해당 값들은 application.yml에 "server.tomcat.." 설정을 하지 않았을 때의 default값들이다. ( https://docs.spring.io/spring-boot/docs/current/reference/html/..
최신 글
-
[Java] GC 관련 metric 모니터링
spring-boot actuator의 메트릭 정보와 grafana dashboard(+prometheus)를 이용해서 다양한 정보를 모니터링할 수 있다. 해당 정보 중에서 오늘은 GC 관련된 dashboard를 확인해 보자. grafana의 dashboard를 직접 작성하지 않고 이미 작성된 유용한 내용들을 import해와서 사용할 수 있는데오늘은 아래 dashboard에서 제공하는 내용을 살펴보자.https://grafana.com/grafana/dashboards/11378-justai-system-monitor/ 각각 그래프를 나타내기 위한 지표는 아래와 같다GC count : jvm_gc_pause_seconds_count..
-
[Java] 17 버전 주요기능
java 언어를 사용해서 개발하는 대부분의 application은 spring을 사용할 것이다.spring-boot 3.0부터는 java17 버전 이후만 지원한다고 하니java17 버전을 사용하기 위해서 공부해 보자. switch문 개선기존 Java 11:switch는 int, String 등에만 사용 가능, case마다 break 필수Java 17 변경점:switch에서 패턴 매칭을 지원하여 다양한 타입을 처리 가능case 안에서 break 없이 바로 값 반환 가능static String test(Object obj) { return switch (obj) { case Integer i -> "Integer: " + i; case String s -> "String: " ..
-
[Test] Artillery - 성능테스트
최근에 포스팅을 통해서 성능 테스트의 개념 및 종류를 알아보았으니 이제 실제로 수행해보자.(https://kkang-joo.tistory.com/180) 성능테스트를 실행할만한 다양한 오픈소스 툴이 제공되어지는데그중에 접근성이 좋고, 설정파일도 yml 형식이라 간단해보이는 Artillery를 선택하게 되었다. Artillery의 특징 및 사용 방법을 알아가보자. ArtilleryArtillery는 성능 테스트 및 부하 테스트를 위한 오픈소스 툴Node.js 기반에서 실행API, 웹 애플리케이션, 서버의 성능을 검증하는 데 유용하며, 특히 HTTP, WebSocket, GraphQL, Socket.io, Kinesis 등의 프로토콜을 지원-> Artillery는 가볍고 설정이 간편한 성능 테스트 툴로, ..
-
성능테스트 개념 및 종류
Application Server를 개발하고 운영배포를 앞두고 있는 상황에서 해당 Application이 어느 정도의 트랙픽을 감당할 수 있는지 측정이 필요하다. 이러한 지표를 확인하기 위해서 성능테스트를 이용할 수 있다. 성능 테스트 (Performance Test)목적: 시스템의 응답 시간, 처리 속도, 리소스 사용량(CPU, 메모리, 네트워크 등)을 측정하여 성능을 평가하는 테스트 성능 테스트에는 다양한 종류가 존재한다. 부하 테스트, 스트레스 테스트, 스파이크 테스트.. 각각의 종류는 뒤에서 차근차근 알아가 보자. 많은 개발자들이 목표하는 Application은 "많은 사람이 사용해도 API 응답이 빠르고 안정적"인 것이다. 하지만, 이러한 목표는 정략적으로 측정되지 않는 모호한 기준이다. 이러..
-
Circuit Breaker - Hystrix
Hystrix는 넷플릭스(Netflix)에서 개발한 서킷 브레이커(Circuit Breaker) 패턴을 구현한 라이브러리로, 마이크로서비스 아키텍처(MSA) 환경에서 장애 전파를 방지하고 애플리케이션의 안정성을 높이기 위해 사용된다. Netflix는 마이크로서비스 환경에서 장애 전파를 막고 서비스 신뢰성을 높이는 역할을 하는 이 라이브러리를 만들면서, 자신을 보호하는 고슴도치의 특성과 비슷하다고 생각해서 "Hystrix"라고 이름을 붙였다고 한다.-> 즉, 고슴도치처럼 장애를 방어하고, 서킷을 닫았다가 다시 열어주는 역할을 한다는 의미에서 지어진 이름 Hystrix의 주요 기능서킷 브레이커 (Circuit Breaker)호출하는 외부 서비스(API, DB 등)에 장애가 발생하면 즉시 차단하고 빠르게 실패..