달력

01

« 2018/01 »

  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
2012.11.22 11:08

솔라리스 메모리 관리 [펌] I.lib()/I.lib(Unix)2012.11.22 11:08

.. .. ..

[펌] : http://superkkt.com/21?TSSESSION=34642278462d6fb17b9095d9568b2d13

 

솔라리스는 리얼 메모리와 스왑 디바이스를 합친 크기를 메모리로 사용합니다. 예를들어 리얼 메모리가 1기가이고 스왑 디바이스 크기가 1기가라면 전체 메모리는 2기가 입니다.

메모리 할당이 어떻게 이루어지는 보기위해 아래 소스를 컴파일 해서 테스트를 해보겠습니다. 이 코드는 메모리 20메가를 할당 받고아무키나 누르면 할당 받은 메모리를 0으로 초기화 시킵니다. 다시 아무키나 누르면 할당받은 메모리를 반환하고 종료합니다.

# cat test.c
main()
{
char *a;

a = malloc(20485760); // 20메가 할당
getchar(); // 키입력 기다림
memset(a, "0", 20485760); // 할당받은 메모리 0으로 초기화
getchar(); // 키입력 기다림
free(a); // 메모리 반환
}

# gcc -o test test.c


그리고 다른 창을 하나 띄우고 vmstat 1을 실행하세요..

# vmstat 1
kthr memory page disk faults cpu
r b w swap free re mf pi po fr de sr s2 s3 s4 s5 in sy cs us sy id
0 0 0 5846976 1870760 0 0 0 0 0 0 0 0 0 0 0 727 39 65 0 0 100
0 0 0 5846976 1870760 0 65 0 0 0 0 0 0 0 0 0 733 166 103 0 0 100
0 0 0 5846976 1870760 0 0 0 0 0 0 0 0 0 0 0 726 64 78 0 0 100
0 0 0 5846976 1870760 8 80 0 0 0 0 0 0 0 0 0 742 271 145 0 0 100
0 0 0 5846976 1870760 6 70 0 0 0 0 0 0 0 0 0 727 170 104 0 0 100


.
.
.


위에 결과를 보면 free size가 스왑은 5846메가, 리얼 메모리는 1870메가 입니다. 이제 다시 원래 창으로 돌아가서 방금 컴파일한 test 를 실행합니다.

# ./test


다시 vmstat 창을 보면 리얼 메모리에는 변화가 없고 스왑 사이즈만 20메가 줄어들었습니다.

0 0 0 5826864 1870648 0 0 0 0 0 0 0 0 0 0 0 719 39 72 0 0 100
0 0 0 5826864 1870648 0 0 0 0 0 0 0 0 0 0 0 724 41 68 0 0 100
0 0 0 5826864 1870648 0 0 0 0 0 0 0 0 0 0 0 727 49 80 0 0 100
0 0 0 5826864 1870648 0 0 0 0 0 0 0 0 0 0 0 726 39 69 0 0 100
0 0 0 5826864 1870648 0 0 0 0 0 0 0 0 0 0 0 719 39 71 0 0 100


다시 원래 창에서 엔터를 한번 치면..

0 0 0 5826480 1850112 0 1818 0 0 0 0 0 0 0 0 0 731 42 92 2 2 96
0 0 0 5826480 1850112 0 0 0 0 0 0 0 0 0 0 0 727 74 71 0 0 100
0 0 0 5826480 1850112 0 0 0 0 0 0 0 0 0 0 0 725 50 72 0 0 100
0 0 0 5826480 1850112 0 0 0 0 0 0 0 0 0 0 0 721 39 67 0 0 100



리얼 메모리도 20메가 줄어듭니다. 원래 창에서 엔터를 한번 더 쳐서 메모리를 반환하고 프로그램을 종료하면 스왑과 리얼 메모리 사이즈는 원래대로 돌아옵니다.

프로그램이 메모리를 할당 받으면 우선 스왑이 줄어들고 실제로 메모리를 사용할때 리얼 메모리가 줄어드는걸 위에서 확인했습니다.그럼 스왑이 20메가 줄어들때 실제로 스왑 디바이스를 20메가 사용한걸까요? 아닙니다. 실제로 스왑 디바이스를 사용하지않았습니다.

지금 테스트를 하고 있는 시스템은 리얼 메모리 2기가, 스왑 4기가인 시스템 입니다. 합치면 6기가죠.. 위에 vmstat의swap 부분의 수치를 보세요.. free가 5826메가로 나오죠.. 이건 swap이 스왑 디바이스만을 나타내는게 아니라 리얼메모리와 스왑을 합친 크기를 나타내는걸 보여줍니다.


그럼 이제 프로그램이 메모리를 20메가 할당할때 실제로 스왑 디바이스가 사용되지 않았다는걸 확인해 보겠습니다.

