전체 글

개발에 대한 내용을 주로 다루는 블로그입니다.
개발/자바

Java Metaspace에 대해서

Metaspace란 무엇일까 Metaspace는 JDK8 이전의 Perm 영역을 대체하는 것으로 클래스와 메소드의 메타데이터들이 저장되는 영역임 Metaspace는 native memory를 사용하기 때문에 힙 영역과는 별개의 영역에 할당됨 native memory는 프로세스에 할당되는 메모리 영역으로 C 힙과 스레드 스택도 native memory를 사용함 다음 그림을 보면 좀 더 쉽게 이해할 수 있다. 클래스는 최초에 모두 로딩되는 것은 아니고 필요 시점에 로딩되며, 클래스가 로딩될 때 Metaspace에 클래스 정보가 저장된다. 소스 코드양이 많아질수록 Metaspace도 그만큼 많이 사용되게 됨 보통 클래스 하나당 5~6KB 정도 사용된다고 함 그리고 GC 실행 시 저장된 클래스 정보가 unloa..

개발/자바

sun.reflect.GeneratedMethodAccessor 클래스에 대해서

톰캣 운영 중에 로딩된 클래스 목록을 확인해보았더니 다음과 같은 클래스들이 굉장히 많이 로드되어있었다. sun.reflect.GeneratedConstructorAccessor54 sun.reflect.GeneratedConstructorAccessor57 sun.reflect.GeneratedConstructorAccessorXX ... 뒤에 숫자는 순차적으로 붙는 것 같은데 이게 확인해보니 톰캣 운영 중에 동적으로 생성되어 로드된 클래스였다. 이 클래스들이 Metaspace의 상당히 많은 부분을 차지하고 있었고 무엇인지에 대해 찾아보니 다음과 같았다. JAVA reflection으로 메소드를 호출할 때 기본 최초 15번까지는 JNI를 통해 호출하는데 (inflation이라고 부름) 그 다음부터는 pu..

개발

카프카, 데이터 플랫폼의 최강자 - 6장 카프카 운영 가이드

6장 카프카 운영 가이드는 다음 내용에 대한 내용이다. 카프카 운영 환경에서 빈번하게 사용되는 중요한 명령어 클러스터 확장을 위한 주키퍼와 카프카 스케일 아웃 방법 JXM를 이용한 카프카 모니터링 방법, 카프카 매니저 활용법 6.1 필수 카프카 명령어 카프카 명령어들은 설치 경로의 bin 디렉토리에 위치함 토픽 생성 ~ /usr/local/kafka/bin/kafka-topics.sh \ --zookeeper peter-zk001:2181,peter-zk002:2181,peter-zk003:2181/peter-kafka \ --replication-factor 1 --partitions 1 \ --topic peter-topic --create # topic : 토픽명토픽 리스트 확인 ~ /usr/loc..

개발

카프카, 데이터 플랫폼의 최강자 - 4장 카프카 프로듀서

카프카 프로듀서의 주요 기능은 각각의 메시지를 토픽 파티션에 매핑하고 파티션의 리더에 요청을 보내는 것이다. 프로듀서로 메시지 보내기 카프카 옵션 중에 auto.create.topics.enable = true 로 되어있으면 프로듀서가 존재하지 않는 토픽으로 메시지보내면 자동으로 토픽이 생성된다. 콘솔, 자바, 파이썬 등으로 메시지를 보낼 수 있다. 콘솔 프로듀서로 보내기 ~ {KAFKA_HOME}/bin/kafka-console-producer.sh \ --broker-list {콤마로 구분된 브로커 목록(호스트명:포트번호)} \ --topic {토픽명} 자바와 파이썬 프로듀서로 보내기 자바와 파이썬으로 보낼 때는 카프카에서 제공하는 라이브러리가 존재하기 때문에 그것을 이용해서 보내면 된다. 기본적으로..

경제

복리 수익 계산하기

연복리로 예금/펀드를 운용할 때 예상되는 수익율을 어떻게 계산할 수 있을까? 단리일 경우는 계산이 크게 복잡하지 않지만 복리인 경우는 한번에 머리로만 계산하기 어렵다. 1000만원을 연 수익률 10%, 단리로 10년 운용하면 10년 후 얼마가 될지 계산해보면 수익금은 다음과 같이 1000만원이 되기 때문에 원금과 합쳐서 총 2000만원이 된다. 1000만원 ✕ 0.1 ✕ 10 = 1000만원 만약 1000만원을 연 수익률 10%, 복리로 운용하면 10년 후 얼마나 되는지 생각해보면, 1년 후 : 1000만원 + 100만원 (1000만원 ✕ 0.1) = 1100만원 2년 후 : 1100만원 + 110만원 (1100만원 ✕ 0.1) = 1210만원 3년 후 : 1210만원 + 121만원 (1210만원 ✕ 0..

개발

카프카, 데이터 플랫폼의 최강자 - 3장 카프카 디자인

카프카, 데이터 플랫폼의 최강자 - 3장 요약 정리 내용임. 3.1 카프카 디자인의 특징 분산시스템 카프카는 분산 시스템으로 구성되어 있어서 분산 시스템의 장점을 갖는다. 단일 시스템 대비 높은 성능 높은 가용성 확장성이 좋음 (아파치 카프카 문서에 따르면 링크드인에서 가장 사용량이 높은 클러스터는 60대의 브로커 운영한다고 함) 페이지 캐시 카프카는 처리량을 높이기 위해 페이지 캐시를 이용한다. OS는 물리적 메모리에 애플리케이션을 위한 부분을 할당하고 남은 잔여 메모리 일부를 페이지 캐시로 사용해 OS의 전체적 성능을 높인다. (페이지 캐시라는 것은 카프카가 구현한 기능이 아니고 OS 레벨에서 제공하는 기능) 페이지 캐시를 사용하면 디스크 I/O 양이 줄기 때문에 처리 속도가 매우 빨라서 전체적인 성..

bebeside77
Spread your wings