마이의 개발 블로그
close
프로필 배경
프로필 로고

마이의 개발 블로그

  • 전체보기 (128)
    • 개발지식 (57)
      • Web (8)
      • Spring (13)
      • Node.js (2)
      • Django (5)
      • Java (3)
      • JavaScript (2)
      • 자료구조 (3)
      • OS (3)
      • 디자인패턴 (2)
      • 인프라 (9)
      • 기타 (7)
    • 코딩테스트 (50)
      • 프로그래머스 (47)
      • 구름LEVEL (3)
    • 생각들 (14)
    • 팁 모음 (6)
  • 홈
  • 태그
  • 방명록

[OS] 네이티브 라이브러리를 쓸 때 alpine 이미지를 조심하세요: 멀티코어 성능 문제 해결 과정

배경최근 맞춤법 검사기 라이브러리 WebSpeller의 사용을 주 기능으로 하는 SpringBoot 서버를 Docker 기반 서비스로 배포하는 과정에서, 서버 어플리케이션이 멀티코어 CPU를 제대로 활용하지 못하는 문제가 발생했습니다. 호스트 PC에서 직접 구동하는 경우 CPU 활용률과 처리 속도에 문제가 없었으나, 도커 이미지 빌드 후 컨테이너에서 동작시킬 경우 같은 CPU 활용률이더라도 처리속도가 떨어지는 현상이 관찰된 것입니다. 오늘은 문제를 해결하나가며 얻게된지식들을 정리해보려고 합니다.문제 해결 과정기존 검증 내용 체크초기에는 클라우드 서버의 CPU 단일 코어 성능이 로컬 PC보다 낮아서 성능이 제한된 것이라고 단순히 생각했습니다. 그러나 다양한 각도에서 문제를 분석하며 아래와 같은 내용들을 확..

  • format_list_bulleted 개발지식/OS
  • · 2025. 9. 3.
  • textsms

[OS] 서브프로세스와 Graceful 종료: AI 영상 분석 시스템 개발 중 겪은 시행착오와 해결 방안

배경: 서브프로세스의 도입AI 기반 영상 분석 시스템을 개발하며, 1) CCTV RTSP 스트리밍 영상의 분할 저장, 2) 저장된 파일들에 대한 후처리 스케줄러 구동을 안정적으로 처리해야 할 필요가 있었습니다. 초기에는 모든 작업을 단일 프로세스 내에서 처리하여 개발을 진행했습니다. 그러나 단일 프로세스 내에서 Gstream을 통한 스트리밍 행위와 파일 분할 저장 행위를 동시에 수행하는 경우, 주기적으로 프로세스에 부하가 많이 걸리게 되어 그 시점마다 아래와 같은 현상들이 발생했습니다. - 영상 저장 타이밍이 어긋남- 저장 중인 파일이 일부 유실됨- 타임스탬프 기반 파일 관리의 불안정성 증가 이러한 문제들을 해결하기 위해 저는 1), 2)의 기능들을 각각 별도의 서브프로세스로 분리하여 운영하는 구조를 도..

  • format_list_bulleted 개발지식/OS
  • · 2025. 8. 4.
  • textsms
[OS] 프로세스(process)와 쓰레드(thread)

[OS] 프로세스(process)와 쓰레드(thread)

쓰레드와 프로세스는 각각 OS 교과서의 한 챕터씩을 차지할 정도로 다루어야할 내용이 많아 간단히 정리하기에는 어려운 면이 있다. 여기서는 일단 이 둘의 개념과 역할에 대해 간략하게 다루어보고자 한다. 프로그램(program) - 컴퓨터에서 특정 작업을 수행하기 위한 명령어들의 집합 (코드의 모음) - 보조기억장치에 저장되어있으나 메모리에는 올라가있지 않은 정적인 상태임 프로세스(process) - 실행중인 프로그램(program in execution)을 말함 - 프로그램은 OS로부터 필요한 메모리(code, stack, heap, data)를 할당받아 프로세스가 됨 (동적인 상태) - 하나의 프로세스에 문제가 발생하더라도 해당 프로세스만 종료된다는 특징이 있음 Process Control Block (..

  • format_list_bulleted 개발지식/OS
  • · 2022. 2. 13.
  • textsms
  • navigate_before
  • 1
  • navigate_next
공지사항
전체 카테고리
  • 전체보기 (128)
    • 개발지식 (57)
      • Web (8)
      • Spring (13)
      • Node.js (2)
      • Django (5)
      • Java (3)
      • JavaScript (2)
      • 자료구조 (3)
      • OS (3)
      • 디자인패턴 (2)
      • 인프라 (9)
      • 기타 (7)
    • 코딩테스트 (50)
      • 프로그래머스 (47)
      • 구름LEVEL (3)
    • 생각들 (14)
    • 팁 모음 (6)
최근 글
인기 글
최근 댓글
태그
  • #코딩테스트
  • #주니어
  • #스프링
  • #프로그래머스
  • #docker
  • #개발자
  • #Java
  • #도커
  • #구현
  • #spring
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바