test 프로그램을 실행시키기 전에 swap -l을 실행해 보세요..

# swap -l
swapfile dev swaplo blocks free
/dev/dsk/c0t0d0s1 118,25 16 8392048 8392048

결과를 보면 스왑 디바이스의 크기가 8392048 블럭(1블럭=512byte)인데 free도 같은 값을 가지는걸 보면 하나도사용을 안한걸 알 수 있습니다. 이제 다른 창에서 test 프로그램을 실행시키고 다시 swap -l을 해보세요..

# swap -l
swapfile dev swaplo blocks free
/dev/dsk/c0t0d0s1 118,25 16 8392048 8392048

보시다시피 아무 변화가 없습니다. 분명히 테스트 프로그램은 메모리 20메가를 할당 받았고 vmstat에서는 swap이 20메가 줄었는데.. 실제 스왑 디바이스의 크기에는 변화가 없습니다.

그럼 언제 스왑 디바이스를 쓸까요? 잘 아시겠지만 리얼 메모리가 모두 소진되기 직전에 사용이 됩니다. 이 시스템은 리얼 메모리가2기가니까 2기가만큼 메모리를 사용하면 그 다음부터 할당되는 메모리는 스왑 디바이스를 사용하겠죠.. 이걸 확인하기 위해서/tmp 디렉토리를 사용하겠습니다.

솔라리스에서 /tmp = 메모리 입니다. /tmp에 파일을 만들면 메모리에 파일을 만드는 겁니다. 그래서 df -k에서 /tmp의 available size가 vmstat의 swap과 거의 같은 값을 가집니다.

# pwd
/tmp

# df -k /tmp
Filesystem kbytes used avail capacity Mounted on
swap 5825016 0 5825016 0% /tmp

# vmstat 1
0 0 0 5818536 1888328 0 9 0 0 0 0 0 0 0 0 0 732 61 73 0 0 100
0 0 0 5818536 1888328 0 0 0 0 0 0 0 0 0 0 0 725 41 73 0 0 100


# mkfile 1g test.zip

# df -k /tmp
Filesystem kbytes used avail capacity Mounted on
swap 5817752 1048576 4769176 19% /tmp

# vmstat 1
0 0 0 4771072 840880 0 9 0 0 0 0 0 0 0 0 0 727 51 72 0 0 100
0 0 0 4771072 840880 0 0 0 0 0 0 0 0 0 0 0 726 50 77 0 0 100


/tmp에 test.zip이라는 1기가 사이즈의 파일을 만드니 메모리가 1기가 사용되었죠.. 그럼 스왑 디바이스의 상태를 보겠습니다.

# swap -l
swapfile dev swaplo blocks free
/dev/dsk/c0t0d0s1 118,25 16 8392048 8392048

아직 변화가 없습니다. 메모리 1기가를 사용해도 리얼 메모리의 여유가 840메가 정도 있기 때문이죠.. 그럼 1.5기가의 파일을더 만들어 보겠습니다. 예상대로라면 840메가의 리얼 메모리를 사용하고 모자라는 부분은 스왑 디바이스를 사용하겠죠..

# mkfile 1500m test2.zip

이제 시스템이 무지하게 느려집니다.. 왜냐면 리얼 메모리가 모두 소진되었으니 리얼 메모리 확보를 위해 사용하지 않는 부분은 모두스왑 디바이스로 페이지 아웃 시켜버리기 위해서죠.. 엄창난 페이징이 발생하기 때문에 거의 다운 상태에 가깝게 느려집니다.

그리고 다시 살아났을때 vmstat의 결과 입니다.

# vmstat 1
kthr memory page disk faults cpu
r b w swap free re mf pi po fr de sr s2 s3 s4 s5 in sy cs us sy id
0 0 34 3242368 1904616 7 11 0 0 0 0 0 0 0 0 0 721 60 83 0 0 100
0 0 34 3242368 1904616 0 0 0 0 0 0 0 0 0 0 0 722 41 69 0 0 100
0 0 34 3242368 1904616 0 0 0 0 0 0 0 0 0 0 0 727 49 75 0 0 100


swap은 정확하게 1.5기가 줄었는데 오히려 리얼 메모리는 많이 올라갔습니다. 이게 페이징의 결과 입니다. 메모리에서 사용되지않는 부분은 모두 스왑 디바이스로 보내버리고 리얼 메모리를 확보를 한거죠.. 이제 스왑 디바이스의 상태를 보겠습니다.

# swap -l
swapfile dev swaplo blocks free
/dev/dsk/c0t0d0s1 118,25 16 8392048 3173840

환산해보면 2.6기가 정도 스왑 디바이스를 사용 했습니다. 실제로는 test2.zip을 만들면서 700메가의 스왑만 필요했지만 메모리 페이징을 했기 때문에 많은 스왑 공간을 사용한겁니다.


