TOP : 실시간 모니터링
h 도움말
m 메모리정보출력
l 평균부하
u 지정유저정보
k 강제종료
r 프로세스 우선순위조절 ( renice )
q 종료
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
PID : 프로그램 ID
USER: 계정
PR : priority 우선순위 (기본값 20)
NI : nice 값 ( -20 ~ +19 ) ***** (CPU를 끌어쓰는정도)
VIRT: 가상메모리
RES : 실제메모리
SHR : 공유메모리
S : 상태
%CPU: CPU점유율
%MEM: 메모리점유율
TIME: 동작시간
command: 동작중인 프로세스
==================================================================
nice (프로세스의 우선순위 변경)
범위 (-20 ~ +19) *********
renice 동작중인 프로세스 우선순위변경(top)
nice 구동될 프로세스 우선순위
nice -숫자/--숫자 [프로세스명] **
renice -/+숫자 [pid] **
--10 ping ==== nice
-10 5144 ==== renice
** nice 사용시 기본값 +10 ***
PS : process status 프로세스 상태확인
-a 모든 세션의 쉘을 제외한 프로세스
-u 계정별
-l long format
-f full format (프로세스포멧)
-e -e 모두 (-A 같음)
-x 터미널이 없는 내부 커널프로세스
**ps 에서 많이 쓰이는 명령
ps -ef
ps -axu
centos 6버전이전 => 최초프로세스 init pid 1
centos 7버전이후 => 최초프로세스 systemd pid 1
메모리,CPU부하율 => TOP
프로세스내용 => ps (ps -ef)
tty=>로컬터미널(teletype)
pts=>원격터미널(Pseudo terminal slave)
PID => 자식프로세스 (프로그램 실행 ID)
PPID => 부모프로세스,선행프로세스( PPID를 실행시킨 프로세스 ID)
VSZ: 가상메모리
Ni : nice 수치
PRI : 실제 process우선순위
WCHAN : 프로세스가 기다리는 이벤트
1and
D input/output (deep sleep)
R Run
S sleep
T Stop 중지
W paging 페이징 (커널 2.6.xx 버전부터는 유효하지 않음)
X dead (should never be seen) 죽음 (이런 게 보이면 안되는데)
Z ("zombie") process,좀비 프로세스,
종료되었으나 부모 프로세스에 의해 수습되지 않음
2and
< 우선순위 높은
N 우선순위 낮은
L lock 잠겨진 페이징
s 세션 프로세스
| 멀티스레드
+ 포어그라운드로 동작하는 프로세스
===========================================================
pstree (프로세스를 조직도로 보여줌)
-p pid번호출력
-n pid 순서정렬
*** pstree -np ***
centos6 init (1)
centos7 systemd (1) 프로세스 조상님
모든프로세스의 부모프로세스
유닉스 시스템 SYSTEM V
(runlevel init 0 , 1, 2, 3, 4, 5 ,6 )
0 3 5 6 0:종료 3:텍스트 5:그래픽 6:재부팅
RHEL7 SYSTEMD (기존의 init 프로세스를 확장개념)
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
[실습]
systemctl get-default [부팅방식 확인]
systemctl set-default mulit-user.target [init 3]
systemctl get-default 확인후 init 6
cat /etc/inittab
systemctl set-default graphical.target
systemctl get-default 확인후 init 6
==================================================
fork 와 exec
fork 복사프로세스 안정성은 높으나 부하가 높다.
exec 대체프로세스 안정성은 낮으나 속도빠르고 부하가 낮다.
=========================================================================
kill 프로세스 종료
kill -l 시그널 종류확인
시스템
signal
<1> SIGHUP HUP 로그아웃 (nohup : 로그아웃해도 프로그램 실행)
<2> SIGINT ctrl+c 동작취소
<9> SIGKILL 강제종료 (kill -9) ****
<15> SIGTERM 정상종료 (기본값)**(kill)
<19> SIGSTOP 프로그램 정지
<20> SIGTSTP 키보드 동작정지(ctrl+z)
* 키보드로 시그널을 보내는 것은 짝수라는 것을 기반으로 <19>와 <20>을 구분하자
* 위에 것만 외우면 리눅스에서 kill 문제는 대부분 맞힐 수 있으
** nohup 실습 **
1#sevas로그인
ping 127.0.0.1 실행
root에서 ps -ef |grep ping 확인
sevas 로그아웃후
root에서 ps -ef |grep ping 확인
종료됨
2#ping세션에서
nohup ping 127.0.0.1 실행
root에서 ps -ef |grep ping 확인
sevas 로그아웃후
root에서 ps -ef |grep ping 확인
kill 로 해당 PID 종료
=========================================
kill
killall PPID포함 관련된 모든 PID종료
(서버 자체 완전종료 : 연결자들 모두 종료)
killall [프로세스명]
kill -9 강제종료
kill [PID]
kill [PID] [PID] //여러개를 같이 쓸 수도 있음
kill %번호
하드디스크 구조

