대개 cpu를 100% 돌리고 있어도 1을 겨우겨우 넘기는 편이라
load average 라는 부분이 멀 의미하는건가 고민이 들어 찾아 보게 되었는데..
혼자 쓸때는 컴파일 속도가 느려지는게 느껴져서 한번에 하나이상돌리지 않아 이 값이 1이상 나오기가 좀 힘들긴하다.
결론은.. 머 알아서? ㅋㅋ
시스템의 최근 1분, 5분, 15분에 대한 각각의 평균 부하율(load average: 0.03, 0.05, 0.05)
Load average: 작업의 대기시간. 값이 1이 나왔다면 1분 동안 평균 1개 정도의 프로세서가 대기상태에 있다는 것이다.
서버마다 차이가 있긴 하지만 5 정도면 서버가 부하를 받는 다고 생각한다. 과부하는 10 ~ 15이상이면 과부하라고 본다.
결론은 이거였다.
CPU 1개당 2까지의 로드까진 정상으로 본다.
이게 무슨말인가? 현재의 대부분에 쓰이고 있는 요즘의 평균적인 제온 시스템이라면 CPU당 2까지의 로드까진 문제없는것으로 본다는것이다.
그렇다면 듀얼코어같이 HT(Hyper Threading)을 지원하는 CPU는 어떻게 계산하는지 물어보았다.
HT의 경우 CPU 2개로 친다는것이다. 쿼드코어의 경우에는 CPU4개로 친다는것이다.
고로 듀얼코어 CPU를 2개 꼽은 서버라고 하면 4 CPU x 2 = 8 의 로드까진 괜찮다는것으로 친다는것이 결론이었다.
curl is a tool to transfer data from or to a server, using one of the supported
protocols (HTTP, HTTPS, FTP, FTPS, TFTP, DICT, TELNET, LDAP or FILE). The command is designed to work without user interaction.
curl offers a busload of useful tricks like proxy support, user
authentication, ftp upload, HTTP post, SSL (https:) connections,
cookies, file transfer
resume and more. As you will see below, the amount of features will make
your head spin!
일단 curl은 wget이 지원하는 모든 프로토콜을 지원하므로 기능상으로는 wget과 유사한 느낌이지만, 조금더 막강해진 녀석이다.
GNU Wget is a free utility for non-interactive download of files from the Web. It supports HTTP , HTTPS , and
FTP protocols, as well as retrieval through HTTP proxies.
Developers는 말 그대로 어플리케이션 개발자를 위한 SDK를 제공하고
Partners는 안드로이드 플랫폼을 개발하기 위한 안드로이드 플랫폼을 제공한다.
# Required Packages:
* Git, JDK, flex, and the other packages as listed above in the i386 instructions:
* JDK 5.0, update 12 or higher.Java 6 is not supported, because of incompatibilities with @Override.
* Pieces from the 32-bit cross-building environment
* X11 development
아무튼, 이녀석을 위해서는 Git 가 필요하고, 오만가지 것들이 필요한데
MacOSX 와 Linux는 지원하지만 Windows는 지원하지 않는다.
게다가, git for windows는 cygwin 으로 작동해서 엄청난 속도를 자랑한 악몽이 있기에... OTL
생각보다 repo sync에서 시간이 엄청나게 오래 걸린다. 전체용량이 대략 2기가 정도를 받는데
git 임에도 불구하고 이렇게 오래 걸리다니..(대략 6시간 넘게 걸린듯..)
안드로이드 플랫폼(?)은 git를 깜산 python 스크립트로 작동되는 repo 라는 녀석으로 받아온다.
그리고 home 디렉토리의 ~/bin 에 repo를 설치한다.
개인적으로는 상대경로를 입력해서 repo를 실행했으나
repo 를 초기화 하면 .repo 라는 디렉토리가 생성되므로 /bin 에 넣는것 추천할만한 방법은 아니나
개인 계정에 설치하고 심볼릭 링크로 걸어도 상관은 없을듯 하다.
$ cd ~
$ mkdir bin
$ curl http://android.git.kernel.org/repo >~/bin/repo
$ chmod a+x ~/bin/repo
안드로이드를 다운받기 위해서는 폴더를 하나 지정하고,
그 안에서 repo init 명령을 통해 초기화를 하고
repo sync 명령을 통해 다운로드 받는다.(6시간 정도 걸렸는데 네트워크 상황에 따라 달라질수 있음)
Your Name [XXXXXXXX]: YYYYYYYY
Your Email [username@devlinux.(none)]: username@gmail.com
Your identity is: YYYYYYYY<username@gmail.com>
is this correct [y/n]? y
Testing colorized output (for 'repo diff', 'repo status'):
black red green yellow blue magenta cyan white
bold dim ul reverse
Enable color display in this user account (y/n)? y
1. make 중에 멈추는 경우가 있는데, g++-4.3 패키지를 추가로 설치해준다.
(아마 gcc는 이미 깔려있었을테니, g++ 라이브러리 문제라고 생각이 된다. 설치시 심볼릭 링크도 변경된다)
frameworks/base/tools/aidl/AST.cpp:10: error: 'fprintf' was not declared in this scope
라는 에러로 시작해서 fprintf() 에러를 뿜어내면서 중단될때는 두개의 패키지를 설치해준다.
$ sudo apt-get install gcc-4.3g++-4.3
gperf는 performace 관련이 아니라.. hash function generator 라고 한다.
흐음.. 그 해쉬가 그 해쉬가 아닌가 -_-? 맹글링과 연관이 있어 보이기도 하고..
GNU gperf is a perfect hash function generator. For a given list of strings, it produces a hash function and hash table, in form of C or C++ code,
for looking up a value depending on the input string. The hash function
is perfect, which means that the hash table has no collisions, and the
hash table lookup needs a single string comparison only.
GNU gperf is highly customizable. There are options for generating C or C++ code, for emitting switch statements or nested ifs instead of a hash table, and for tuning the algorithm employed by gperf.
사장
│
전무이사
│
상무이사
│
┌─────┼───────┐
부장 부장 부장 (1급, 자재팀장)
│ ┌───┼──────┐
과장 과장 과장 과장
│ ┌──┴──┐
대리 대리 대리
│ ┌──┴──┐
주임 주임 주임
│ ┌──┼──┐
기사 (5급, 경리 담당) 기사 기사 기사
위에서 부장의 경우, 직위는 부장이고, 직급은 1급, 직책은 자재팀장이 됩니다.
기사의 경우, 직위는 기사, 직급은 5급, 직책은 경리 담당자 입니다.