icon_gima25.gif 엄청 기네요.. 두서 없이 적었는데.. 결론은..

프로그램이 메모리를 사용하면 swap을 사용한걸로 나오는데 이 swap이 실제 스왑 디바이스를 의미하는게 아니라 리얼 메모리 +스왑 디바이스를 의미하는 겁니다. 그래서 swap이 사용되었다고 해서 무조건 스왑 디바이스가 사용된거라고 볼 수는 없는겁니다.리얼 메모리가 모두 소진되었을때만 실제 스왑 디바이스가 사용되는 겁니다.


리눅스와의 차이점은 리눅스는 리얼 메모리와 스왑은 완전 별개의 것으로 보인다. 그러나 솔라리스는 이 두개를 하나의 개념으로 보여준다.

 

.
Posted by .07274.

댓글을 달아 주세요

  1. Favicon of http://www.joyalba.com BlogIcon 알바 . 2017.11.30 17:52 신고  댓글주소  수정/삭제  댓글쓰기

    감사합니당

2012.11.21 16:42

sunos 점검 메뉴얼 (펌) I.lib()/I.lib(Unix)2012.11.21 16:42

.. .. ..

[펌] : http://blog.naver.com/kw9987?Redirect=Log&logNo=60172079915

 

① 점검일 실행한 달을 기입하면 됨

② 고객명 : 점검을 한 고객사명

ex) OO청

③ 점검일 : 점검을 한 날짜를 년도와 함께 기입

ex) 2012년 9월 25일

④ 모델 / 서비스 : 점검을 한 시스템명을 기제하고 서비스명을 기입한다

ex) Sun Fire 3800 / 웹서버

⑤ hostname을 입력한다

ex) showrev 명령을 사용하여 확인할수도 있고, hostname 명령을 사용하여서도 확인가능하다

# showrev

Hostname: SONGMU

Hostid: 80a3b44a

Release: 5.7

Kernel architecture: sun4u

Application architecture: sparc

Hardware provider: Sun_Microsystems

Kernel version: SunOS 5.7 Generic 106541-24 February 2003

⑥ hostid를 입력한다

ex) showrev 명령을 사용하여 확인할수도 있고, hostid 명령을 사용하여서도 확인가능하다

# showrev

Hostname: SONGMU

Hostid: 80a3b44a

Release: 5.7

Kernel architecture: sun4u

Application architecture: sparc

Hardware provider: Sun_Microsystems

Kernel version: SunOS 5.7 Generic 106541-24 February 2003

⑦ kernel version을 입력한다

ex) showrev 명령을 사용하여 확인할수도 있고, uname -a 명령을 사용하여서도 확인가능하다

# showrev

Hostname: SONGMU

Hostid: 80a3b44a

Release: 5.7

Kernel architecture: sun4u

Application architecture: sparc

Hardware provider: Sun_Microsystems

Kernel version: SunOS 5.7 Generic 106541-24 February 2003

⑧ OS version을 입력한다

ex) showrev 명령을 사용하여 확인할수도 있고, uname -a 명령을 사용하여서도 확인가능하다

# showrev

Hostname: SONGMU

Hostid: 80a3b44a

Release: 5.7

Kernel architecture: sun4u

Application architecture: sparc

Hardware provider: Sun_Microsystems

Kernel version: SunOS 5.7 Generic 106541-24 February 2003

※ OS version같은 경우 SunOS 5.X(Solaris) 버젼과 SunOS 2.X(SunOS) 버젼으로 나뉜다

⑨ OBP Version 버전을 입력한다.

ex) /usr/platform/'uname -i'/sbin/prtdiag -v 명령을 사용하여 확인할수 있다

# cd usr/pl*/sun4u/sbin

# ./prtdiag -v

System Configuration: Sun Microsystems sun4u 5-slot Sun Enterprise E3500

System clock frequency: 84 MHz

Memory size: 1024Mb

..........................(중략)

Brd FHC AC SBus0 SBus1 PCI0 PCI1 FEPS Board Type Attributes

--- --- -- ----- ----- ---- ---- ---- ---------- ----------

1 1 5 1 1 22 Dual-SBus-SOC+ 100MHz Capable

3 1 5 CPU 100MHz Capable

System Board PROM revisions:

----------------------------

Board 1: FCODE 1.8.29 2001/06/18 17:26 iPOST 3.4.29 2001/06/18 17:49

Board 3: OBP 3.2.29 2001/06/18 17:28 POST 3.9.29 2001/06/18 17:50

⑩ Disk 인식확인

ex) Format 명령을 이용하여 확인할수 있다. (root 계정으로 실행하여야 한다.)

※ 어레이가 연결되어 있는 경우에는 SUN 시스템은 거이 vxvm을 사용한다.

