free command, /proc/meminfo
메모리 사용 정보를 보여주는 free 명령어와 /proc/meminfo 에 대해 “DevOps와 SE를 위한 리눅스 커널 이야기” 책에서 배운 내용, “리얼 리눅스 SW 기본반"에서 배운 내용을 정리하였습니다. 메모리 사용량 확인하기 root@August-PC:~# free -m total used free shared buff/cache available Mem: 8047 6161 1662 17 223 1755 Swap: 24576 214 24361 # 출력 데이터 단위에 따라 옵션이 다르다. # -b: byte 단위, -k: KB 단위, -m: MB 단위, -G: GB 단위 total : 전체, used : 사용중, free : 사용 안하고 있는 남는 용량
January 17, 2021
Load average
Load average에 대해 “DevOps와 SE를 위한 리눅스 커널 이야기” 책에서 배운 내용, “리얼 리눅스 SW 기본반"에서 배운 내용을 정리하였습니다. Load average의 정의 Load average는 R(run queue에서 cpu 사용을 위해 대기중인 프로세스들)과 D(네트워크/디스크 i/o 를 위해 wait queue 에서 대기중인 프로세스들)상태에 있는 프로세스 개수의 1분, 5분, 15분마다의 평균값이다. CPU 코어 갯수가 많으면 코어 갯수가 하나일 때 보다는 각 프로세스들이 여러개의 코어에 의해 더 빨리 처리될 수 있다. Load average 계산 과정 root@August-PC:~# uptime 21:44:37 up 6 min, 0 users, load average: 0.52, 0.58, 0.59 root@August-PC:~# strace -s 65535 -f -t -o uptime_dump uptime 05:36:52 up 5:31, 0 users, load average: 0.52, 0.58, 0.59 /proc/loadavg -> /fs/proc/loadavg.c에서 loadavg_proc_show() 함수 -> /kernel/sched.c 에서 get_avenrun() 함수 -> avenrun[] 배열 -> calc_global_load() 함수 -> calc_load_account_active() 함수 순으로 추적하다보면 nr_active 라는 변수에 nr_running + nr_uninterruptible 값들을 합하고 이를 1분, 5분, 15분 평균으로 나눠 계산하는 것을 확인할 수 있다.
January 17, 2021
top command
top command에 대해 “DevOps와 SE를 위한 리눅스 커널 이야기” 책에서 배운 내용, “리얼 리눅스 SW 기본반"에서 배운 내용을 정리하였습니다. top 명령어 실행 결과 root@August-PC:~# top -b -n 1 top - 01:57:36 up 58 min, 0 users, load average: 0.52, 0.58, 0.59 Tasks: 8 total, 1 running, 7 sleeping, 0 stopped, 0 zombie %Cpu(s): 9.0 us, 23.3 sy, 0.0 ni, 67.4 id, 0.0 wa, 0.3 hi, 0.0 si, 0.0 st KiB Mem : 8240388 total, 2032052 free, 5978984 used, 229352 buff/cache KiB Swap: 25165824 total, 24837212 free, 328612 used. 2127672 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ 1 root 20 0 8916 328 284 S 0.0 0.0 0:00.07 880 root 20 0 8916 228 176 S 0.0 0.0 0:00.01 881 august 20 0 18356 3764 3448 S 0.0 0.0 0:00.38 1074 root 20 0 8916 232 180 S 0.0 0.0 0:00.00 1075 august 20 0 18224 3492 3364 S 0.0 0.0 0:00.09 1087 root 20 0 16260 2116 2088 S 0.0 0.0 0:00.01 1088 root 20 0 18088 3392 3304 S 0.0 0.0 0:00.06 1104 root 20 0 18780 1888 1420 R 0.0 0.0 0:00.01 line 1: 현재 시스템의 시간과 uptime, 그리고 load average가 나온다 top - 01:57:36 up 58 min, 0 users, load average: 0.52, 0.58, 0.59
January 17, 2021
linux system info
Linux 시스템 정보 확인 방법에 대해 “DevOps와 SE를 위한 리눅스 커널 이야기” 책에서 배운 내용, “리얼 리눅스 SW 기본반” 에서 배운 내용을 정리하였습니다. 커널 정보 확인하기 uname -a # 커널 버전 확인dmesg #커널 디버그 메세지 cat /boot/config-`uname -r` | more # 커널 컴파일 옵션 확인 cat /boot/config-`uname -r` | grep -i config_function_tracer ftrace와 같은 커널 함수 레벨의 추적이 필요할 경우 CONFIG_FUNCTION_TRACER 같은 옵션이 커널 컴파일 옵션에 포함되어있어야 함 CPU 정보 확인하기 dmidecode -t processor cat /proc/cpuinfo lscpu nproc # core 개수 socket : number of CPU core : number of cores per CPU 시스템 최대 쓰레드 수 : # of socket * # of core * 2(Hyperthreading, Hyperthreading 지원 안할시 * 1) Memory 정보 확인하기 dmidecode -t memory Physical memory array : 하나의 CPU socket에 함께 할당된 물리 메모리의 그룹 Memory device : 실제로 시스템에 꽂혀있는 메모리. 디스크 정보 확인하기 df -h smartctl -a /dev/sda smartctl -a /dev/sda -d cciss,0 # lsmod 를 통해 알아낸 현재 시스템 사용중인 raid 컨트롤러 드라이버를 명시 sda : scsi 방식 또는 sata, sas 방식 같은 일반적 디스크 hda : 개인용 컴퓨터용인 IDE 방식의 디스크 네트워크 정보 확인하기 lspci | grep -i ether ethtool eth0 ethtool -g eth0 # Ring buffer의 크기를 확인 가능, 볼땐 -g, 설정할땐 -G 옵션 ethtool -k eth0 # 현재 NIC의 다양한 성능 최적화 옵션 확인, 마찬가지로 볼땐 소문자 -k, 설정할땐 -K ethtool -i eth0 # NIC의 커널 모듈 정보 표시 Ring buffer : 네트워크 카드의 버퍼 공간을 의미. 크기가 maximum으로 세팅 되어있지 않으면 네트워크 성능 저하 발생 가능 tcp-offload : MTU 이상의 크기를 가지는 패킷의 분할작업을 CPU 가 아닌 NIC가 직접 처리하여 CPU 성능 부담 줄이고 패킷 처리 성능 높임. 출처
January 17, 2021
너라는 생활(김혜진)
소설 ‘9번의 일’을 쓴 작가, 김혜진 작가의 소설집 ‘너라는 생활’을 읽었다. 소감 이 책은 장편 소설은 아니고 단편들을 묶은 소설집이다. 책을 크게 알아보지 않고 고민없이 구입하는 성격인데, ‘9번의 일’을 쓴 작가님 작품이라길래 장편이겠거니 하고 구입해서 받아보니 소설집이였다. 나오는 작품들은 공통적으로 주인공의 시각에서 주인공과 가까운 사이인 ‘너’라는 사람과 지내는 것에 대해 서술하는 방식이다. 각 작품의 ‘너’들은 폭력적인 자기만의 시각으로 ‘나’들을 대하는 사람처럼 묘사되고, ‘나’들은 상대적으로 사회에서 소수라거나 취약하다거나 하는 사람들로 설정된 것 같다는 느낌을 받았다.
January 8, 2021
페스트(알베르 카뮈)
군대에서 너무나도 재밌게 읽었던 소설 이방인을 쓴 작가, 알베르 카뮈의 소설 페스트를 읽었다. 줄거리 소설은 프랑스의 한적한 오랑이라는 도시를 배경으로, 페스트라는 전염병이 창궐하는 상황에 인간들의 삶이 어떻게 변하는지 묘사하고 있다. 당국에 의해 도시는 나가지도 들어오지도 못하게 엄격하게 폐쇄된다. 인간이 병에 의해 너무나도 쉽고 허무하게 죽어나가는 잔혹한 상황속에서 도시 안에 갇힌 사람들은 낙심하고 좌절하는 사람, 병에 걸린 사람들의 치료를 돕는 방식으로 전염병에 대한 투쟁을 하는 사람, 자신의 일이 아니라고 나몰라라 하는 사람 등의 다양한 모습을 보인다.
January 4, 2021
2021 Books I Read
2021년에 읽은 책들(업데이트중) 2021-01-04 페스트(알베르 카뮈) 2021-01-08 너라는 생활(김혜진) 2021-01-18 [피터 드러커 자기경영노트(Peter Drucker)] 2021-01-28 [무진기행(김승옥)] 2021-02-08 [보건교사 안은영(정세랑)] 2021-02-18 Head First Go(Jay McGavren 지음, 권민재 옮김) 2021-08-01 Tucker의 Go언어 프로그래밍(공봉식) 2021-08-02 달러구트 꿈 백화점(이미예)
January 2, 2021
2020년 리뷰
우선 연 초에 내가 뭘 목표했는지 기억이 잘 안난다ㅠㅠ 그나마 기록해뒀던 이직은 했고, 달리기 목표는 어느새 흐지부지 됐고.. 커리어와 사생활로 나눠서 적어보자. 커리어(너무 단촐한데..?) AWS, Kubernetes, Nginx, Apache HTTP 경험 매우 조금 취득한 업무 관련 자격증 2개(AWS SAA, CKA) 이직 사생활 게임 (이제는 전 직장이 되어버린) 아프리카TV 사내 롤대회에서 우승을 했다. 2019년 사내 롤대회에서 준우승으로 마무리했던게 너무 아쉬웠는데, 팀원들과 재도전해서 우승을 이뤄냈다. 적지만 상금도 받았다!
December 23, 2020
CKA 시험 후기
Certified Kubernetes administrator(CKA, 2020년 9월 개정) 시험을 준비하시는 분들께 도움이 되길 바라며.. (2번째 응시(free retake)끝에 턱걸이로 겨우 취득한) CKA 경험을 공유합니다. 준비하게 된 계기 쿠버네티스. 요즘 여기저기서 많이 나오는 이름이라 많이 들어봤으나 아는게 없었습니다. 마침 관련 업무가 생겨서 어떻게 알아가면 좋을까 하다가 개인적으로 AWS SAA 준비하면서 정말 많은 공부가 됐던 경험이 있어서 쿠버네티스는 자격증 없나~? 하고 찾아봤더니 관리자들을 대상으로 하는 Certified Kubernetes Administrator 라는게 있다는걸 알게되었고 이걸 준비하면 자연스럽게 쿠버네티스 공부가 되겠구나~ 생각하고 준비를 시작하게 되었습니다.
October 27, 2020
2020 Books I Read
2020년에는 52권의 책을 읽었다. 주로 출,퇴근 시간에만 지하철에서 책을 읽는데(정말 재밌는 책 아니면 집에서는 안봄), 하루 이틀 시간이 쌓이니까 읽은 권수가 정말 많아진 것 같다. 재택근무 아니였다면 더 많았을 것 같다. 아쉬웠던 것은 읽었던걸 짧게라도 글로 정리하지 않고 너무 읽는 행위에만 급급했던 것 아닌가 싶다. 2021년에는 읽었던 내용을 반드시 정리하는 방향으로 독서를 해봐야겠다. 2020-01-01 고래(천명관) 2020-01-04 페인트(이희영) 2020-03-31 가만한 나날(김세희) 2020-04-01 일의 기쁨과 슬픔(장류진) 2020-04-03 해가 지는 곳으로(최진영) 2020-04-04 우리가 빛의 속도로 갈 수 없다면(김초엽) 2020-04-07 시라노(Edmond Rostand) 2020-04-11 사진을 읽어 드립니다(김경훈) 2020-04-13 동물농장(George Orwell) 2020-04-21 나목 도둑맞은 가난(박완서) 2020-04-24 콜센터(김의경) 2020-04-26 DevOps와 SE를 위한 리눅스 커널 이야기(강진우) 2020-04-27 체리새우: 비밀글입니다(황영미) 2020-04-28 템페스트(William Shakespeare) 2020-05-08 피닉스 프로젝트(Gene Kim, Kevin Behr, George Spafford) 2020-05-14 사서함 110호의 우편물(이도우) 2020-05-21 리추얼(Mason Currey) 2020-05-26 9번의 일(김혜진) 2020-05-30 문장 수집 생활(이유미) 2020-06-02 3기니(Virginia Woolf) 2020-06-08 달리기를 말할 때 내가 하고 싶은 이야기(무라카미 하루키) 2020-06-10 누구(아사이 료) 2020-06-14 광대하고 게으르게(문소영) 2020-06-17 오늘의 엄마(강진아) 2020-06-21 변신 시골의사(Franz Kafka) 2020-06-25 위대한 개츠비(F. Scott Fitzgerald) 2020-06-29 꾸뻬씨의 행복여행(François Lelord) 2020-07-09 자존가들(김지수) 2020-07-13 웹 엔지니어가 알아야 할 인프라의 기본(바바 토시아키) 2020-07-26 인생의 발견(Theodore Zeldin) 2020-07-29 나는 LINE 개발자입니다(강윤신, 김영환, 김재석, …) 2020-08-02 나는 아마존에서 미래를 다녔다(박정준) 2020-08-07 보통의 언어들(김이나) 2020-08-13 모두 거짓말을 한다(Seth Stephens-Davidowitz) 2020-08-21 글자풍경(유지원) 2020-08-29 노르웨이의 숲(무라카미 하루키) 2020-08-31 두 방문객(김희진) 2020-09-05 쇼룸(김의경) 2020-09-14 절대 성공하지 못할 거야(Mark Randolph) 2020-09-16 내가 말하고 있잖아(정용준) 2020-09-25 다크호스(Todd Rose, Ogi Ogas) 2020-09-28 프리즘(손원평) 2020-10-09 번역가 모모씨의 일일(노승영, 박산호) 2020-10-13 당신 옆을 스쳐간 그 소녀의 이름은(최진영) 2020-10-21 비밀의 화원(Frances Hodgson Burnett) 2020-10-29 책, 이게 뭐라고(장강명) 2020-10-31 포스트맨은 벨을 두 번 울린다(James Mallahan Cain) 2020-11-09 유닉스의 탄생(Brian Kernighan) 2020-11-25 숨(Ted Chiang) 2020-12-03 유원(백온유) 2020-12-13 스포티파이 플레이(Sven Carlsson, Jonas Leijonhufvud) 2020-12-14 변두리 로켓(이케이도 준)
January 4, 2020
2019 Books I Read
2019년에 읽은 책들을 나열하는 포스트 아몬드(손원평) 사람의 아들(이문열) 지방 대사 켜는 스위치온 다이어트(박용우) 여행의 이유(김영하) 나는 왜 정치를 하는가(유승민) 히트 리프레시(Satya Nadella) 어느 애주가의 고백(Daniel Schreiber) 2019-06-17 더골(Eliyahu Moshe Goldratt) 2019-06-18 한국이 싫어서(장강명) 2019-06-18 인프라 엔지니어의 교과서: 시스템 구축과 관리편 2019-06-22 당선, 합격, 계급(장강명) 2019-06-30 소크라테스의 변론 크리톤 파이돈 향연(Plato) 2019-07-04 Hello Coding 알고리즘(Aditya Y. Bhargava) 2019-07-07 개발자도 궁금한 IT 인프라(정송화, 김영선, 전성민) 2019-07-09 서른의 반격(손원평) 2019-07-12 산 자들(장강명) 2019-07-15 지극히 사적인 초능력(장강명) 2019-07-19 멋진 신세계(Aldous Leonard Huxley) 2019-07-20 인간 실격(다자이 오사무) 2019-08-01 함께 자라기(김창준) 2019-08-04 바닷가 작업실에서는 전혀 다른 시간이 흐른다(김정운) 2019-08-05 열광금지, 에바로드(장강명) 2019년 독서는 8월에서 끝이 났다…
June 9, 2019