본문 바로가기
반응형

전체 글318

블랙홀 사진을 얻기 위한 빅데이터 전송 방법 지난 4월 10일 인류최초로 블랙홀의 모습이 담긴 사진이 '이벤트 호라이즌 망원경(EHT)' 프로젝트의 과학자들에의해 공개되었다. 공개된 블랙홀의 사진은 초점이 맞지 않은 것처럼 보인다. 사우론의 눈이라는 설도 있고, 고양이의 눈이라는 우스갯소리도 돌고 있다. 보기엔 흐릿해보이는 아무것도 아닌 사진처럼 보이지만 이 이미지를 얻기 위해 모은 데이터의 양은 상당하다. 미 애리조나 대학의 천문학 교수인 '댄 마론(Dan Marrone)'은 기자회견을 통해 이 이미지를 얻기 위해 사용된 데이터의 양이 약 4만 명이 평생 촬영하는 셀카 사진의 양과 같다고 밝혔다. '이벤트 호라이즌 망원경' 연구팀은 전세계 8곳에 위치한 세계 최고 수준의 전파망원경을 묶어 지구 크기의 거대한 가상 망원경으로 만들어 블랙홀을 관측했.. 2019. 4. 16.
"희승사화"라고 불리는 모 개발자 커뮤니티의 글 오픈소스 커뮤니티에서 유명한 "이희승"님이 옛날에 작성했던 글을 SNS에서 보게 되었다. 2004년쯤 '자바서비스넷'이라는 커뮤니티에 올라왔던, 소위 '희승사화'라고 회자되는 글이다. 처음에는 익명으로 글이 올라왔다. 자신은 25세인 개발자이며 입사한지 얼마 안 지나 대리를 거쳐 과장으로 승진했으며, PM까지 진급을 해봤고 회사에서도 인정받는 상태이다. 하고자 하는 바가 있어서 대학원에 진행하고 싶은데 회사에서는 이사 직함과 함께 5000만 원이라는 연봉을 제시한 상황이다. (당시는 2004년) 이런 상황에서 어떤 길을 가는 게 좋은지 의견을 묻고 싶다는 글이었다. 처음에는 '정신과나 가라' 등의 '믿기지 않는다', '우물한 개구리다' 등의 댓글이 달리기 시작했다. 스레드가 진행되면서 글쓴이가 자신이 '.. 2019. 4. 15.
Jps, jmap, jhat을 이용한 자바 메모리 덤프 분석 (Java Heap Memory Dump Analysis) 분석 도구 사용법 자바를 이용한 애플리케이션으로 구동되는 시스템에서 가장 조심해야 할 부분이 메모리 사용량이다. 힙 메모리(Heap Memory) 사용량이 이상하게 많거나 점점 증가해서 OutOfMemory 에러가 발생하기도 한다. 메모리 사용량 측면에서 이상 동작이 감지되었을 때, 자바 애플리케이션을 분석할 방법이 필요하다. 이와 관련하여 각종 상용 제품들이 있지만 가장 기본적인 툴들인 jps, jmap, jhat을 알고 있으면 큰 도움이 된다. 이 분석 도구들은 JDK 디렉토리에 포함되어 있다. (일부 버전이나 플랫폼에서는 제공되지 않을 수 있다고 한다. 또 한 추후 버전에서는 제공되지 않을 수도 있다는 말이 있다.) 자바를 정상적으로 설치했다면 $PATH 중 하나에 설치가되어 있을 것이다. 만약 없다면 $JAVA_H.. 2019. 4. 7.
[HDFS] TestDFSIO - 하둡 클러스터 성능 측정 도구(Hadoop Cluster Benchmark Tool) 하둡 클러스터를 구축하고 성능을 측정하고 싶은 경우가 있다. 내가 구축한 클러스터가 어느정도의 성능을 가지고 있는지, 기준치에 못 미치는 성능을 보인다면 얼마나 더 많은 노드를 추가해야하는지 가늠하기 위해서 클러스터의 객관적인 성능 측정 도구가 필요하다. 하둡에서는 여러 성능 측정 도구를 제공하고 있다. 그 중에 클러스터의 성능을 I/O(입출력)의 측면에서 분석할 수 있는 'TestDFSIO'라는 벤치마크 도구가 있다. TestDFSIO 하둡 릴리즈에서 hadoop-mapreduce-client-jobclient-{버전}-tests.jar 파일에 패키징되어 있는 TestDFSIO는 클러스터의 입출력 성능을 측정할 수 있는 도구다. 하둡 소스코드처럼 TestDFSIO 소스코드도 깃허브(github)에 오픈.. 2019. 4. 6.
jmap 사용시 InvocationTargetException, Supported versions are 24.201-b00. Target VM is 25.131-b11 jmap을 이용해 자바 애플리케이션 힙 메모리 분석을 하다가 다음과 같은 예외(Exception)를 만나게 되었다. $ jmap 1234 Attaching to process ID 1234, please wait... Exception in thread "main" java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Delegating.. 2019. 4. 5.
리눅스(Linux) 디스크 입출력 성능 측정하기 - dd, hdparm 빅데이터 클러스터를 구축하면서 특정 장비의 입출력(I/O) 성능을 측정하고 싶을 때가 있다. 장비 자체의 성능 문제인지 설정 값을 튜닝할 여지가 있는지 구분하기 위해서 입출력 성능을 측정하는게 중요한 바로미터가 되기 때문이다. df -h 명령 'df -h' 명령을 이용하면 현 시스템에 마운트 되어 있는 파일 시스템 정보를 알 수 있다. (-h 옵션을 이용하면 파일 시스템 용량을 사람이 읽기 쉬운 형태로 출력해준다) Filesystem Size Used Avail Use% Mounted on /dev/sda1 63G 2.2G 58G 4% /etc/hosts '/dev/sda1' 장비에 대해서 입출력 성능 측정을 해보겠다. dd 명령을 이용한 테스트 dd 명령은 유닉스 및 유닉스 계열 운영체제에서 사용하는 .. 2019. 4. 4.
리눅스(Linux)에서의 저장 장치 이름 규칙(naming convention) 리눅스 운영체제에서 시스템에 저장 장치를 마운트하면 '/dev' 디렉토리 밑에 장치 정보를 나타내는 가상의 파일이 생성된다. 저장 장치에 대한 상세 내용을 하나하나 열어서 확인하지 않더라도 이름만 보면 알 수 있는 정보들이 몇 개 있다. 리눅스는 다음과 같은 규칙을 이용해서 장치에 이름을 붙인다. 플로피 디스크는 'fd'라는 접두어(prefix)를 붙인다. 예를 들어 첫 번째 플로피 디스크는 '/dev/fd0', 두 번째는 '/dev/fd1', 세 번째는 '/dev/fd2' ... 이런 순서로 붙여 나간다 IDE 주 컨트롤러 마스터 디스크는 '/dev/hda'라는 이름을 갖는다 IDE 주 컨트롤러 슬레이브 디스크는 '/dev/hdb'라는 이름을 갖는다 IDE 부 컨트롤러 마스터 디스크는 '/dev/hdc.. 2019. 4. 3.
디스크(Disk), 파티션(Partition)과 볼륨(Volume)의 차이 클러스터의 입출력(I/O) 테스트를 진행하다가 디스크, 파티션, 볼륨이라는 용어가 자주 나오는 것을 봤다. 특히 파티션(Partition)과 볼륨(Volume)이라는 단어는 많이 혼용되기도 하는데, 정확하게 이들이 어떻게 다른지 찾아서 정리해봤다. 디스크(Disk) 일반적으로 디스크는 시스템에 장착되어 있는 물리적인 저장장치를 의미한다. 본래 디스크의 의미는 자기(Magnetic) 물질이 발라져 있는 디스크 플래터(Platter)와 디스크 헤더, 암(Arm) 등으로 구성되어 있는 하드디스크(HDD)를 의미했다. 하지만 최근에는 SSD, 플래시 메모리, RAM 디스크, 가상 디스크 등도 디스크로 통칭해서 부른다. 파티션(Partition) 마치 사무실에 파티션을 쳐서 여러 공간으로 분리하듯 물리적인 디스크.. 2019. 4. 2.
개발자가 블로그를 운영해야 하는 5가지 이유 동료 개발자들과 글쓰기에 대해서 대화를 나눌 기회가 있었다. 글쓰기에 대해서 관심이 없을 것 같은 개발자들, 하지만 의외로 많은 사람들이 글쓰기에 대해서 관심을 가지고 있었다. 특히 블로그 운영에 대해서 생각보다 관심을 많이 가지고 있었다. 생각해보면 업무를 하면서 개발자만큼 블로그 포스트를 많이 접하는 사람도 없을 것 같다. 웹 상의 그 많은 개발자들은 뭘 위해서 블로그를 운영하고 있을지 문득 궁금해졌고, 개발자가 블로그를 운영하면 어떤 점이 좋을지 생각해봤다. 1. 글쓰기도 능력이다. 개발자가 하는 일의 대부분은 소스코드를 수정하고, 빌드하고, 테스트하는 것과 관련이 있다. 하지만 그에 못지않게 다른 사람들과 커뮤니케이션하는 일이 많다. 기업 수준의 소프트웨어 개발에서 1인이 모든 단계를 담당하는 일.. 2019. 4. 1.
반응형