이때에는 vxdisk list 라는 명령을 통해서 베리타스볼륨매니저의 디스크를 확인할수 있다.

# format

Searching for disks...done

c2t5d0: configured with capacity of 16.86GB

AVAILABLE DISK SELECTIONS:

0. c0t0d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133>

/sbus@2,0/SUNW,socal@d,10000/sf@0,0/ssd@w21000020371403b0,0

1. c0t1d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133>

/sbus@2,0/SUNW,socal@d,10000/sf@0,0/ssd@w2100002037164761,0

2. c0t2d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133>

/sbus@2,0/SUNW,socal@d,10000/sf@0,0/ssd@w210000203713f4a3,0

3. c0t3d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133>

/sbus@2,0/SUNW,socal@d,10000/sf@0,0/ssd@w210000203714040d,0

4. c2t4d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133>

/sbus@2,0/SUNW,socal@d,10000/sf@1,0/ssd@w21000020371402f0,0

5. c2t5d0 <SUN18G cyl 7506 alt 2 hd 19 sec 248>

/sbus@2,0/SUNW,socal@d,10000/sf@1,0/ssd@w21000020376bb49f,0

6. c2t6d0 <SEAGATE-ST318304FC-0003 cyl 14068 alt 2 hd 6 sec 426>

/sbus@2,0/SUNW,socal@d,10000/sf@1,0/ssd@w2100002037c3c4ea,0

Specify disk (enter its number):

⑪ CPU 확인하기

ex) /usr/platform/'uname -i'/sbin/prtdiag -v 명령을 사용하여 확인할수 있다.

psrinfo 명령을 이용하여 프로세서의 상태를 확인하는 명령도 있다.

# cd usr/pl*/sun4u/sbin

# ./prtdiag -v

System Configuration: Sun Microsystems sun4u 5-slot Sun Enterprise E3500

System clock frequency: 84 MHz

Memory size: 1024Mb

========================= CPUs =========================

Run Ecache CPU CPU

Brd CPU Module MHz MB Impl. Mask

--- ------ ------- ----- ------ ----- ----

3 6 0 336 4.0 US-II 2.0

3 7 1 336 4.0 US-II 2.0

========================= Memory =========================

Intrlv. Intrlv.

Brd Bank MB Status Condition Speed Factor With

--- ----- ---- ------- ---------- ----- ------- -------

3 0 1024 Active OK 60ns 1-way

.........................(생략)

⑫ memory 확인하기

ex) /usr/platform/'uname -i'/sbin/prtdiag -v 명령을 사용하여 확인할수 있다.

meminfo 명령을 이용하여 프로세서의 상태를 확인하는 명령도 있다. (없는경우도 있음)

# cd usr/pl*/sun4u/sbin

# ./prtdiag -v

System Configuration: Sun Microsystems sun4u 5-slot Sun Enterprise E3500

System clock frequency: 84 MHz

Memory size: 1024Mb

========================= CPUs =========================

Run Ecache CPU CPU

Brd CPU Module MHz MB Impl. Mask

--- ------ ------- ----- ------ ----- ----

3 6 0 336 4.0 US-II 2.0

3 7 1 336 4.0 US-II 2.0

========================= Memory =========================

Intrlv. Intrlv.

Brd Bank MB Status Condition Speed Factor With

--- ----- ---- ------- ---------- ----- ------- -------

3 0 1024 Active OK 60ns 1-way

========================= IO Cards =========================

Bus Freq

Brd Type MHz Slot Name Model

--- ---- ---- ---- ------------------------ ----------------------

1 SBus 25 2 cgsix SUNW,501-2325

1 SBus 25 3 SUNW,hme

1 SBus 25 3 SUNW,fas/sd (block)

1 SBus 25 13 SUNW,socal/sf (scsi-3) 501-3060

.........................(생략)

⑬ 각 Board 부 LED 이상유무

ex) 시스템에서 직접 육안점검을 통하여 확인할수 있음

dmesg 를 이용한 시스템 로그 점검

(시스템에 이상이 있을 경우 “/var/crash/"uname -i"/"에 UNIX파일이나 CORE 파일을 참조하여 core덤프를 분석하면 된다.)

ex) Fail이나 Warring이 있는지 없는지 확인

# dmesg

Thu Jun 21 14:49:13 KST 2007

Jun 1 17:19:09 SONGMU inetd[170]: telnet[11257] from 192.168.102.252 3226

Jun 2 01:05:40 SONGMU inetd[170]: ftp[13025] from 192.168.100.75 51456

Jun 2 04:48:47 SONGMU inetd[170]: ftp[13182] from 192.168.102.192 2845

Jun 2 04:57:06 SONGMU inetd[170]: ftp[13187] from 192.168.100.167 51886

