Java Terms

JVM (Java Virtual Machine)

자바 소스코드로부터 생성된 바이너리 파일(.class)을 읽고, 검증하고, 실행하며, 플랫폼에 의존적이다. 윈도우-JVM과 리눅스-JVM은 다르다. 하지만 컴파일된 바이너리 코드의 경우 동작 가능하다.

JRE (Java Runtime Environment)

JVM이 자바 프로그램을 동작시키기 위해 필요한 라이브러리, 기타 파일들을 가지고 있다. JVM의 실행 환경을 구현한 것.



JDK (Java Development Kit)

자바 개발자 도구. JRE + 개발 툴(javac, java 등)을 포함.



'Terms' 카테고리의 다른 글

금융 IT 용어: 채널이란?  (0) 2018.05.24
EMC VMAX Terms  (0) 2018.05.24
Terms: PoC, BMT  (0) 2018.04.15

Find files and directory in Linux

리눅스 상에서 파일, 디렉토리 찾기

du (Disk Usage)

Check linux directory usage

디스크 사용량 체크 명령어

1
# du [OPTIONS] [FILE]
cs


1
2
3
4
5
6
7
to check directory’s usage
# du -hs DIR
to check files and directory’s usage in current directory
# du -hs *
to limit recursive directory depth
# du --max-depth=1
 
cs


 -h

--human-readable 

-s 

--summarize: display only a total for each argument 

-x 

--one-file-system: skip directories on different file system 



grep

Print matching line

패턴과 매치되는 파일 또는 디렉터리 출력

1
2
3
# grep [OPTIONS] PATTERN [FILE]
 
egrep == grep -E
cs


-E 

--extended-regexp 

-v 

--invert-match 

-c 

count lines 

-i 

case insensitive 

-n 

set line number 

-l 

print matching file name 

-w 

print line with perfect match 



sort

Sorting list of files

출력하는 내용을 옵션에 따라 정렬해주는 명령

-r 

--reverse 

-h 

--human-numeric-sort: compare according to general numerical value 


head

Print top to N lines

출력 시 위에서 N 번째 줄 까지 출력

1
# head -n 20
cs


xarg

Make a command line on standard input and execute them.

표준 입력으로부터 명령을 받아 실행하는 명령으로, ls 명령과 조합하여 각 ls 명령 결과 줄에 따른 명령을 다시 실행할 수 있다.

1
# xarg -i [replace-str]
cs


-I or i 

replace with replace-str 



Sample

du -h --max-depth=1 * |sort -hr |head

ls | egrep -v "cache|proc" | xargs -i du -sh {} |sort -h


'System Engineering > Linux' 카테고리의 다른 글

Bash: sed  (0) 2019.05.07
Tools: ab  (0) 2018.08.30
Check and recover disk badblocks  (0) 2018.08.16
Apache: Security settings  (0) 2018.08.03
Apache: httpd set-up  (0) 2018.08.03

Disk Check

Badblock

블록은 OS 상의 파일 시스템에서 파일이 저장되는 단위를 의미한다. 각 파일 시스템에 따라 그 크기가 자동으로 결정되며, 수동으로 설정할 수 있다.

1
# dumpe2fs -h /dev/DEV_NAME
cs


위의 유틸을 통해 해당 디스크 디바이스의 블록을 확인할 수 있다.


이 블록에 문제가 생겨 파일 시스템에 파일을 읽고 쓰는 것이 정상적으로 동작하지 않는 경우, 배드블록 (badblock)으로 판단한다.

배드블록이 생성된 디스크를 계속 사용하게 되면, 운용중인 장비가 다운되는 등 치명적인 문제가 발생할 수 있으므로, 교체 해주는 것이 좋다.


중요 데이터의 경우, 하기의 복구 과정 이후에 백업을 필수로 시행하고, 디스크를 빠른 시일 내에 교체하는 것이 좋다.


1
# badblocks -v /dev/DEV_NAME
cs

badblocks 명령을 사용하여 해당 장치의 배드블록을 검사할 수 있다. -o 옵션을 추가하여 해당 블록의 번호를 출력할 수 있다.



File System recovery

리눅스 상에서 파일 시스템을 검사하거나 복구하는 유틸을 사용하여 디스크 상태를 확인할 수 있다.

1
# fsck [-t FILE_SYSTEM] /dev/DEV_NAME
cs


