준비물

  • 현재 리눅스와 Mac OSX에서만 동작한다. 윈도 사용자는 버철박스나 VMWare로 리눅스를 깔고 사용할 수 있다.
  • JDK 1.7.0 이상

현재 Java와 Ruby API 지원

https://github.com/purplefox/vert.x/downloads 여기서 내려받고 압축을 푼 다음에 bin 디렉토리를 PATH에 추가하면 설치 끝.

실행

vertx 명령어 사용

고유 vertx 인스턴스에서 싱글 애플리케이션 실행하기

vertx run 사용

옵션

  • 언어 옵션: -java(기본값), -ruby, -groovy, -js
  • (필수 옵셥) 엔트리 포인트: -main 진입점 (자바의 경우 VertxApp 인터페이스 구현체를 설정하고 다른 언어는 진입점에 해당하는 스크립트 이름 설정)
  • (필수 옵션) 클래스패스: -cp 클래스패스 (클래스나 스크립트가 들어있는 곳)
  • 인스턴스 갯수: -instances 인스턴스갯수 (기본값은 코어 갯수)

자바 예제

vertx run -main org.acme.myapp.MyMain -cp myapp/classes

루비 예제

vertx run -ruby -main my_app.rb -cp lib

그루비 예제

서버 모드로 실행하기

멀티 태넌트 컨테이너 형태로 여러 vertx 인스턴스로 여러 애플리케이션을 실행할 수 있다. 각각의 애플리케이션은 별도의 클래스로더를 사용하기 때문에 다른 애플리케이션 인스턴스에 독립적이다.

서버 실행

vertx start

서버 종료

vertx stop

vertx 서버는 기본 포트로 25571을 사용하는데, vertx 서버를 여러개 띄울 때 이 포트를 설정할 수 있다. -port 옵션을 사용하면 된다.

포트 번호 주면서 서버 실행

vertx start -port 1234

특정 포트에 띄운 서버 종료

vertx stop -port 1234

서버에 애플리케이션 배포하기

vertx deploy 사용

옵션

  • vertx run에서 사용하던 옵션 전부 사용 가능
  • -name: 애프리케이션 이름
  • -port: 애플리케이션을 배포할 vertx의 포트

서버에 애플리케이션 내리기

vertx undeploy

클러스터 모드로 실행하기

vertx run이나 vertx start에 -cluster 옵션을 추가한다.

클러스터 모드로 실행하면 vertx가 글로벌 이벤트 버스를 형성한다. 기본으로 클러스터가 된 vertx는 25500 포트를 사용해서 클러스터의 다른 노드와 연결을 맺는다. 한 호스트에 클러스터를 여러개 띄울떄는 cluster-port 옵션을 사용한다.


출처 - http://whiteship.me/?tag=vertx





Posted by linuxism
,


리눅스 CPU 개수 확인

Jmnote
리눅스 CPU 개수 확인하기
리눅스 CPU 코어 수 확인하기