헤드 = 디스크를 읽고 쓰기위한 장치
섹터 (sector) = 하드디스크의 가장작은 단위 ***
트랙 = 섹터로 이루어진 집합체 (링)
실린더 = 각플래터의 동일한위치 트랙의 집합 (헤드가 참조하는곳)
가장 최초의 섹터 = 부트섹터 (각 물리파티션마다 존재) (512byte)
가장 최초의 부트섹터 = MBR (Master Boot Record)

[MBR] 파티션 (물리파티션 4개 파티션 7개 )


파티션 숫자
1 2 3 4 5 (물리파티션은 4개 파티션은5개)

부팅 디스크는 주영역만 사용 가능함
1. 주영역과 논리영역은 부팅을 할수 있다 없다차이. (주영역 부팅가능)
2. 물리영역은 MBR에서 최대 4개 (물리파티션은 primary , extended다
3. 4개이상의 파티션이 필요할시 extended를 추가하여 논리파티션으로 구성
4. extended 는 논리영역을 만들기위한 물리파티션이다.
5. extended 는 1개이상 생성 될수 없다.
6. 파티션번호는 1~4까지 물리영역이다. (primary,extended)
7. 파티션번호 5번이후부터는 논리영역이다.

IDE(병렬) => SATA (직렬)
SCSI(초기병렬) => SCSI(직렬),SAS(직렬)
----------------5.8버전------------------
(5.8 cdrom=/dev/hdc)
IDE=> 병렬하드 =>cpu에서 직접 하드관리
/dev/hdx **부팅중 장착불가**
SCSI=> 병렬하드=>내부scsichip에서 직접관리
/dev/sdx **부팅중 장착가능**






실제 수용 가능 개수인 4개를 초과해서 더이상 IDE로 추가할 수 없는 모습을 볼 수 있음




==========================================================================================

FAT
대부분의 OS가 지원
숫자나 문자로만 시작
파일이름은 8자 이상 X
확장자 3자 이상 X
공백 X
대소문자를 구별 X
단점
파티션 제한 2G
한개의 파일당 할당되는 클러스터 용량 일정하게 제한
분할영역의 크기증가 => 클러스터 크기 증가
ex)전체용량에 비례하는 파일한개 할당량
512MB => 8K
2G => 32K
전체용량 대비 1byte저장시 디스크할당량
================================================================================
VFAT
FAT의 Expansion version
windows 95 와 함께 도입 /FAT 와 호환
-이름 규칙 -파일이름 255, 공백 가능, 여러개의 구두점 가능,대소문자는 표기는 가능했으나 구별X
-파일 이름 설정시 GUI와 TUI 표기가 틀림
KHACDEMESEVAS.TXT(GUI) => KHADACD~1.TXT(TUI)
=====================================================================================
OEM(Original Equipment Manufacturer) 주문자의 요청에 따라 제작되는 상품
=================================================================================
FAT32
windows 95 확장 /FAT호환
USB기본 포멧
-Windows 95 OEM Service Release 2(OSR2) 에서 처음 도입
특징
하드디스크 여유공간 증가
클러스트 할당 8G이하 4K ************
파티션크기 2GB이상 ************
다중부팅가능
32GB 파티션 제한 *************
4GB 파일저장 제한 크기 제한 **************
단점
OSR2 이상급에서만 가능 하위버전호환X
디스크유틸리티 바이러스 프로그램에서 FAT32인식해야함
미인식시 복구 데이타 손상 위험
========================================================================

