-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
bab0628
commit 133fd11
Showing
2 changed files
with
74 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
--- | ||
layout: post | ||
comments: true | ||
title: "vmstat 모니터링" | ||
description: "vmstat 결과에 시간과 메모리 실 사용량(%)을 표시 및 파일 저장" | ||
img: powershell_title.jpg | ||
date: 2023-11-17 10:00:00 +0900 | ||
last_modified_at: 2023-11-17 10:00:00 +0900 | ||
tags: [command-line, bash, vmstat, awk] # add tag | ||
related: command-line | ||
categories: tools | ||
--- | ||
|
||
**vmstat** 으로 리눅스 시트템 점유자원을 모니터링할 때 보기 편하게 시간정보와 실 메모리 사용량(%)을 표시하고 파일에 저장하는 방법을 알아본다. | ||
|
||
<!--more--> | ||
|
||
## vmstat | ||
|
||
리눅스 시스템 부하를 모니터링할 때 **vmstat** 의 기본 출력 포맷은 아래와 같다. | ||
|
||
``` | ||
❯ vmstat 1 | ||
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- | ||
r b swpd free buff cache si so bi bo in cs us sy id wa st | ||
0 0 0 6672532 29376 476016 0 0 86 8 14 19 0 0 100 0 0 | ||
``` | ||
|
||
## vmstat 시간 출력 | ||
|
||
vmstat 에는 timestamp를 표시할 수 있는 옵션이 있고 아래와 같이 제의 뒤 컬럼에 시간을 표시한다. | ||
|
||
> -t, --timestamp | ||
> Append timestamp to each line | ||
``` | ||
❯ vmstat -t 1 | ||
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- -----timestamp----- | ||
r b swpd free buff cache si so bi bo in cs us sy id wa st KST | ||
0 0 0 6638512 31392 485624 0 0 8 1 2 7 0 0 100 0 0 2023-11-17 22:32:30 | ||
0 0 0 6638288 31392 485624 0 0 0 0 8 94 0 0 100 0 0 2023-11-17 22:32:31 | ||
``` | ||
|
||
|
||
## 출력 포맷 수정 | ||
|
||
기본 출력 포맷은 시간이 제일 뒤에 표시되어 로그기록용으로 쓸 때 불편하여 제일 앞쪽에 추가해본다. | ||
|
||
**vmstat**의 출력을 **awk**를 이용해서 파싱하고 제일 앞에 **strftime("%Y-%m-%d %H:%M:%S")** 으로 시간 포맷을 만들어 제일 앞에 추가한다. | ||
|
||
리눅스에서 프로세스가 쓸 수 있는 메모리는 free+buff+cache 이라 **(memoryTotal-$4-$3-$5)/7805212*100** 수식으로 실제 메모리 값을 표시한다. | ||
|
||
메모리 값은 아래의 명령어로 확인할 수 있다. | ||
|
||
``` | ||
❯ cat /proc/meminfo | grep MemTotal | ||
MemTotal: 7805252 kB | ||
``` | ||
|
||
vmstat의 결과는 아래와 같이 표시된다. | ||
파일에 쓰면서 화면에서 표시하기 위해 **| tee logfilename.log** 와 같이 tee 명령어를 사용한다. | ||
|
||
``` | ||
❯ vmstat 1 | awk '{printf ( "%s %s %0.2f%\n", strftime("%Y-%m-%d %H:%M:%S"), $0, (7805212-$4-$3-$5)/7805212*100); fflush()}' | tee vmstat.log | ||
2023-11-17 22:04:05 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- 100.00% | ||
2023-11-17 22:04:05 r b swpd free buff cache si so bi bo in cs us sy id wa st 100.00% | ||
2023-11-17 22:04:05 2 0 0 6641580 31228 485612 0 0 16 2 4 9 0 0 100 0 0 14.51% | ||
2023-11-17 22:04:06 0 0 0 6641588 31228 485612 0 0 0 0 23 120 0 0 100 0 0 14.51% | ||
2023-11-17 22:04:07 0 0 0 6641588 31228 485612 0 0 0 0 8 95 0 0 100 0 0 14.51% | ||
``` | ||
|
||
## 참고 | ||
|
||
- [24 iostat, vmstat and mpstat Examples](https://www.thegeekstuff.com/2011/07/iostat-vmstat-mpstat-examples/){:target="_blank"} |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.