리눅스
-
Linux Swap 영역 정리커널(Kernel) 2022. 12. 4. 20:50
환경 정보 OS: ubuntu18.04 K8S를 사용 중인 환경이지만 swapon 환경이다. Swap 영역 swap 영역은 물리 메모리가 부족할 경우를 대비해서 만들어놓은 비상용 공간이다. 디스크의 일부를 사용하기 때문에 물리 메모리에 비해 접근과 처리속도가 떨어지므로 시스템 성능 저하를 일으킨다. free 커맨드를 통해서 메모리 영역과 swap 영역을 함께 확인할 수 있다. 현재 2GB의 스왑 영역을 확보하고 있으며, 전혀 사용하고 있지 않다. 스왑 영역을 사용하고 있다면 메모리와 관련해서 시스템에 문제가 있을 수 있다는 의미이다. 따라서 스왑 영역을 사용하고 있는 프로세스를 확인해볼 필요가 있다. 서비스 용도가 아닌 관리 용도의 프로세스에서 메모리 누수가 있어, 스왑 영역을 사용하게 되었을 수도 있기..
-
Linux Load Average로 부하 확인하기커널(Kernel) 2022. 11. 27. 22:17
환경 정보 OS: ubuntu18.04 swap: off Load Average Load Average는 R(running)과 D(uninterruptted sleeping) 상태에 있는 프로세스를 1분, 5분, 15분마다의 평균 값을 나타낸 것인데, uptime 커맨드 사용시 확인할 수 있다. Load Average가 높으면 실행 중인 프로세스가 많거나 I/O등을 처리하기 위한 대기 상태에 있다는 것이다. 반대로 말하면 CPU를 많이 쓰는 프로그램을 사용하거나 I/O 리소스를 많이 사용하는 프로그램을 사용하면 Load Average가 높아질 수 있다. 좀 더 구체적으로 말하면 Load Average는 Run queue에 있는 프로세스 수에 의해서 결정이 되는데 이는 CPU core의 갯수에 따라서 다른..
-
Linux Top으로 확인할 수 있는 정보들커널(Kernel) 2022. 11. 21. 19:15
환경 정보 OS: ubuntu18.04 Top을 통해서 확인할 수 있는 정보들 top을 옵션 없이 사용하면, 3초마다 갱신된다. 특정 순간의 사용량을 보고 싶을 때는 -b 옵션을 사용한다. 위 이미지에서 다음과 같은 정보를 확인할 수 있다. 서버를 구동한지 19일 되었다. 3명의 사용자가 접속해있다. 현재 461개의 프로세스가 구동되고 있다. CPU, memory, swap 사용량을 확인할 수 있다. 프로세스 정보들 PR은 priority를 의미한다.(낮을 수록 우선순위가 높다) NI은 PR을 조절할 때 사용한다. VIRT: 가상 메모리 사용량 RES: 물리 메모리 사용량 SHR: 프로세스끼리 메모리를 공유하는 양 glibc를 예로 들 수 있는데, 대부분의 프로세스들은 glibc 라이브러리를 참조하기 때..
-
Linux 시스템 정보 확인하기(BIOS/CPU/Memory/DISK/NIC)커널(Kernel) 2022. 11. 21. 00:52
환경 정보 OS: ubuntu18.04 Bios 정보 확인하기 dmidecode 커맨드를 사용하면 시스템 컴포넌트의 정보를 쉽게 확인할 수 있다. 다음은 -t bios 인자를 주어 이 시스템의 BIOS를 확인한 것이다. 이 시스템은 American Megatrends Inc 에서 만든 서버이며, bios의 버전이 2019/08/13에 발표된 F2임을 알 수 있다. 시스템 정보 확인하기 주로 이 커맨드를 가장 많이 사용한다고 한다. 이 장비는 Gigabyte Technology Co.에서 만든 B365M D3H 모델이라는 것을 확인할 수 있다. CPU 정보 확인하기 -t processor를 인자로 주면 CPU 정보 확인이 가능하다. 여기서 소켓이라는 말이 나오는데, 소켓은 물리적인 CPU를 의미하며 소켓은..
-
Linux 커널 정보 확인하기커널(Kernel) 2022. 11. 20. 23:27
환경 정보 OS: ubuntu18.04 커널 버전 정보 확인 uname -a를 통해서 커널 버전이 4.15.0-194-generic 임을 알 수 있다. 커널 로그 확인 dmesg 커맨드를 사용하면 커널이 부팅할 때 나오는 메시지와 운영 중에 발생하는 메시지를 볼 수 있다 또한 Kernel command line에서 부팅시 사용한 커널 파라미터를 확인할 수 있는데 해당 커널 파라미터는 /proc/cmdline에서도 확인할 수 있다. 커널 컴파일 옵션 확인 Reference Devops와 SE를 위한 리눅스 커널 이야기
-
실습과 그림으로 배우는 리눅스 구조 8장 정리운영체제 2022. 11. 13. 17:49
저장 장치 HDD 데이터를 자기 정보로 변환하여 자기 장치에 기록한다. 바이트 단위가 아닌 섹터 단위(512Byte or 4096KB)로 읽고 쓴다. 데이터를 읽고 쓸 때, 스윙암의 동작과 플래터의 회전이 필요한데 이는 전기적 동작이 아닌 기계적 동작이기 때문에 느릴 수 밖에 없다. HDD의 성능(I/O 지원 기능을 사용하지 않았을 때) 연속하는 섹터의 경우 한번의 접근 요청으로 데이터를 읽을 수 있으며, 여러 번 접근하는 방식보다 빠르다. 시퀀셜 접근한 경우 I/O 사이즈가 증가함에 따라 스루풋이 증가한다. 랜덤으로 접근한 경우 I/O 사이즈가 증가함에 따라 스루풋이 증가한다. 시퀀셜 접근은 한 번의 접근으로 처리할 수 있기 때문에 랜덤 접근 보다 빠르다. 블록 장치 계층 블록 장치는 디바이스 파일(/..
-
실습과 그림으로 배우는 리눅스 구조 6장 정리운영체제 2022. 11. 6. 21:15
메모리 계층 메모리 장치의 종류 레지스터 캐시 메모리 메모리 저장 장치 위로 올라갈수록 용량이 작고, 비싸며, 빠르다. 캐시 메모리 CPU에서 메모리에 접근하는 시간이 길기 때문에, CPU 입장에서는 레이턴시가 발생한다. 캐시 메모리 처리는 커널을 통하지 않고, 하드웨어 단에서 처리된다. 캐시 메모리를 이용해서 메모리 접근 시간을 고속화 한다. 캐시 메모리는 일반적으로 CPU에 내장되어 있지만, 외부에 있는 경우도 있다. 캐시 메모리의 값이 변경되는 경우 캐시 메모리의 엔트리가 변경되면 더티 플래그가 표시된다. 더티 플래그가 기록된 데이터는 나중에 백그라운드 처리로 메모리에 다시 기록된다. 캐시 메모리가 가득 찬 경우 캐시 메모리에 존재하지 않는 데이터를 추가로 읽으면, 기존의 캐시 메모리 중 하나를 파..
-
실습과 그림으로 배우는 리눅스 구조 1장 정리운영체제 2022. 10. 29. 11:21
정리 리눅스의 중요한 역할은 디바이스를 조작하는 일이다. 디바이스 드라이버를 통해서만 프로세스가 디바이스를 조작할 수 있다. 리눅스는 디바이스의 종류가 같으면 같은 인터페이스로 조작한다. CPU는 프로세스가 직접 하드웨어에 접근하는 것을 차단한다. CPU에는 사용자 모드와 커널 모드가 있다. 사용자 모드로 처리하는 경우 일반적인 프로세스 처리 커널 모드로 처리하는 경우 디바이스 드라이버에 접근하는 경우 프로세스 관리 시스템 프로세스 스케줄링 메모리 관리 시스템 프로세스가 커널 모드의 기능을 사용하기 위해서는 시스템 콜을 통해 커널에 요청을 한다. 커널은 CPU, 메모리 등의 자원을 관리하며, 각 프로세스에 적절히 분배한다. 프로세스 스케줄러는 CPU 자원을 관리한다. 메모리 관리 시스템은 메모리 자원을 ..