fsck 명령을 이용하여 해당 디스크의 상태를 체크할 수 있으며, 5개의 phase를 거치게 된다.


Phase1

Check blocks and sizes

Phase2

Check Pathnames

Phase3

Check connectivity

Phase4

Check reference counts

Phase5

Check cycle groups

검사 후 복구하기 위해서는 a(묻지 않고 복구) 또는 r(물어본 후 복구) 옵션을 사용하면 된다.

Lost+Found

리눅스 파일 시스템에서 자주 볼 수 있는 디렉토리로, 모든 파일 시스템은 자신의 루트 디렉토리에 이 디렉토리를 가져야 하며, newfs에 의해 생성된다. 존재하지 않을 경우, /etc/mklost+found 명령으로 생성할 수 있다.
fsck는 문제가 있는 파일을 이 디렉토리에 위치시킨다.


DELL OMSA (Open Manage) Badblock recovery

virtual disk bad block medium error

To display the controller ID

1
# omreport storage controller
cs


To display the Controller's Virtual Disk

1
# omreport storage vdisk controller=ID
cs


To clear the blocks

1
# omconfig storage vdisk action=clearvdbadblocks controller=C_ID vdisk=VD_ID
cs


'System Engineering > Linux' 카테고리의 다른 글

Tools: ab  (0) 2018.08.30
Find files and directory which is using disks very highly  (0) 2018.08.17
Apache: Security settings  (0) 2018.08.03
Apache: httpd set-up  (0) 2018.08.03
DNS on Linux: BIND  (0) 2018.07.27

Streaming Protocols

ref: https://blog.kollus.com/


Progressive Download

youtube, ESPN, CNN 등이 사용한 동영상 전송 방법. 점진적으로 다운로드하여 플레이 되는 방식. 미디어 서버가 아닌, 웹 서버의 비디오를 플레이어에게 URL을 알려주어 HTTP로 동작하며, 가장 구현이 쉽고 비용이 적다. (단순하게 웹에서 파일을 다운받아 진행하는 방식)

클라이언트에서 비디오를 재생하면 웹 서버에서 즉시 다운로드 시작, 즉시 플레이 가능할 수도 있고, 시간이 지난 후 플레이 될 수도 있으나 전체 파일이 다운로드 될 필요는 없다. 클라이언트의 인터넷 환경에 따라 다르며, 중간 부분이 다운되지 않았으면 재생되지 않는다.

이 방식으로 동영상이 꾸준히 재생되기 위해서는 서버에서 클라이언트로 전달되는 네트워크 속도가 동영상의 데이터 레이트보다 높아야한다. 512Kbps 동영상이라면 적어도 그에 맞는 네트워크 속도가 있어야 끊김 없이 제공된다.




단점은 파일을 다운로드하여 가져오는 방식으로 보안에 문제가 있고, 유료 서비스를 위한 사이트에서는 이용할 수 없고, 라이브 스트리밍을 지원하지 않는다.

또한, bandwidth traffic 소모가 다운로드 한 만큼 소모된다. 1GB 사이즈 영상을 300MB만 시청했더라도, 나머지 부분도 다운로드가 완료된 상태이기 때문에 비용이 청구된다. 한 번 다운로드가 시작되면 비디오의 품질은 고정되며, 중간에 변경할 수 없다. Fullscreen 모드에서도 화면 사이즈만 커질 뿐 화질이 변경되지 않는다.

Live가 아닌 VOD에서 유용하며, 점진적으로 사용자 PC에 다운로드하며 재생


Pseudo Streaming

Progressive 방식(사용자 단말에 다운로드하는 방식)bandwidth 비효율적인 것을 보완하고 Live 서비스와 고화질을 제공하기 위해 나온 기술이다. 아직 다운받지 않은 부분을 요청해도, 메타 프레임 정보를 통해 다시 다운로드를 시작하여 플레이하여, 중간부터 시청이 가능하다. 웹 서버에 모듈을 설치해야 작동하며, Flash Player, HTML5 Player에서 지원된다. 화질을 클라이언트가 선택하게 해준다.

Progressive 다운로드의 단점 보완, 라이브 지원, bandwidth 조절, Seeking 기능, 보안 강화

RTSP / RTMP

