C 언어

C Language : 리눅스와 4G Board에서 CPU,MEM process를 OAM하여 출력하는 코드 및 관리

Managemnet S/W saehyeong.woo 2022. 7. 14. 16:22
SMALL

환경: Linux, C, Sh


1. 리눅스와 4G Board 내에서 CPU, MEM 출력방법

Linux
4G Board

1. (1) cat /proc/stat 명령어로 출력가능

Cpu    user    system    nice    idle    wait    hi    si    zero
CPU: CPU core의 숫자.
User: user mode에서의 실행 시간
System: system mode에서의 실행 시간
Nice: 낮은 권한의 user mode에서의 실행 시간
Idle: I/O완료가 아닌 대기 시
Wait: I/O 완료 대기 시간
Hi: Hard Interrupt(IRQ)
Si: Soft Interrupt(SoftIRQ)
Zero: 끝

1. (2) top 명령어로 출력 가능

Linux
4G Board

  • PID
    • PID는 프로세스 ID이며 프로세스를 구분하기 위한 겹치지 않는 고유한 값입니다.
  •  USER
    • 해당 프로세스를 실행한 USER 이름 또는 효과를 받는 USER의 이름입니다.
  • PR & NI
    • PR : 커널에 의해서 스케줄링되는 우선순위입니다.
    • NI : PR에 영향을 주는 nice라는 값입니다.
  • VIRT, RES, SHR, % MEM
    • 해당 필드들은 프로세스의 메모리와 관련 있습니다.
    • VIRT : 프로세스가 소비하고 있는 총메모리입니다. 프로그램이 실행 중인 코드, heap, stack과 같은 메모리, IO buffer 메모리를 포함합니다.
    • RES : RAM에서 사용 중인 메모리의 크기를 나타냅니다.
    • SHR : 다른 프로세스와의 공유 메모리(Shared Memory)를 나타냅니다.
    • % MEM : RAM에서 RES가 차지하는 비율을 나타냅니다.
  • S : 프로세스의 현재 상태를 나타냅니다.
  • TIME+ : 프로세스가 사용한 토탈 CPU 시간
  • COMMAND : 해당 프로세스를 실행한 커맨드를 나타냅니다.

 

1.(3) ps aux로 출력 가능

Linux
4G Board

*4G Board에서는 버전이 달라 실행이 되지 않기에 top 또는 cat /proc/stat명령어로 실행해야 함


2. 리눅스와 4G Board에서 CPU, MEM process를 OAM 하여 출력하는 코드 및 관리 

cpu와 mem의 사용량과 일정 용량이 넘어가면 reboot 하는 명령어와 어디 부분이 가장 많이 사용됐는지 TOP7을 출력하게 하는 OAM

==cpu2.c==

1

2.(1) 시작 구조체 선언

2

2.(2) 프로세스 열기

3

2.(3) 프로세스 정보 저장

4

2.(4) 오류 있는지 확인

5

2.(5) 각각의 정보를 보여주고 일정 % 넘어가면 reboot

6
7

2.(6) 각각의 정보를 보여주고 일정 %넘어가면 reboot


3. 실제 출력 화면

*4G 보드 기준으로 코딩했기에 Linux화면에서는 실행시키지 않겠습니다.

처음으로 작성한 cpu2.c파일을 cpu3로 컴파일해줍니다. 하얀 부분은 회사 사내 보안이기에 가렸습니다.

3.(1)WinSCP를 통해 4G Board에 /mnt/flash/OAM경로에 파일을 보내줍니다.

3.(2) 옮겨진 것을 확인할 수 있습니다.

3.(3) 컴파일 실행을 통해 결과를 확입니다.

1. CPU_INFO
2.MEMORY INFO, MEMORY CAL USAGE
3. CPU USE TOP 7, MEMORY USE TOP 7

3.(4) 프로그램 실행 후 모든 정보를 프로그램에 저장

 

3.(5) 사진에서 보듯이 각각의 정보가 txt 파일에 저장된 것을 확인 가능하다.


4. CPU 또는 MEM이 Reboot 되는 OAM

4.(1) Total Usage:가 124.19%로 80%가 넘어서자 날짜도 시간도 안 맞으며 reboot이 실행되는 것을 확인할 수 있다.

4.(2) Reboot이 언제 되는지 확인하기 위해 Reboot.txt 파일에 저장하게 하였다.

Shutdow.txt가 추가됨

4.(3) Sutdown.txt를 보면 날짜와 시간에 Shtdown이 되었다고 기록이 됩니다.

4.(4) CPU_INFO에서도 124.19% 가 넘었다고 기록이 됩니다.


4 Day 간 CPU와 Memory의 사용량을 파악하고 기록하며, 관리하며 어떤 프로세스의 사용량이 큰지 출력하며 Reboot까지 실행시킬 수 있는 코드를 제작하였습니다. 감사합니다.

LIST