본문 바로가기

전체 글

(217)
Mac에서 메모리 덤프 및 프로세스 바이너리 확인하기 실행 중인 프로세스의 메모리 dump 복구모드(recovery mode)로 진입하여 터미널 실행 csrutil disable 실행 (보호모드 해제 같은 걸로 작업 완료 후 다시 enable 하는 걸 추천) 재부팅 메모리 dump lldb --attach-pid process save-core "filename" hexedit 설치 brew install hexedit hexedit 명령어 참조해서 메모리 확인 (http://rigaux.org/hexedit.html)
[실수노트] Spark 무한 실행, 멈춤 오류 스파크로 작업을 위해 짜놓았던 테스트 코드를 돌렸더니, 실행 중인 클래스명과 함께 시간만 무한히 증가하는 화면만 나오는 상태로 끝나지 않았다. 한 번 돌기 시작하면 중간에 쉘에서 취소해도 멈추지 않고 프로세스를 강제로 죽여야 종료가 됐다. 뭔가 설정이 꼬였다고 생각해서 처음에는 메모리 등의 이슈인가 하여 늘려보고 spark session이나 context를 종료했다 실행하는 등 다양한 방법을 해봤지만 결론은 같았다. 알고 보니 원인은 어이없고 당연한 이유였는데... udf 코드를 변경했는데 원래는 일정 횟수만큼 돌던 코드를 오류가 날 때까지 돌게 수정을 했는데 종료 조건이 명확하지 않아서 무한히 도는 문제였다. scala를 사용해서 재귀로 짰는데.. 아마 자동으로 꼬리재귀로 메모리가 잘 관리돼서 stac..
스트림 처리 [데이터 중심 애플리케이션 설계 11장] 이벤트 스트림 전송: 생산자가 이벤트를 만들면 소비자가 처리한다. 토픽이나 스트림으로 관련 이벤트를 묶는다. 메시징 시스템: 생산자와 소비자 사이에 직접 통신 채널을 사용하는 방식을 기본으로 확장된다. 생산자에서 소비자로 메시지를 직접 전달: 설계 상황에서는 잘 작동하지만, 메시지 유실 가능성을 고려해서 애플리케이션 코드를 작성해야 한다. 오프라인 상태에 취약하다 메시지 브로커: 직접 방식의 대안으로 중간에 메시지 브로커를 통해 메시지를 보내는 방식이다. 메시지 브로커는 일종의 데이터베이스다. 브로커에 메시지가 모이기 때문에 클라이언트의 상태에 쉽게 대처가 가능하다. 비동기로 작동한다. 복수 소비자: 여러 소비자가 같은 토픽에서 메시지를 읽는 패턴 로드 밸런싱: 소비자 중 하나로 전달되고 소비자들끼리 메..
일괄 처리 [데이터 중심 애플리케이션 설계 10장] 데이터 처리 방식 서비스(온라인 시스템): 클라이언트가 요청이 올 때까지 기다리는 방식 일괄 처리 시스템(오프라인 시스템): 큰 입력을 받아 처리하는 방식으로 사용자가 대기 하지 않고 주기적으로 실행됨 스트림 처리 시스템(준실시간 시스템): 온라인과 오프라인 사이로 요청에 대해 응답이 아닌 입력 데이터를 소비하여 출력 데이터 생산 유닉스 도구 일괄 처리 일반적인 프로그래밍 언어에선 메모리에 데이터를 올리고 작업을 하지만, 메모리 보다 큰 데이터셋을 자동으로 디스크로 보내고 자동으로 여러 CPU코어에서 병렬로 정렬한다. (메모리 부족 없이 큰 데이터셋을 처리 가능) 각 프로그램이 하나의 일만 하게 한다. 모든 출력이 다른 프로그램의 입력이 되게 한다. 맵리듀스와 분산 파일 시스템 맵리듀스: 맵퍼 + 리듀서..
일관성과 합의 [데이터 중심 애플리케이션 설계 9장] 선형성: 시스템에 데이터 복사본이 하나만 있고 모든 연산은 원자적인 것처럼 보이게 만드는 것 (최신성 보장) 유용한 예 잠금과 리더 선출 제약 조건과 유일성 보장 채널 간 타이밍 의존성 선형성과 가용성은 트레이드 오프가 있다. 선형성을 보장하려 하면 네트워크 문제 등에 약해지게 된다. CAP 정리가 이런 개념을 설명한다. 심지어 RAM조차도 선형적이지 않음 순서화 보장 인과성을 보존하는 데 도움을 준다. 인과성은 이벤트에 순서를 부과한다. 선형성: 전체 순서를 정할 수 있다. 인과성: 인과적인 관계가 있을 경우에만 순서를 비교할 수 있다. 선형성은 인과성을 내포한다. 일련번호나 타임스탬프를 써서 이벤트의 순서 정하는 식으로 구현된다. 노드별로 독립적인 일련번호 집합 생성 (홀짝) 각 연산에 물리적 시계에..
분산 시스템의 골칫거리 [데이터 중심 애플리케이션 설계 8장] 결함과 부분 장애 단일 컴퓨터에서의 소프트웨어는 항상 같은 결과를 내는 결정적이다. 완전하게 동작하거나 전체 장애가 발생한다. 분산 시스템에서는 부분 장애가 발생한다. (비결정적) 신뢰성 없는 구성 요소를 사용해 신뢰성 있는 시스템 구성한다. 오류 수정 코드 (error-correcting code): 데이터를 정확하게 전송하게 해줌 IP(Internet protocol)은 신뢰성이 없으나 TCP에서 신뢰성을 제공한다. 결함 감지 네트워크에선 몇 번 시도해보고 타임아웃이 발생하면 결함으로 감지 동기 네트워크 대 비동기 네트워크 전화는 동기 네트워크로 통화마다 회선을 만들어서 할당한다. 지연 시간 최대치가 보장이 돼서 제한있는 지연이라 한다. TCP는 비동기 네트워크로 패킷 교환 네트워크이다. 데이터 전송..
트랜잭션 [데이터 중심 애플리케이션 설계 7장] 애매모호한 트랜잭션의 개념 ACID A(원자성)은 어보트(abortability)가 더 어울린다. C(일관성)는 데이터베이스에서 달성할 수 있는 게 아니고 애플리케이션 속성이다. C는 약어를 만들기 위해서 사용됐고 중요하게 생각되지 않았다고 한다. I(격리성)은 성능 저하를 초래해서 아예 구현하지 않거나 완화된 것을 사용한다. D(지속성)은 신뢰성을 토대로 완벽한 지속성은 불가하다. 트랜잭션 격리: 동시성 문제를 감추기 위한 것으로 동시성이 없는 것처럼 한다. 대표적으로 직렬성 격리인데 현실적으로 비용이 크다. 커밋 후 읽기: 읽을 때 커밋된 데이터만 읽고, 쓸 때는 커밋된 데이터만 덮어쓴다. (더티 읽기, 더티 쓰기 방지) 더티 읽기: 커밋이나 어보트되지 않은 데이터를 읽는 것 로우 수준 잠금: 해당 ..
[U+] IPTV LG tv 공지사항 끄기 티비를 보다 보면 상단에 공지사항이 나오는데 너무 자주 나오고 아무 상관 없는 지역의 공지도 나와서 매우 불편하다. 일단 엘지 유플 티비에서 확인한 방법이다. 1. 홈 메뉴에서 TV앱스 선택2. 맨 아래에서 모든 앱 선택3. 앱 선택4. 모든 앱 보기5. 시스템 앱 보기6. 공지사항 선택(사진 못 찍음) 강제종료여기까지 하면 안 나오지만, 공지사항을 다시 켜면 또 반복해야 한다고 한다. 그래서 권한을 없애보려함 7. 뒤로 돌아가서 특수 앱 엑세스 선택8. 다른 앱 위에 표시9. 공지사항 허용하지 않음 선택좀 지켜봐야 하겠지만 일단은 안 뜨는 것 같다. #공지 #종료 #광고 #삭제 #끄기 #티비 #텔레비전 #tv #엘지 #유플