프로그레시브 다운로드 방식의 단점을 보완하기 위해 Hulu 등의 미디어 조직에서 이 프로토콜을 주로 사용한다. 사용자가 현재 시청하고 있는 비디오 프레임만을 전송해 주는 웹 서버를 사용하며, 데이터를 미리 다운로드하지 않고, 이미 시청한 데이터는 버리는 방식을 사용한다. (pseudo-streaming 방식에서는 지난 데이터를 삭제하지 않고 저장한다.)
플래시를 위한 RTMP, FMS, Wowza 등 대부분의 CDN 서버들이 지원하는 프로토콜이다.
안드로이드에서 지원하는 RTSP는 스트리밍 서버나 CDN에서 많이 사용되지는 않는다.
또한, 방화벽에서 막히는 경우가 있다. 이는 전용 서버를 필요로 하므로, 프로그레시브 방식에 비해 접속이 용이하지 않고 복잡성이 증가하며 비용이 증가한다.
기본적으로 서로 다른 bitrate로 인코딩된 파일을 따로 업로드하여 사용한다.
VOD, e-learning, Live 중계 등의 분야에서 많이 사용된다.

RTMP (Real-Time Messaging Protocol)

Adobe 사의 독점 TCP 기반 프로토콜. 오디오, 비디오 등의 데이터를 인터넷을 통해 스트리밍 할 때 사용. adobe flash player와 서버 사이 통신에 이용.

-       기본 1935번 포트. 실패 시 443 포트(RTMPS), 80 포트(RTMPT)로 재시도

-       RTMPT (RTMP Tunneled): RTMP 데이터를 HTTP로 감싼 것. HTTP 헤더로 RTMP보다 크기가 큼

-       RTMPS: RTMP + HTTPS. Flash player에서 SSL 입출력 지원

-       RTMPE: 128비트로 암호화된 RTMP. SSL보다 가볍지만 인증이 없음. 암호화 채널 사용으로 성능에 영향 있음

-       RTMPTE: RTMPT + RTMPE. 서버 성능에 영향

-       RTMFP: Real Time Media Flow Protocol. UDP에서 동작하며 항상 암호화된 상태로 데이터 전송



RTSP (Real-Time Streaming Protocol)

- IETF가 개발한 프로토콜
- 스트리밍 데이터 제어
- 오디오, 비디오 등 멀티미디어 데이터를 포함하는 미디어 서버 원격 컨트롤
- PLAY, PAUSE 등 VCR 동작과 비슷하며 시간 정보를 바탕으로 서버에 접근
- 실제 미디어 스트리밍 데이터를 저장하지 않고, RTP 규약을 사용하여 전송 계층에 실제 오디오/비디오 데이터를 전송
- RTSP는 HTTP와 비교하여 동작이나 문법이 비슷하지만 HTTP가 stateless인 반면 RTSP는 statful 프로토콜이다.



Adaptive Streaming

Adaptive HTTP Streaming은 전통적인 기술을 개선한 스트리밍 방식이다. RTMP/RTSP와 Progressive 방식의 장점을 결합했다. 서버에 작은 Chunk의 몇 초 단위 동영상을 가지고 스트리밍하며, 플레이어에서 이 조각들을 연속 스트림으로 연결한다.
Move Network 사의 Adaptive bitrate 기술이 기반이다.
사용자 bandwidth 환경을 인지하여 그에 맞는 스트리밍을 제공하며, Apple에서 HLS(HTTP Live Streaming)란 이름으로 iOS 기반으로 출시되었다.
Adobe에서는 Adobe HTTP Dynamic Streaming 기술을 발표하기도 했다.

미디어 서버와 같이 비싼 장비와 RTMP 같이 복잡한 프로토콜 기술을  사용하지 않고, Bandwidth 효율이 좋아 화질 변경이 용이하다.




'CDN - Platform' 카테고리의 다른 글

Platform: Wowza  (0) 2018.08.28
Streaming Protocol: HLS  (0) 2018.08.21

ケース. 文章を要求する

Subject: 契約書の要請件で。

To: HR@company.co.jp

HR様


お疲れ様です。インフラパートのSONKADAKです。


入社の後で契約書などの関連書類おまだもらいませんでした。


可能な早いうちに伝達お願いします。(メールでお願いします。)


それでわよろしくお願いいたします。


SONKADAK | Infra-part at Company

M     123-456-7890

P      098-7654-3210

E      sonkadak@company.co.jp


'Language' 카테고리의 다른 글

Business Email: Requesting documents  (0) 2018.08.04
180804 Today's TED  (0) 2018.08.04

+ Recent posts