목차

  [숨기기

개요

  • CPU core 수를 셀 수 있다.
  • 다만 인텔 하이퍼스레딩의 경우, OS(윈도우, 리눅스 등)에서 코어 수가 실제 코어 수의 2배로 인식된다.
  • 예를 들어 싱글코어는 코어 2개로, 듀얼코어는 4개로 인식된다.

CPU 코어 전체 개수

grep -c processor /proc/cpuinfo
[root@jmnote ~]# grep -c processor /proc/cpuinfo
48

→ 가상 CPU 코어 수는 48. 따라서 물리적으로는 24 코어.[1]

물리 CPU 수

명령어
grep "physical id" /proc/cpuinfo | sort -u | wc -l
실행예시
[root@jmnote ~]# grep "physical id" /proc/cpuinfo | sort -u | wc -l
4

CPU당 물리 코어 수

명령어
grep "cpu cores" /proc/cpuinfo | tail -1
예시
[root@jmnote ~]# grep "cpu cores" /proc/cpuinfo | tail -1
cpu cores       : 6

→ CPU당 물리 코어수가 6.

정리

위에서 확인한 사항들을 모아보면 다음과 같다.

  • 물리 CPU 수: 4
  • 물리 CPU당 물리 코어 수: 6
  • 전체 물리코어수 : 24[2]
  • 전체 가상코어수 : 48[3]

같이 보기

주석

  1.  1 core(물리코어)당 2 thread(가상코어)이므로
  2.  =4CPU * 6코어
  3.  =4CPU * 6코어 * 2쓰레드


출처 - http://jmnote.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_CPU_%EA%B0%9C%EC%88%98_%ED%99%95%EC%9D%B8





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

linux - vsftpd install  (0) 2013.03.21
fedora - vi 및 gedit 한글 깨짐 해결  (0) 2013.03.07
linux - systemd, systemctl  (0) 2013.01.08
SELinux - AVC Denials  (0) 2013.01.08
linux - audit2allow  (0) 2013.01.08
Posted by linuxism
,


출력메소드  

 

⊙ System.out.print();

 - 줄변경 기능이 없기 때문에 \n 을 사용하여야 줄변경이 된다.  

 

 System.out.println();

 - 자동줄변경 기능이 설정되어 있다.

 

 System.out.printf(); / System.out.format();

 - System.out.printf("출력패턴", variablearguments);

 - System.out.format("출력패턴", variablearguments);

 - 줄변경 기능이 없기 때문에 \n 을 사용하여야 줄변경이 된다.  

 

출력패턴

 정수 : %d

 실수 : %f

 문자 : %c

 문자열 : %s

variablearguments

 메소드 호출시 출력패턴에 맞는 인자값들을 넣어준다.

 

 

 출력패턴으로 출력 글자의 자릿수를 결정할 수 있다.

 %자릿수d

 (%3d, 2);

 3자리 만들고 인자값 2를 넣어라.

 결과값

 |   |   | 2 |   

%자릿수.나타낼소수점이하자릿수f

 (%6.2f, 12.63542); 

 6자리를 만들고 인자값을 소수점 이하 2자리까지만 표시해라. 

 결과값

 |   | 1 | 2 | . | 6 | 3 |  

  

  

 왼쪽/오른쪽 정렬이 가능하다.

   - 기본적으로는 오른쪽정렬이다.                  

   - 왼쪽정렬은 - (minus) 기호를 붙여준다.        

System.out.printf(%3d, 5); 

  |   |   | 5 |

System.out.printf(%-3d, 5);  

  | 5 |   |   |

 

 

 ※ 출력메시지와 값을 분리하여 기술 할 수 있다. (가독성이 좋다)

 일반적인 사용

  System.out.println("내 이름" + name + "나이" + age);

 출력패턴 사용

  System.out.printf("내 이름 %s 나이 %d"name, age);

  

 

 

 

 

 특수문자 : 문자 자체에 기능이 있는 문자.

 \n

 new line (줄바꿈 기능)

 \r

 return (커서를 맨 앞으로)

 \t

 tab

 \b

 backspace

 \f

 프린트 출력시 줄 변경

 \\

 \ 사용시

 \"

 "(큰따옴표) 사용시

 \'

 '(작은따옴표) 사용시

 

 


출처 - http://blog.naver.com/PostView.nhn?blogId=lunatic918&logNo=156326926






16진수 출력

System.out.format("%08X", 인자);

or

String str = String.format("%08X", 인자);






확장비트열(escape sequence)
아스키 문자 집합의 27번째 문자인 확장 문자(ESC)로 시작되는 비트열. ESC와 1개 또는 2개 이상의 문자의 집합으로 이루어지는 확장 비트열은 인쇄기와 같은 주변 장치와 프로그램에 대해서 어떤 명령을 수행하도록 하는 제어 문자로 사용된다. 확장 비트열은 특히 인쇄기에 대해서 강조 활자(굵은 활자)로 인쇄하게 하는 등 다양한 명령을 내리는 데 사용된다. 

이스케이프 시퀀스(escape sequence)는 컴퓨터와 주변 기기의 상태를 바꾸는 데에 쓰이는 일련의 문자열이다. 제어 시퀀스(control sequence)라고도 한다. 일부 제어 시퀀스는 늘 같은 의미를 지니고 있는 특수 문자이다. 이스케이프 시퀀스는 이스케이프 문자를 이용하여 이를 따르는 문자들의 뜻을 바꿀 수 있는데, 여기서 문자들은 데이터가 아닌 실행 명령어로 해석할 수 있다. 





키보드의 "엔터키"에 해당하는 "Escape 문자"는, \n 입니다. 즉, "백슬래쉬+소문자n" 입니다. 각종 프로그래밍 언어에서나, 편집기 등에서 \n 을 엔터키 대신에 사용할 수 있습니다.

그런데 \n 이것은 원래 유닉스(Unix)나 리눅스(Linux)에서의 엔터 키입니다. 윈도우나 도스(MS-DOS)에서는 엔터키를 "\r\n" 이렇게 표현해 주어야 하는데, 프로그램이 자동으로 \n 을 \r\n (소문자 R + 소문자 N)으로 변환해 주기 때문에, 윈도우에서도 대부분 \n 을 사용하면 됩니다.

Perl이나 C언어에서, Enter키의 Escape 문자 사용 예제:

▶▶ C언어 Perl 자바] 줄바꿈/개행문자/행갈이문자/Newline: \n 이란?