NTFS
장점
1.FAT32보다 복구기능 향상
2. 대용량 디스크에 대한 지원 향샹 (2TB)
3. 보안향상 #### EFS
(사용권한및 암호화를 사용 승인된 사용자만 특정파일에 엑세스 가능)
4. 디스크조각모음이 필요없음.......느려져서 기능사용안함
=================================================================================
REFS (REsilient File System)
Resilient => 탄력적
윈도우서버 2012 제공
특징
속도 = NTFS보다 조금 더 빠른 속력을 유지 안정적으로 전송
안정성 = 무결성을 모토/다른 작업중에도 상시 검사
확장성 = 디스크 최대 지원 용량과 최대 길이의 파일이름 더 늘어남
최대 18 QB
ReFS (Resilient File System)
탄력적인 파일 시스템
win2012부터 제공
속도 - NTFS보다 속도 향상
전송신뢰성 향상
안정성 - 무결성유지
실시간 디스크 검사 지원
확장성 - 디스크 최대 지원 용량
파일 이름 최대길이 향상
## 실제로 제대로 못써먹는다 ##
=================================================================================
##FAT와 FAT32차이
FAT FAT32
1볼륨사이즈(파티션제한) 2G 32G
2.클러스터사이즈 512MB당 8kb 8G이하 4kb
3.단일파일 저장최대크기 2G 4G
4.멀티부팅 지원 OS가 많아짐
##FAT32와 NTFS차이
FAT32 NTFS
파티션 최대크기 2TB 16 exabytes (GPT일경우..이론만가능/MBR일경우 2TB)
단일파일 저장최대크기 4G 16TB
도메인지원 X O
압축 X O
보안 X O
암호화 X O
부팅중 하드디스크 인식
find /sys -name scan
echo "- - -" > /sys/devices/pci0000:00/0000:00:10.0/host0/scsi_host/host0/scan (아래내용 붙여넣기)
fdisk -l 확인
fdisk 명령어
fdisk -l =>>하드 전체 리스트보기
fdisk /dev/하드장치명 ===>하드 파티션 구성하기
(ex: fdisk /dev/sdb)
fdisk 내부 명령어
n 파티션 생성
d 파티션 삭제
p 파티션 상태보기
m 메뉴얼
q 파티션 저장하지 않고 종료
w 파티션 저장후 종료
t 파티션 속성변경 (83 일반,82 스왑,85 extended, 8e, Fd 레이드)
/dev/sdb (1G)
P P L L P
200 200 250 250 etc
/dev/sdc (1G)
P P P P
200 200 200 ETC
fdisk -l /dev/sdb /dev/sdc

파티션 설정 관련 명령어이다.

포멧 (mkfs : make file system)
mkfs -t [파일시스템명] [디바이스명]
blkid = 포멧이 완료된 파티션 확인
mkfs -t ext4 /dev/sdb5
mkfs -t xfs /dev/sdb6
mkfs -t ext3 /dev/sdb5
mkfs -j /dev/sdb5 ( -j 는 journal )
mkfs /dev/sdb5 (ext2)
mke2fs /dev/sdb5 (ext2)
mke2fs => mkfs
================================================
mkfs -t ext4 /dev/sdb4 (extended는 포멧X)
mkfs.ext4 /dev/sdb5 (-t ext4 대신 .ext4로 쓸수있음)
mkfs.xfs -f /dev/sdb6
mkfs 는 ext2
mkfs -j 는 ext3
** xfs 포멧은 덮어쓸때 -f 를 사용해야함 ***
ex) mkfs.xfs -f /dev/sdb6

리눅스 파일시스템 종류 (파일시스템 확장시 속도 up, 안정성 up )
ufs 유닉스파일시스템
ext2 속도 UP
ext3 속도 UP, 저널링 (안정성UP)
ext4 속도,저널링 기능 대폭 향상
xfs 2TB이하에서는 비효율 (대용량 파일시스템, centos7의 기본값)
======================================