Jun 2 04:57:06 SONGMU unix: WARNING: /sbus@2,0/SUNW,socal@d,10000/sf@1,0/ssd@w21000020371402f0,0 (ssd2):

Jun 2 04:57:06 SONGMU Error for Command: write(10) Error Level: Retryable

Jun 2 04:57:06 SONGMU unix: Requested Block: 9656343 Error Block: 9656343

Jun 2 04:57:06 SONGMU unix: Vendor: SEAGATE Serial Number: 9831X08318

Jun 2 04:57:06 SONGMU unix: Sense Key: Aborted Command

Jun 2 04:57:06 SONGMU unix: ASC: 0x47 (scsi parity error), ASCQ: 0x0, FRU: 0x3

Jun 2 04:57:07 SONGMU inetd[170]: ftp[13188] from 192.168.100.167 51888

Jun 6 04:56:52 SONGMU inetd[170]: ftp[8733] from 192.168.100.167 62570

Jun 6 04:56:54 SONGMU inetd[170]: ftp[8734] from 192.168.100.167 62573

Jun 6 04:56:55 SONGMU unix: WARNING: /sbus@2,0/SUNW,socal@d,10000/sf@1,0/ssd@w21000020371402f0,0 (ssd2):

Jun 6 04:56:55 SONGMU Error for Command: write(10) Error Level: Retryable

Jun 6 04:56:55 SONGMU unix: Requested Block: 9607943 Error Block: 9607943

Jun 6 04:56:55 SONGMU unix: Vendor: SEAGATE Serial Number: 9831X08318

Jun 6 04:56:55 SONGMU unix: Sense Key: Aborted Command

Jun 6 04:56:55 SONGMU unix: ASC: 0x47 (scsi parity error), ASCQ: 0x0, FRU: 0x3

Jun 16 04:56:28 SONGMU unix: Requested Block: 8541511 Error Block: 8541511

Jun 16 04:56:28 SONGMU unix: Vendor: SEAGATE Serial Number: 9831X08318

Jun 16 04:56:28 SONGMU unix: Sense Key: Aborted Command

Jun 16 04:56:28 SONGMU unix: ASC: 0x47 (scsi parity error), ASCQ: 0x0, FRU: 0x3


⑮ "/var/adm/"의 시스템 로그 점검

ex) "messages", "messages.X", "syslog" 등의 파일

(시스템에 이상이 있을 경우 “/var/crash/"uname -i"/"에 UNIX파일이나 CORE 파일을 참조하여 core덤프를 분석하면 된다.)

⑯ Disk의 사용량 점검

ex) df -k 명령어를 사용하여 점검할수 있다 (용량은 Kbytes로 나오므로 M로 변환하여 기입한다)

# df -k

Filesystem kbytes used avail capacity Mounted on

/proc 0 0 0 0% /proc

/dev/dsk/c0t0d0s0 3009594 2202610 746793 75% /

fd 0 0 0 0% /dev/fd

/dev/dsk/c0t0d0s4 3663057 2202896 1423531 61% /oracle

swap 2182024 312 2181712 1% /tmp

/dev/dsk/c0t1d0s6 2055705 1687659 306375 85% /data

/dev/dsk/c0t1d0s7 6638682 4583259 1989037 70% /data1

/dev/dsk/c0t2d0s7 8705501 3698519 4919927 43% /backup1

/dev/dsk/c0t3d0s7 8705501 5881960 2736486 69% /stat1

/dev/dsk/c2t4d0s5 4131384 3116618 973453 77% /user1

/dev/dsk/c2t4d0s6 2055705 331120 1662914 17% /user2

/dev/dsk/c2t4d0s7 2494025 978683 1465462 41% /user3

⑰ 네트워크상태 확인

ex) ifconfig -a 명령어를 사용하여 아이피와 NIC의 컨트롤러명을 확인할수 있다.

※ 네트워크 카드의 인터페이스명과 아이피를 확인할수 있다

# ifconfig -a

lo0: flags=849<UP,LOOPBACK,RUNNING,MULTICAST> mtu 8232

inet 127.0.0.1 netmask ff000000

hme0: flags=863<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST> mtu 1500

inet 192.168.100.40 netmask ffffff00 broadcast 192.168.100.255

ether 8:0:20:a3:b4:4a

※ 네트워크의 라우트정보를 확인할수 있다

# netstat -rn

Routing Table:

Destination Gateway Flags Ref Use Interface

-------------------- -------------------- ----- ----- ------ ---------

192.168.100.0 192.168.100.40 U 3 3492 hme0

224.0.0.0 192.168.100.40 U 3 0 hme0

default 192.168.100.11 UG 0 404

127.0.0.1 127.0.0.1 UH 05282056 lo0

※ 네트워크 카드의 패킷 손실량을 파악할수 있다.

