TroubleShooting (16) 썸네일형 리스트형 [S3]초당 쿼리 수 제한(QPS Limit)을 극복하고 성능을 향상시키는 방법 문제 특정 이벤트로 인해 사용자들이 몰리는 현상이 발생하면서 S3 버킷에 대한 요청이 급증했습니다. 이 예기치 못한 트래픽 증가로 인해 S3의 초당 쿼리 수 제한(QPS Limit)에 걸려 많은 파일들이 업로드되지 못하는 문제가 발생했습니다. S3 초당 쿼리 수 제한에 대한 이해 Amazon S3는 각 접두사(prefix) 당 3,500개의 PUT/COPY/POST/DELETE와 5,500개의 GET/HEAD 요청을 처리할 수 있는 높은 요청 빈도로 설계되어 자동 확장됩니다. 이 기본 성능은 S3의 동적 최적화와 확장 능력을 바탕으로 합니다. 그러나, 오늘과 같이 대규모 이벤트가 발생하여 요청이 급증하면, 시스템은 일시적으로 503 에러를 발생시킬 수 있으며, 이는 S3가 새로운 요청 빈도에 맞게 조정되.. [Loki]Per stream rate limit exceeded (limit: 3MB/sec) while attempting to ingest for stream 증상: loki-write 컴포넌트의 메모리가 지속적으로 증가함 로그: err="rpc error: code = Code(429) desc = entry with timestamp 2023-11-14 06:37:29.320051283 +0000 UTC ignored, reason: 'Per stream rate limit exceeded (limit: 3MB/sec) while attempting to ingest for stream 예상 원인: 높은 로그 볼륨: 소스에서 생성되는 로그의 양이 매우 많을 때 이 오류가 발생할 수 있습니다. 이는 특히 많은 양의 로그 데이터를 짧은 시간 내에 Loki로 전송할 때 발생합니다. 그리고 Loki는 속도 제한에 도달했을 때 로그를 버퍼링하고 나중에 재시도할 수 .. [VSCode]한글이 깨져 보이는 파일 인코딩 변경하기 파일의 인코딩 문제로 인해 한글이나 특수 문자가 깨져 보일 때가 있습니다. 이런 문제를 해결하기 위해 VSCode를 사용하여 파일의 인코딩을 변경하는 방법을 소개하겠습니다. 1. 원본 파일을 VSCode에서 열기 먼저 VSCode를 실행한 후, 원하는 파일을 엽니다. 2. 현재 인코딩 확인하기 파일을 열었을 때 오른쪽 하단에 현재 인코딩 (예: EUC-KR, UTF-8 등)이 표시됩니다. 3. "Reopen with Encoding"을 사용하여 파일을 다른 인코딩으로 열기 오른쪽 하단의 인코딩을 클릭한 후, "Reopen with Encoding"을 선택합니다. 그런 다음 파일의 현재 인코딩 (예: EUC-KR)을 선택하여 파일을 해당 인코딩으로 다시 엽니다. 4. "Save with Encoding"을.. [Github]Fix error fatal: Authentication failed for 'https://github.com/repository/' 참고 링크 https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls Problem git push 명령 입력 시 아래 에러 메세지와 함께 실패 Cause 2021-08-13 부터는 github 인증시 password를 사용할 수 없다. Solution github 에서 token을 발급받아 인증을 진행 Error message Username for '': dewble Password for '': remote: Support for password authentication was removed on August 13, 2021. remote: Please .. [Kubernetes]Do not want to remove the pvc when uninstalling helm chart Concept Helm chart로 플랫폼을 구성하고 helm uninstall을 하는 경우 구성했던 PVC가 없어 지는 경우가 있다. 이때 아래 PVC에 annotations을 추가해 PVC를 유지할 수 있다. Do not remove resource such as pvc Add annotations metadata: annotations: "helm.sh/resource-policy": keep [...] "helm.sh/resource-policy": keep Example apiVersion: v1 kind: PersistentVolumeClaim metadata: annotations: helm.sh/resource-policy: keep labels: app: harbor component: .. [Linux]Slave 서버에서 VIP 확인이 안되는 경우, 서버간 통신 설정(sysctl.conf) Slave 서버에서 VIP 확인이 안될 경우 cat > /etc/sysctl.conf # 양쪽 노드에서 /etc/sysctl.conf 파일에 IP 가 포워딩될 수 있도록 net.ipv4.ip_forward = 1 # 로컬 호스트 주소 이외의 다른 가상 IP에 바인딩할 수 있도록 net.ipv4.ip_nonlocal_bind = 1 # 자신의 네트워크가 스푸핑된 공격지의 소스로 사용되는것을 차단 net.ipv4.conf.default.rp_filter = 2 # 스푸핑을 막으려고 source route 패킹을 허용하지 않도록 net.ipv4.conf.default.accept_source_route = 0 EOF sysctl -p /etc/sysctl.conf [Linux]Kill Zoobie(Defunct) process Problem 프로세스 테이블이 다 차서 더이상 프로세스를 실행할 수 없는 상황 발생 Cause 실행 을 완료했지만( [exit]() 시스템 호출 을 통해 ) 여전히 프로세스 테이블 에 항목 이 있는 프로세스입니다. 종료가 되다만 프로세스 종료 단계에 멈춰 있는 프로세스 비정상적인, 종료되지 않는 프로세스 부모프로세스가 죽었는데도 남아있는 자식프로세스 또는 부모프로세스가 비정상인 경우 자식 프로세스가 종료되어 사용하는 리소스는 모두 해제된 상태지만, 부모 프로세스가 자식 프로세스의 종료를 확인하지 못한 상태로 커널의 프로세스 테이블에는 관리되고 있는 상태 Solution process 찾기 ps -ef | grep defunct | grep -v grep counting zoombie process ps.. [Kubernetes]Pods are not moved when node in not ready state Problem 서버 셧다운, 리부팅시 실제 해당 서버에 떠있는 파드로 통신은 할 수 없지만 kubectl 명령어로 확인했을때 running 상태인걸 확인 할 수 있다. 리부팅되어 서버가 정상화 되어도 pod가 다른 node가 아닌 기존 node에 할당 되어 있는것을 확인할 수 있다. Cause pod, node의 헬스체크 주기가 길어 실제 node에 문제가 생겼지만 다음 헬스체크까지 이상을 감지 못하는 상황 Solution kube-apiserver.yaml, kube-controller-manager.yaml 에서 아래 옵션을 변경하여 not ready 상태의 노드 체크 주기를 줄인다 api-server https://kubernetes.io/docs/reference/command-line-tools.. 이전 1 2 다음