Bandwidth 측정 tool인 iperf compile시에 아래와 같은 오류를 만날 때가 있습니다, 사실.. 포스팅 할 내용도 아니지만.. 혹시라도 검색의 힘을 빌리는 개발자가 있다면.. 약간의 도움이라도 주고자 포스팅...! 오류 내용은 아래와 같습니다. [root@app32 iperf-2.0.4]$ make make all-recursive make[1]: Entering directory `/root/app/iperf/iperf-2.0.4' Making all in compat make[2]: Entering directory `/root/app/iperf/iperf-2.0.4/compat' make[2]: `all'를 위해 할 일이 없습니다 make[2]: Leaving directory `/..
시스템 운영 중에 메모리 할당이 실패하면 kernel은 OOM killer에서 다른 process를 죽여 메모리를 확보합니다. 이때 아무 process나 종료시키는것이 아니라 각 process마다 점수를 매겨 가장 적합한(?) process를 죽이게 되는데 이 점수를 매기는것은 아래와 같습니다, (mm/oom_kill.c) /** * badness - calculate a numeric value for how bad this task has been * @p: task struct of which task we should calculate * @uptime: current uptime in seconds * * The formula used is relatively simple and document..
pid의 사전적 의미는 프로세스 인식자(Process identifier)로서 프로세스가 실행 될 때에 붙여지는 번호인데요, 그렇다면 이 pid의 최대값은 어떻게 결정될까요? 우선 kernel source를 살펴보면, kernel code 내부에 아래와 같이 pid_max값을 proc으로 남기도록 명시되어 있습니다. (linux kernel 2.6.20 version) .ctl_name = KERN_PIDMAX, .procname = "pid_max", .data = &pid_max, .maxlen = sizeof (int), .mode = 0644, .proc_handler = &proc_dointvec_minmax, .strategy = sysctl_intvec, .extra1 = &pid_max_m..
[kthreadd] : 커널 스레드를 생성한다, 모든 커널 스레드의 부모가 된다. [migration/0] : 프로세서 사이에서 프로세스들을 이주시켜주는 CPU에 각각 존재하는 커널 스레드 [ksoftirqd/0] : tasklet(소작업)을 실행한다. –(softirq, tasklet) [watchdog/0] : 하드웨어 watchdog뿐만아니라 소프트웨어 watchdog도 포함한다. 시스템이 비정상적으로 동작시, 끄고 재부팅한다. [events/0] : (keventd) : keventd_wq 작업 큐(workqueue)에 있는 함수들을 수행. –(워크큐) [khelper] : 커널의 일부.. [kblockd/0] : kblockd_workqueue 작업 큐에 있는 함수를 수행한다.–(워크큐) 블록 ..
리눅스의 메모리 메커니즘은 application에서 메모리를 사용하고 반환할 때에 바로 소진되지 않고, cache되어 있다, 그리고 cache를 재사용하는것이 리눅스의 기본적인 동작인데, 강제로 cache를 비우는 방법을 알아봅니다. 우선 cache는 /proc/sys/vm/drop_caches 경로에 있고, 이 경로에 1~3의 값 입력을 통해 cache가 비워지게 됩니다. 그렇다면 각 number에 대한 의미를 알아봅니다. 1 : To free pagecache 2: To free dentries and inodes 3: To free pagecache, dentries and inodes This is a non-destructive operation and will only free things t..
회선 대역폭을 측정하기 위한 툴로 다양햔 open-source가 존재합니다. 이번 포스팅은 그 중 가장 강력한(?) 툴인 iperf를 설명하고자 합니다 (굉장히 주관적인 생각). 우선 source는 여기에서 다운 받고 compile은 README에 있는 내용처럼, ./configure -- configure for your machine make -- compile Iperf 두가지만 해주면 됩니다. 간단하지 않은가요? compile 이 완료되었으면 회선 대역폭을 측정하고자 하는 장비(혹은PC)에 compile의 결과물인 iperf를 넣어주기만 하면 준비는 끝입니다. 이제 옵션을 알아 볼텐데, document 보다 더한 설명이 어디있을까요, 우선 document 를 참조합니다, 자세하게 옵션에 대해 설명..
보통 구조체의 사이즈라 하면 구조체 내에 선언되어 있는 모든 변수의 총합을 TOTAL로 여깁니다. 얼핏 보면 당연한 결과지만, 컴파일러는 그렇게 못합니다. 이는 컴파일러 내에서 구조체 관련 루틴을 수행할 때에 좀 더 빠른 연산을 위함인데, 그렇다면 어떻게 다른지 알아봅니다.#include typedef struct test{ int a; long c; char b; char d:1, e:1, f:1, g:2, i:1, k:1; long h; } test; int main(void) { test k; k.g=1; // printf("a:%d \n",k.g); printf("size : %d\n",sizeof(k)); return 0; } 간단한 코드입니다, test struct의 사이즈는 얼마일까요? 64..
pthread_cond_wait는 thread를 휴먼 상태로 만듭니다(해당 라인에서 thread의 동작이 멈추는 상태). 이 말은, 일종의 sleep 상태라고 생각해도 되는데, 휴먼 상태에 빠져 있는 이 thread는 다른 thread에서 pthread_cond_signal을 이용해서 깨웁니다 (깨워지게 되면, 그때 부터 pthread_cond_wait 의 다음 라인 코드가 실행됩니다). 그렇다면 다수의 pthread_cond_wait가 존재한다면, pthread_cond_signal은 어떤 pthread_cond_wait를 깨울까요? 답은 아래 있습니다. 일단 함수 생김새를 살펴보면 아래와 같고, int pthread_cond_signal(pthread_cond_t *cond); int pthread_..
자주 사용할 일이 없다보니.. 자주 잊고 구글링을 통해 정보를 얻게 되는데 이번 포스팅을 통해 구글링이 아닌 블로그를 통해 정보를 얻어야겠습니다, mysql 접속 mysql -u 유저 -p 패스워드 db 목록 확인 show databases; 특정 db 사용 use databases; 테이블 목록 확인 show tables; 테이블 상태 체크 check tables 테이블명 테이블 repair repair tables 테이블명 테이블 구조보기 desc 테이블명 테이블 내용 전체보기 select * from 테이블명 테이블의 특정 필드 보기 ( 콤마로 필드 구분, 또한 where 연산 가능) select 필드1,필드2 from 테이블명 특정 테이블 내용을 파일로 select * from 테이블명 into ..
우선 정보통신표준위원회를 참고해보면 2010-12-23 제개정일로 DTLS에 대한 정의가 담겨 있습니다, 출처 : http://www.tta.or.kr/index.jsp 표준번호 : TTAE.IF-RFC4347 제개정일 : 2010-12-23 한글 표준명 : 데이터그램 전송계층 보안 (DTLS) 프로토콜 영문 표준명 : Datagram Transport Layer Security 한글 내용요약 : DTLS 프로토콜은 데이터그램 프로토콜을 위한 통신 프라이버시를 제공한다. 이 프로토콜은 클라이언트/서버 응용 프로그램이 통신하는 과정에서 도청, 간섭, 위조를 방지하기 위해서 설계되었다. DTLS 프로토콜은 전송 계층 보안(TLS) 프로토콜에 바탕을 두고 있으며 동등한 안전성을 보장한다. 기초적인 전송의 데이..
◈ decompress 확장자 : .tar (묶음 개념) tar xvf 확장자 : .tgz || .tar.gz (묶음이 압축되어 있는 개념) tar xvfz (tar의 버전에 따라서 z옵션이 f보다 앞에 있어야 인식하는 경우도 있습니다.) x : extract v : verbose f : file z: gzip ◈ compress 확장자 : .tar (묶음 개념) tar cvf 확장자 : .tgz || .tar.gz (묶음어서 압축하는 개념) tar cvfz tar cvfz c : create v : verbose f : file z: gzip MAN tar NAME tar - The GNU version of the tar archiving utility SYNOPSIS tar [options] Ope..
printk("[%s %d] %s call %p \n", __FILE__, __LINE__, __FUNCTION__, __builtin_return_address(0)); __FILE__ 해당 코드의 파일 위치 출력 __LINE__해당 코드의 라인 출력 __FUNCTION__해당 함수 출력 __builtin_return_address(unsigned int level)해당 함수를 콜한 주소 출력 (level은 call stack 위치, 0->바로 호출한 함수 1-> 그 함수를 호출한 함수) 출력 결과 [include/net/dst.h 238] dst_input call 4033efac
DHCP messages Message Use ------- --- DHCPDISCOVER - Client broadcast to locate available servers. DHCPOFFER - Server to client in response to DHCPDISCOVER with offer of configuration parameters. DHCPREQUEST - Client message to servers either (a) requesting offered parameters from one server and implicitly declining offers from all others, (b) confirming correctness of previously allocated addre..
편집모드 (i,o 등로 입력할 수 있는 상태) 명령 모드(편집모드에서 esc key를 누른상태) 기 타 A 현재라인의 끝부터 문자 삽입 a 커서 다음부터 문자 삽입 I 현재라인의 처음부터 문자 삽입 i 커서 이전부터 문자 삽입 O 커서의 윗라인에 새로운 라인첨가 (처음부터 문자 삽입) o 커서의 아래 라인에 새로운 라인첨가 (처음부터 문자 삽입) r 커서위치의 한문자 치환 R 커서위치에서부터 계속 치환 cw 한 단어 치환 C 한 라인 치환 c$ 현재부터 라인끝까지 치환 cG 현재부터 파일끝까지 치환 cL 현재부터 화면 끝까지 치환 c) 현재 구 치환 c} 현재 절 치환 ~ 소문자와 대문자 서로 치환 xp 두 문자 자리바꿈 n>> n(숫자)만큼 이동 CTRL + I tab ..
심심할때 한번씩 보면 재미있는 Linux man page..이번에는 iptables 공략입니다, iptables(8) - Linux man page Name iptables - administration tool for IPv4 packet filtering and NAT Synopsis google_protectAndRun("render_ads.js::google_render_ad", google_handleError, google_render_ad);iptables [-t table] -[AD] chain rule-specification [options]iptables [-t table] -I chain [rulenum] rule-specification [options]iptables [-t ta..
#define SIGRTMIN 32 #define SIGRTMAX _NSIG #define _NSIG 64 정규 시그널(sig.1~31)의 action및 Comment는 아래와 같이 확인 (시그널 번호는 하드웨어 구조에 따라 다릅니다) # Signal name Default action Comment POSIX 1 SIGHUP Terminate Hang up controlling terminal or process Yes 2 SIGINT Terminate Interrupt from keyboard Yes 3 SIGQUIT Dump Quit from keyboard Yes 4 SIGILL Dump Illegal instruction Yes 5 SIGTRAP Dump Breakpoint for debuggi..
# /etc/services:# $Id: services,v 1.40 2004/09/23 05:45:18 notting Exp $## Network services, Internet style## Note that it is presently the policy of IANA to assign a single well-known# port number for both TCP and UDP; hence, most entries here have two entries# even if the protocol doesn't support UDP operations.# Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports# are in..
우선 마운트 상태를 체크하기 위한 명령어로 df 로 확인합니다. $ df Filesystem 1k-blocks Used Available Use% Mounted on /dev/ram0 63461 37406 22779 62% / /dev/hdc3 248895 66914 169129 28% /xxx/xxx /dev/hdc4 427824 311440 94295 77% /yyy/yyy none 65536 13072 52464 20% /zzz/zzz 원하는 unmount 영역은 hdc3이지만, umount 명령 실행시 실제로 umount가 되지 않음을 알 수 있습니다. $ umount /dev/hdc3 umount: cannot umount /usr/local: Device or resource busy 이럴때 ..
- Total
- Today
- Yesterday