# netstat -in

Name Mtu Net/Dest Address Ipkts Ierrs Opkts Oerrs Collis Queue

lo0 8232 127.0.0.0 127.0.0.1 5331877 0 5331877 0 0 0

hme0 1500 192.168.100.0 192.168.100.40 40794775 0 30438809 0 0 0

netstat -rn 명령을 이용하여 라우트정보 검색 / netsta -in 명령을 이용하여 에러패킷 검사

⑱ CPU의 사용량을 점검한다.

ex) sar 명령을 이용하여 확인할수 있다. (또는 top 명령을 이용하여서도 확인가능하다)

# sar 1 10

※ sar 명령을 1초 단위로 10번 실행시킨값의 평균값을 구하겠다는 의미이다

SunOS SONGMU 5.7 Generic_106541-24 sun4u 06/21/07

14:49:19 %usr %sys %wio %idle

14:49:20 4 0 0 96

14:49:21 0 0 0 100

14:49:22 9 3 2 86

14:49:23 16 6 0 78

14:49:24 50 9 0 42

14:49:25 46 10 1 42

14:49:26 14 3 0 83

14:49:27 0 0 0 100

14:49:28 5 4 2 89

14:49:29 3 2 0 95

Average 15 4 1 81

⑲ 메모리의 사용량을 점검한다.

ex) vmstat 명령을 이용하여 확인할수 있다. (또는 top 명령을 이용하여서도 확인가능하다)

# vmstat 1 10

※ vmstat 명령을 1초 단위로 10번 실행시킨값의 평균값을 구하겠다는 의미이다

procs memory page disk faults cpu

r b w swap free re mf pi po fr de sr s6 sd sd sd in sy cs us sy id

0 0 0 3696 10216 0 41 51 3 71 13872 39 0 2 2 0 455 1216 146 8 2 90

0 0 0 2163592 33424 0 6 0 0 0 12488 0 0 3 1 0 424 2096 110 10 2 88

0 0 0 2163592 33424 0 88 0 0 0 11240 0 0 0 0 0 412 393 98 0 2 98

0 0 0 2163592 33424 0 0 0 0 0 10120 0 0 0 4 0 425 200 112 0 0 100

0 0 0 2163592 33424 1 0 0 16 16 9112 0 0 2 1 0 437 2240 116 10 4 87

0 0 0 2163592 33424 0 0 0 0 0 8208 0 0 0 0 0 418 296 96 0 0 100

0 0 0 2163592 33424 0 0 0 0 0 7392 0 0 0 4 0 441 2207 125 11 3 86

0 0 0 2163592 33424 0 0 0 8 8 6656 0 0 2 1 0 416 232 106 0 1 99

0 0 0 2163592 33432 0 0 0 0 0 5992 0 0 0 0 0 417 2219 107 10 4 86

0 0 0 2163592 33432 0 0 0 0 0 5400 0 0 0 4 0 426 226 119 0 0 100

⑳ 디스크 / 시스템의 I/O 사용량을 점검한다.

ex) iostat 명령을 이용하여 확인할수 있다. (또는 top 명령을 이용하여서도 확인가능하다)

# iostat 1 10

※ iostat 명령을 1초 단위로 10번 실행시킨값의 평균값을 구하겠다는 의미이다

tty sd6 ssd0 ssd1 ssd2 cpu

tin tout kps tps serv kps tps serv kps tps serv kps tps serv us sy wt id

0 3 0 0 0 37 2 13 12 2 18 0 0 389 8 2 4 86

0 237 0 0 0 0 0 0 0 0 0 0 0 0 18 1 0 80

0 79 0 0 0 0 0 0 0 0 0 0 0 0 46 6 0 48

0 79 0 0 0 0 0 0 24 4 21 0 0 0 38 3 0 59

0 79 0 0 0 10 4 11 0 0 0 0 0 0 0 0 1 99

0 79 0 0 0 0 0 0 16 1 21 0 0 0 14 2 0 84

0 79 0 0 0 0 0 0 25 4 20 0 0 0 0 0 2 98

0 79 0 0 0 0 0 0 0 0 0 0 0 0 4 4 0 92

0 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100

0 80 0 0 0 0 0 0 25 4 19 0 0 0 8 2 2 88

[출처] SUN 점검메뉴얼|작성자 두리

.
Posted by .07274.

댓글을 달아 주세요

.. .. ..

# vi /etc/inet/services

기본 포트 21을 이름 바꾸고 ( 수정)
원하는 포트로 설정 (추가)

ftp2 21/tcp    <= 수정
ftp 11002/tcp  <= 추가




네트웍 데몬 재시작

/etc/init.d/inetsvc stop

/etc/init.d/inetsvc start

.
Posted by .07274.

댓글을 달아 주세요

