반응형 All57 [Java] 멀티스레드를 통한 성능개선 화스트 페이스 경보 발생... 문제상황 프로젝트 진행 중 이번달 말에 계산을 돌려야하는데 시간이 오래 걸린다고 성능을 개선해달라는 요청을 받았다. Slow Query가 있겠거니 하고 소스를 뜯어봤더니 왠 걸,, 프로시저로 되어있다. 메인 프로시저 하나에 수십개의 프로시저가 딸려있는 구조였다. 정리하자면, java단에서 반복문으로 한명 씩 해당 프로시저를 호출해서 계산하는 구조인데 해당 프로시저는 수십개의 서브 프로시저를 달고있는 구조였으며, 1명당 약 3.6초가 소요됐다. 100명을 돌리면 360초. 1000명을 돌리면 3600초...... 그..그만!! 해결방안 모색 여러가지 해결방안을 모색했고 적합한 방식을 찾아나갔다. Query 튜닝 처음에는 Slow Query가 있을 줄 알고 까보니 수십개의 프로.. 2023. 1. 19. AWS[Elasti Cache] ElastiCache for Redis란? 노드/샤드/클러스터 Redis? Redis(Remote Dictionary Server)는 오픈 소스 기반 인 메모리 데이터 저장소이다. 데이터를 key-value 형식으로 저장하고 strings, hashes, lists, sets, and sorted sets와 같은 다양한 데이터 구조를 지원한다. 또한 데이터 노드의 Master-Slave 복제, Lua 스크립팅, 키 만료 등 다양한 고급기능을 사용할 수 있다. Redis는 인 메모리 기반 데이터 저장소로 사용되지만 RDB(특정 시점 스냅샷), AOF(쓰기 작업 로그) 방식의 백업을 통해 데이터를 디스크에 저장할 수 있다. 따라서 재부팅이나 충돌이 발생해도 데이터를 보존시켜 계속 사용할 수 있다. Redis는 고성능, 확장성 및 low latency로 유명하므로 실시간.. 2023. 1. 14. AWS[Elasti Cache] - Redis 생성 및 Ec2에서 접속 미루고 미룬 Redis에 대해 슬슬 다뤄보려 한다. 이미 Ec2에서 was, nginx, jenkins, postgresql까지 돌리고 있어 Redis까지 설치하면 미안한 감정이 들어 Aws에서 제공하는 Elastic Cache를 사용하려고 한다. 바아로 생성해보자. AWS - Elastic Cache 생성 AWS - Elastic Cache검색 후 접속 클러스터 생성 - Redis 클러스터 클러스터 설정 새 클러스터 구성 및 생성 클러스터 모드 비활성화 free-tier는 t2.micro 노드 1개에 대해 무료로 제공하기때문에 동적으로 노드갯수가 늘어나서 요금이 발생하지 않을까하는 우려심에 비활성화 했다. Free-tier를 사용한다면 노드유형을 t2.micro로 셋팅해야 별도로 요금이 부과되지 않는다.. 2023. 1. 12. DataBase Index에서 기본적으로 HashTable이 아닌 B-Tree를 쓰는 이유 의문의 시작 해시 테이블은 삽입, 삭제, 탐색 시 평균적으로 O(1)의 시간복잡도를 가지는 좋은 성능의 자료구조인데 DateBase에서 Index로 사용안하는지 갑자기 의문이 생겼다. 지금 생각해보면 조금만 고민하면 답을 찾을 수 있는데 왜 안보였는지... 서치를 해보니 나와 같은 의문점을 가진 사람들이 꽤 있어서 자료가 찾기 편했다. 바로 알아보자! 자료구조 비교 HashTable HashTable이란 Key와 Value로 데이터를 저장하는 자료구조 중 하나로써, 데이터의 삽입, 삭제, 탐색에 평균적으로 O(1)이라는 빠른 성능의 시간복잡도를 자랑하는 자료구조이다. HashTable의 프로세스를 알아보면, 검색하고자 하는 키값을 입력받아서 해시함수를 통해 반환받은 HashCode를 배열의 Index로 .. 2023. 1. 9. 이전 1 2 3 4 5 ··· 15 다음 반응형