[Linux 명령어] process의 thread정보 확인 2014-10-08

> 서버 개발시에는 항상 스레드의 증가에 대해 고려를 해야한다. Linux 의 ps 명령어는 스레드 관련 문제시 빠른게 원인을 찾을 수 있도록 많은 옵션을 제공한다.

>>> 조회
# case 1 : 프로세스명으로 바로 조회
ps -ALF | grep {프로세스명}
# case 2 : 프로세스 번호로 조회
ps -aux | grep {프로세스명}
ps -p {프로세스PID} -T
>>>>>> description
– ‘e’ or ‘A’ : 모든 프로세스 선택
– ‘L’ : 스레드 정보인 LWP / NLWP 출력
– ‘f’ or ‘F’ : 보여질 수 있는 모든 정보 출력
>>> 결과확인
UID        PID  PPID   LWP  C NLWP STIME TTY          TIME CMD
root      1111  1110  1111  0   10 00:05 ?        00:00:00 ./service
root      1111  1110  1112  2   10 00:05 ?        00:00:00 ./service
root      1111  1110  1113  0   10 00:05 ?        00:00:00 ./service
root      1111  1110  1114  0   10 00:05 ?        00:00:00 ./service
>>>>>> description
– PID(Process ID) : 프로세스의 아이디
– PPID(Parent Process ID) : 부모 프로세스의 아이디
– LWP(Light Weight Process, is thread) : 스레드 고유아이디
– NLWP(Number Light Weight Process) : 해당 프로세스에서 동작하는 스레드의 총 갯수
ex) 위의 예에서 1111 ID의 프로세스는 총 10개의 thread가 동작한다.
>>> 스레드 정보 확인
strace -p {스레드ID : LWP}
>>>>>> description
– 스레드가 실행하는 시스템함수를 확인 할 수 있다.

[PHP] 여러줄의 문자열 다루기 (HereDoc) 2014-09-29

> 웹서비스 작업시 html 혹은 javascript로 표현될 부분을 변수에 담아야 하는 경우가 있다. PHP에서는 여러줄의 문자열을 쉽게 변수에 담을 수 있는 문법을 제공한다.

>>> PHP 4.0이상 부터 제공되며 다음과 같은 형태를 따른다.
$code = <<<{구분명}
<script type="text/javascript">
	location.href = "{$url}"
</script>
{구분명};
echo $code;
>>>>>> description
– 구분명에는 대부분 EOD(End Of Document)를 사용하나 다른 단어도 상관없다.
– <<<{구분명} 또는 {구분명}; 뒤에는 어떤 글자가나 공백이 있어서는 안된다.

[basic] 변수 – 비트 & 바이트 2014-09-26

> 비트란 ? 정보를 저장하는 최소 단위

>>> 컴퓨터는 이진수(0과 1 : 1bit)로 계산을 한다. 표현할 수 있는 가짓수는 다음과 같다.
1Bit = 2 가지 상태 표현가능
2Bit = 2 x 2 가지 상태 표현가능
nBit = 2 x … x 2 = 2^n가지 상태 표현가능
>>> 8bit는 1byte이므로 각각 단위별로 다음을 참조에 곱하면 표현할 수 있는 가짓 수를 계산할 수 있다.
1 Byte = 8 Bit (1024 가지 상태 표현가능)
1 KByte = 1024 Byte
1 MByte = 1024 KByte
1 GByte = 1024 MByte
1 TByte = 1024 GByte
>>>>>> 적용예
4Byte int 형은 32bit (2^32) 만큼의 정보를 저장할 수 있으며, 흔히 말하는 64비트 컴퓨터라는 것은 한번에 처리할 수 있는 처리량이 64비트라는 것이다.