.. .. ..

솔라리스에서 문자를 지울때 백스페이스(Backspace)를 사용하면 ^H 같은 문자열이 생성이 되어 불편헀다.

쉘상에
서 stty erase `tput kbs’ 를 입력하면 백스페이스키를 사용할수 있게 된다.

# stty erase `tput kbs`

쉘상에서 바로 되는 것도
좋지만 SSH 로그인시 자동으로 백스페이스를 사용해주기 위하여 profile 에 한줄 추가 해준다.

# echo ‘stty erase `tput kbs`’ >> /etc/profile
#
cat /etc/profile | grep stty
stty erase `tput kbs`

 

.
Posted by .07274.

댓글을 달아 주세요

.. .. ..

catalina.out 로그에 관해서 알아봤는데(로그를 1일 단위로 파일로 남기고 삭제하기) 여러가지 방법이 있는데
1. 외부 응용 프로그램 서버에 설치 필요.
2. Tomcat 서버의 실행파일 변경
3. Shell 스크립트 짜서 Crontab으로 실행.

1번은 외부 프로그램이라 설치하기 좀 그렇고
2번은 다른 사람들이 알아보기 어려운 곳을 변경하는거라 개인적으로 추천드리지 않습니다.
그래서 3번을 진행

#!/bin/sh

LOG_DIR=/usr/local/web/tomcat5/log
DATE=`/bin/date +%Y-%m-%d`

/bin/nice /bin/cp  $LOG_DIR/catalina.out $LOG_DIR/backup/catalina.out.$DATE
/bin/nice /bin/cat /dev/null > $LOG_DIR/catalina.out

#
# delete out-of-date catalina.log
#

#DELETE_DATE=`/bin/date +%Y-%m-%d --date '20 day ago'`
DELETE_DATE`/bin/date +Y-%m-%d --date '1 month ago'`

echo "$LOG_DIR/backup/catalina.out.$DELETE_DATE"

for file in $LOG_DIR/backup/*
do
        if [[ "$file" < "$LOG_DIR/backup/catalina.$DELETE_DATE.out" ]]
        then
                rm -f $file
        fi
done

# end of file


변경이 좀 필요하지만 저정도면...

ps : 리눅스 OS는 기본적으로 Log 관리해주는 프로그램이 있어서 다들 그것을 쓰는데 유닉스 서버에는 없어서  쉘 스크립트로 진행하게 되는점을 참고해 두시기 바랍니다.

.
Posted by .07274.

댓글을 달아 주세요

.. .. ..
find / -name "200*" -mtime +3 -exec rm "{}" \

/ : 최상위 경로 (/home/iasm...) 이런식으로 특정 경로를 지정해 줄수 있다.

"200*" : 검색할 파일 명 (*는 비스므레 한놈들 다 검색)

-atime (access): 열어본 시간
-ctime (changed) 파일 정보가 변경된 시간
-mtime (modified) 파일의 내용이 변경된 시간.
-mmin +5 -mmin -10 : 6~9분 사이에 수정된 내용을 찾는다.

+3 : 수정된지 최저 3일에서 3,4,5.... 오래전 까지
3 : 정확히 3일전
-3 : 최근 3일간

-exec rm "{}" \ : 검색된 결과와 연계하여 명령을 내린다.(rm은 삭제 명령)

댓글은? 그냥가게??
.
Posted by .07274.

댓글을 달아 주세요

  1. Favicon of http://a07274.tistory.com BlogIcon .07274. 2012.02.01 16:52 신고  댓글주소  수정/삭제  댓글쓰기

    find / -name "200*" -mtime +3 -exec rm "{}" \
    한후에 마지막에 꼭 ; 넣어주어야 되네 ;;;;

  2. jh 2012.07.25 12:33 신고  댓글주소  수정/삭제  댓글쓰기

    잘보고갑니다. ㅎ

  3. Favicon of http://2705.jasonjordans.com/nikefree.php BlogIcon nike free run 2013.07.23 22:07 신고  댓글주소  수정/삭제  댓글쓰기

    눈을 감아봐 입가에 미소가 떠오르면 네가 사랑하는 그 사람이 널 사랑하고 있는거야.

.. .. ..

엄청난 삽질끝에 알아낸 방법 입니다.

구글링이나 네이년에서 찾아온 방법대로 했다가 개피쓰고 알아낸 결과 입니다.

iptables란?
뭔지도 모르면서 찾는 사람은 없겠죠. 방화벽 설정이라 쉽게 생각합니다.

iptables List 보기.
iptables -L    <-- 이렇게 백년을 쳐도 안나옵니다.
/etc/init.d/iptables status   <-- 이렇게 쳐야 나옵니다.

iptables 에 포트 추가하기.
vi /etc/sysconfig/iptables 를 해서 파일을 열어보면 현재 설정된 정보들을 볼수 있다.
그곳에 추가를 해주면 된다
ex)  -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 9980-j ACCEPT

설정값 저장하기.
이 부분에서 구글링과 네이년에게 욕을 했던 부분이 거진 대부분 글들은
iptables save를 하라고 나온다
위 명령어를 치면 아래와 같이 나온다.

방화벽 규칙을 /etc/sysconfig/iptables에 저장 중:           [  OK  ]

글을 잘읽어본다. 서버에 설정된 방화벽 규칙을 좀전에 vi로 port를 저장한 파일에 덮어쓴다는 이야기 아닌가...
( 필자는 이부분 잘 읽지도 않고 뒤에 OK만 봤다가 낭패.....)

백날 save 해봐라 저장되나.... 저때는 iptables를 stop 하고 start를 하면 vi로 입력한 포트가 같이 열리며 올라가게 된다.

이것도 모르고 헤맨걸 생각하니.....
댓글은?? 그냥가게??

.
Posted by .07274.

댓글을 달아 주세요

  1. 초짜리눅서 2011.08.16 06:54 신고  댓글주소  수정/삭제  댓글쓰기

    아이고 고생한 흔적이 느껴지네요.^^
    저도 열심히 삽질중이랍니다.
    글 재밌게 잘봤습니당^^

  2. 유니 2011.08.24 17:04 신고  댓글주소  수정/삭제  댓글쓰기

    zzzzzzz
    잘 봤습니다.

  3. Favicon of http://www.naver.com BlogIcon 네이년 2012.12.26 17:44 신고  댓글주소  수정/삭제  댓글쓰기

    댓글은?? 그냥가게?? 블로그도 얼마든지 '인터렉티브'하군요. ^^ 고생 많으셨습니다.
    리눅스 Cent OS, SSH 쉘창에서 [root@localhost ~] # iptables -L 하니 iptables현재 설정값이 보이던데요.
    iptables설정을 변경하면 재시작해야 설정값이 반영되는 것으로 기억됩니다.

    잘 보았습니다. ^^

  4. Favicon of http://5742.nmactc.org/media/oakley.php BlogIcon Cheap Oakley sunglasses 2013.07.19 03:34 신고  댓글주소  수정/삭제  댓글쓰기

    당신은 내가사랑할 만한 사람이 아니예요,사랑하지 않으면 안될 사람이예요.

  5. 아기오리 2014.02.13 12:09 신고  댓글주소  수정/삭제  댓글쓰기

    service iptabes status
    service iptabes stop
    service iptabes start
    또는 service iptabes restart 합니다.

  6. 삽질 2014.09.01 20:06 신고  댓글주소  수정/삭제  댓글쓰기

    저도 이걸로 몇시간동안이나 삽질했습니다 아무튼 너무 유용한 정보 감사~해용~

.. .. ..

Q. How do I turn on or off file name colors in bash shell?

A. Most modern Linux distro comes with alias that defines colors for your file. However ls command is responsible for displaying color on screen for files, directories and other object.

By default, color is not used to distinguish types of files. You need to pass --color option to ls command.

Task: Turn off colors

Type the following command
$ ls --color=none
Or just remove alias with unalias command:
$ unalias ls

Task: Turn on colors

Use any of the following command:
$ ls --color=auto
$ ls --color=tty


.
Posted by .07274.

댓글을 달아 주세요

2011.06.24 18:17

리눅스 charset 확인 및 변경 I.lib()/I.lib(Unix)2011.06.24 18:17

.. .. ..

서버 charset 확인

- 명령어
vi /etc/sysconfig/i18n


/etc/sysconfig/i18n 파일의 기본내용

LANG="ko_KR.EUC_KR" → LANG="ko_KR.UTF-8"

SUPPORTED="ko_KR.EUC_KR:ko_KR:ko" → SUPPORTED="ko_KR.UTF-8:ko_KR:ko"

.
Posted by .07274.

댓글을 달아 주세요

  1. Favicon of http://7122.quiltersfedway.net/ghdes.php BlogIcon planchas ghd 2013.07.29 01:50 신고  댓글주소  수정/삭제  댓글쓰기

    슬퍼서 우는거 아니야..바람이 불어서 그래..눈이 셔서..

2011.06.24 13:37

리눅스 사용자 계정 생성 I.lib()/I.lib(Unix)2011.06.24 13:37

.. .. .. 1. 그룹 생성.
root로 로그인후
      groupadd -g 1000 testgroup (그룹번호 1000번 이름은 testgroup)
2. 계정 생성
useradd -d /home/testuser -g testgroup -m -s /bin/bsh testuser( 디렉토리에 누구 그룹에 어느 쉘써서 누구로 만든다)
 
.
Posted by .07274.

댓글을 달아 주세요