자바 프로그래밍에서는 엔터키를 %n 이렇게 표현하는 것이 좋습니다:

▶▶ 자바/Java] System.out.format() 줄바꿈, 운영체제(OS) 종류에 맞게; line separator



출처 - http://mwultong.blogspot.com/2007/08/enter-escape-sequence.html





문자 출력의 특별한 경우가 있다. printf() 함수에서 개행문자(‘\n’)을 사용해 왔다. 개행문자는 사용하면 어떻게 되는가? 엔터키를 입력되어 한줄 내려간다. 이는 개행문자에서 \(또는 \)는 아스키 코드의 본래 의미에서 벗어나 다른 의미를 가진다. 이러한 문자들을 확장 문자 (escape sequence) 라 한다. escape sequence는 하나의 문자상수로 취급하며 반드시 \(\)와 함께 작은 따옴표로 묶어서 하나의 문자로 표시해야 한다.

다음 소스를 보자. 

★ 소스

#include <stdio.h>

int main()
{
char A; 

A='\\';                 // escape sequence 
printf("%d\n", A); 

return 0;
}


★ 소스 설명
 
A='\\'; 

\\가 두번 사용되어졌다. 하나만 사용하면 에러가 날 것이다. 
컴파일러에서 \뒤에 있는 것은 해석하지 않도록 만들었다.

A=’\’;

하나만 사용하면 A=’; 이렇게 인식을 한다는 것이다. 
따라서 개행문자도 \n을 사용하므로서 뒤에 n을 문자로 인식하지 않는다(인식하지 않고 두바이트가 합해져서 개행을 의미하는 확장문자이다). escape sequence의 종류에 대해 알아보자.

escape sequence

Represents

의미

\0

NULL

공백 문자

\a

Bell (alert)

경보 문자

\b

Backspace

백스페이스

\f

Formfeed

새 페이지로

\n

New line

다음 줄로

\r

Carriage return

현재 행의 처음으로

\t

Horizontal tab

수평 탭 문자

\v

Vertical tab

수직 탭 문자

\'

Single quotation mark

작은 따옴표

"

Double quotation mark

큰 따옴표

\\

Backslash

백슬래쉬

\?

Literal question mark

물음표

ooo

ASCII character in octal notation

아스키 문자의 8진수 표기

\xhh

ASCII character in hexadecimal notation

아스키 문자의 16진수 표기



★ 실행 결과





출처 -  http://air802.tistory.com/73



'Development > Java' 카테고리의 다른 글

java - listener 만들기  (0) 2013.04.08
java - 파일 전송  (0) 2013.04.04
java - CRC32 클래스  (0) 2013.01.31
serialVersionUID  (0) 2013.01.01
RSA java 구현  (0) 2012.12.26
Posted by linuxism
,