검색 엔진의 방문이 늘어나고 있군...

Posted
Filed under 취미 및 잡담
관련 기사1: [블로터포럼] 비트코인, 실험에서 화폐로
관련 기사2: 베일 속 비트코인 창시자, 정체 밝혀지나
관련 기사3: 비트코인 채굴, 직접 도전해 봤어요
관련 기사4: 비트코인, 1만원에서 100만원 되기까지
관련 기사5: 비트코인 채굴, 해답은 ‘병렬컴퓨팅’
관련 기사6: 앞으로 보게 될 비트코인 관련 기사
관련 기사7: 고성능 GPU로 가늠해 본 비트코인의 채산성
관련 기사8: “비트코인, 금맥은 없던데요”
관련 링크: http://mirror.enha.kr/wiki/%EB%B9%84%ED%8A%B8%EC%BD%94%EC%9D%B8

  요즘 큰 이슈가 되고 있는 만큼 공부가 필요할 것 같습니다.

2013/12/05 17:53 2013/12/05 17:53
Posted
Filed under 프로그램과 명령어/관리와 유지보수
참조 원문 : 10 basic examples of Linux ps command

  ps 명령어는 시스템에서 실행 중인 프로세스를 보는 가장 기본적인 명령어 중 하나입니다. 유저 id, CPU 사용률, 메모리 사용률, 명령어 이름 등의 정보를 제공하죠. 다만 top이나 htop 명령어와 달리 실시간으로 보여주진 않습니다. 그래도 리눅스 사용자라면 기본적으로 알아야 합니다.

  ps 명령어에는 2가지의 사용법이 있습니다. 바로 BSD 방식과  UNIX 방식이죠. ps를 처음 배울 땐 두 방식이 있다는 것조차 모르는 경우가 많고 알아도 잘못 사용하는 경우가 많습니다. 예를 들어 "ps aux"는 "ps -aux"와 다릅니다. "-u"는 특정 유저의 프로세스를 볼 때 사용하고 "u"는 자세한 정보를 출력시킬 때 사용합니다.

  BSD 방식은 옵션 앞에 "-"를 붙이지 않습니다.
ps aux
  UNIX/LINUX 방식은 옵션 앞에 "-"를 붙입니다.
ps -ef
  리눅스의 경우 두 방식을 동시에 사용하는 것이 가능합니다. 예를 들어 "ps ax -f" 같은 것도 실행할 수 있습니다.


1. 모든 프로세스 출력
  아래의 명령어로 모든 프로세스를 볼 수 있습니다. 파이프로 출력을 "less" 같은 명령어에 넘기면 스크롤하며 볼 수 있습니다.
$ ps ax
$ ps -e
  "u"나 "-f" 옵션을 사용하면 자세한 정보를 볼 수 있습니다.
$ ps aux
$ ps -ef
  참고로 유저명이 8글자를 넘을 경우 공간 때문에 유저명 대신 UID가 USER 칼럼에 표시됩니다.

2. 특정 유저의 프로세스 출력
  특정 유저가 소유한 프로세스만 보고 싶을 경우 "-u" 옵션 뒤에 유저명을 입력하면 됩니다. 콤마로 여러 유저명을 입력할 수 있습니다.
$ ps -f -u www-data
UID        PID  PPID  C STIME TTY          TIME CMD
www-data  1329  1328  0 09:32 ?        00:00:00 nginx: worker process
www-data  1330  1328  0 09:32 ?        00:00:00 nginx: worker process
www-data  1332  1328  0 09:32 ?        00:00:00 nginx: worker process
www-data  1377  1372  0 09:32 ?        00:00:00 php-fpm: pool a.localhost                                              
www-data  1378  1372  0 09:32 ?        00:00:00 php-fpm: pool a.localhost                                              
www-data  4524  2359  0 10:03 ?        00:00:00 /usr/sbin/apache2 -k start
www-data  4527  2359  0 10:03 ?        00:00:00 /usr/sbin/apache2 -k start
www-data  4528  2359  0 10:03 ?        00:00:00 /usr/sbin/apache2 -k start

3. 이름이나 프로세스 id로 출력
  프로세스의 이름이나 실행할 때 사용한 명령어로 프로세스를 찾으려면 "-C" 옵션 뒤에 검색할 단어를 입력합니다.
$ ps -C apache2
  PID TTY          TIME CMD
 2359 ?        00:00:00 apache2
 4524 ?        00:00:00 apache2
 4525 ?        00:00:00 apache2
...
  프로세스 id로 검색하려면 "-p" 옵션 뒤에 (콤마로 나눠서)프로세스 id들을 입력합니다.
$ ps -f  -p 3150,7298,6544
  "-C" 옵션을 사용할 땐 프로세스의 이름을 정확히 적어야 하며 부분적으로 적거나 와일드카드를 사용할 순 없습니다. 그렇기 때문에 일반적으로 프로세스를 검색할 땐 grep 명령어를 사용합니다.
$ ps -ef | grep apache

4. CPU나 메모리 사용률로 정렬
  시스템 관리자라면 메모리나 CPU를 많이 차지하는 프로세스를 찾을 때가 많습니다. 정렬 옵션을 사용하면 특정 필드나 파라미터를 기준으로 프로세스 목록을 정렬할 수 있습니다.

  다수의 필드를 기준으로 삼을 때는 "--sort" 옵션 뒤에 원하는 필드들을 콤마로 구분하여 적으면 됩니다. 또한 각 필드명 앞에 "-"나 "+"를 붙여 각각 내림차순이나 오름차순으로 정렬이 가능합니다.
$ ps aux --sort=-pcpu,+pmem
  아래는 CPU를 가장 많이 소모하고 있는 프로세스 5개를 보는 모습입니다.
$ ps aux --sort=-pcpu | head -5
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  2.6  0.7  51396  7644 ?        Ss   02:02   0:03 /usr/lib/systemd/systemd --switched-root --system --deserialize 23
root      1249  2.6  3.0 355800 30896 tty1     Rsl+ 02:02   0:02 /usr/bin/X -background none :0 vt01 -nolisten tcp
root       508  2.4  1.6 248488 16776 ?        Ss   02:02   0:03 /usr/bin/python /usr/sbin/firewalld --nofork
silver    1525  2.1  2.3 448568 24392 ?        S    02:03   0:01 /usr/bin/python /usr/share/system-config-printer/applet.py

5. 트리 형태로 보기
  프로세스 중 다수는 다른 부모 프로세스로부터 fork된 것이며 이 부모와 자식 관계를 파악하는 것이 중요할 때가 있습니다. 아래는 이름이 apache2인 프로세스를 검색하여 트리 형태로 출력하는 모습입니다.
$ ps -f --forest -C apache2
UID        PID  PPID  C STIME TTY          TIME CMD
root      2359     1  0 09:32 ?        00:00:00 /usr/sbin/apache2 -k start
www-data  4524  2359  0 10:03 ?        00:00:00  \_ /usr/sbin/apache2 -k start
www-data  4525  2359  0 10:03 ?        00:00:00  \_ /usr/sbin/apache2 -k start
www-data  4526  2359  0 10:03 ?        00:00:00  \_ /usr/sbin/apache2 -k start
www-data  4527  2359  0 10:03 ?        00:00:00  \_ /usr/sbin/apache2 -k start
www-data  4528  2359  0 10:03 ?        00:00:00  \_ /usr/sbin/apache2 -k start
  참고로 트리 형태로 출력할 땐 정렬을 사용하지 않아야 합니다.

6. 부모 프로세스의 자식 프로세스 출력
  아래는 apache 프로세스로부터 fork된 모든 프로세스를 찾는 예입니다.
$ ps -o pid,uname,comm -C apache2
  PID USER     COMMAND
 2359 root     apache2
 4524 www-data apache2
 4525 www-data apache2
 4526 www-data apache2
 4527 www-data apache2
 4528 www-data apache2
[term]

The first process that is owned by root is the main apache2 process and all other apache2 processes have been forked out of this main process. The next command lists all child apache2 processes using the pid of the main apache2 process

[term]
$ ps --ppid 2359
  PID TTY          TIME CMD
 4524 ?        00:00:00 apache2
 4525 ?        00:00:00 apache2
 4526 ?        00:00:00 apache2
 4527 ?        00:00:00 apache2
 4528 ?        00:00:00 apache2

7. 프로세스의 쓰레드 출력
  "-L" 옵션을 사용하면 프로세스들의 쓰레드들을 출력할 수 있습니다. 한 프로세스의 모든 쓰레드를 출력할 수도 있고 모든 프로세스의 쓰레드를 출력할 수도 있습니다. 아래는 PID가 3150인 프로세스가 소유한 모든 쓰레드를 보는 명령어입니다.
$ ps -p 3150 -L

8. 출력할 칼럼 지정
  원하는 칼럼들만 출력하게 할 수도 있습니다. 아래 명령어는 PID, 유저명, CPU, 메모리, 명령어 칼럼만 출력시키는 예입니다.
$ ps -e -o pid,uname,pcpu,pmem,comm
  칼럼명을 변경하는 것도 가능합니다.
$ ps -e -o pid,uname=USERNAME,pcpu=CPU_USAGE,pmem,comm
  PID USERNAME CPU_USAGE %MEM COMMAND
    1 root           0.0  0.0 init
    2 root           0.0  0.0 kthreadd
    3 root           0.0  0.0 ksoftirqd/0
    4 root           0.0  0.0 kworker/0:0
    5 root           0.0  0.0 kworker/0:0H
    7 root           0.0  0.0 migration/0
    8 root           0.0  0.0 rcu_bh
    9 root           0.0  0.0 rcuob/0
   10 root           0.0  0.0 rcuob/1

9. 프로세스가 존재한 시간 출력
  프로세스가 실행되고 나서 흐른 시간은 기본 상태에선 출력되지 않으며 "-o" 옵션을 사용해야 합니다.
$ ps -e -o pid,comm,etime

10. ps로 프로세스를 실시간으로 보기
  아래처럼 watch 명령어를 사용하면 실시간으로 프로세스를 관찰할 수 있습니다.
$ watch -n 1 'ps -e -o pid,uname,cmd,pmem,pcpu --sort=-pmem,-pcpu | head -15'
Every 1.0s: ps -e -o pid,uname,cmd,pmem,pcpu --...  Sun Dec  1 18:16:08 2013

  PID USER     CMD                         %MEM %CPU
 3800 1000     /opt/google/chrome/chrome -  4.6  1.4
 7492 1000     /opt/google/chrome/chrome -  2.7  1.4
 3150 1000     /opt/google/chrome/chrome    2.7  2.5
 3824 1000     /opt/google/chrome/chrome -  2.6  0.6
 3936 1000     /opt/google/chrome/chrome -  2.4  1.6
 2936 1000     /usr/bin/plasma-desktop      2.3  0.2
 9666 1000     /opt/google/chrome/chrome -  2.1  0.8
 3842 1000     /opt/google/chrome/chrome -  2.1  0.8
 4739 1000     /opt/google/chrome/chrome -  1.8  1.0
 3930 1000     /opt/google/chrome/chrome -  1.7  1.0
 3911 1000     /opt/google/chrome/chrome -  1.6  0.6
 3645 1000     /opt/google/chrome/chrome -  1.5  0.4
 3677 1000     /opt/google/chrome/chrome -  1.5  0.4
 3639 1000     /opt/google/chrome/chrome -  1.4  0.4
  위 명령어를 사용하면 1초마다 출력이 갱신된다. 단, top은 기본적으로 CPU와 메모리 사용률을 종합적으로 비교하여 정렬하는 반면 위에서는 메모리를 먼저 비교 후 CPU 사용률을 비교하여 정렬했기 때문에 결과는 서로 다를 것이다.
2013/12/05 15:40 2013/12/05 15:40
Posted
Filed under 취미 및 잡담

  오랫동안 잘 쓰던 저의 MX510이 무한 휠업 증상을 보이며 시망하셔서 스페이스바가 망가진 키보드와 함께 새로 구매하기로 했습니다. 옛날과 달리 평이 좋은 마우스가 딱히 안 보여서 싸고 무난할 것 같은 G400s으로 구입했는데 휠에 대해 안 좋은 평이 있어서 약간 걱정은 되지만 데스애더는 옛날과 다름없이 년마다 한 번씩 고장나는 내구성을 갖고 있다기에 어쩔 수 없이 이번에도 지포스를 선택했습니다. 다만 바뀐 지포스 AS 하청이 서비스면에서 최악을 달리기에 고장나지 않길 바래야겠습니다.

  키보드는 사실 전혀 기계식을 사고 싶지 않았는데 키패드 없는 컴팩트 모델을 구하려니 선택의 여지가 거의 없더군요. 청축은 진짜 싫고 그나마 멤브레인과 비슷한 리니어(중에서 흑축)로 골랐습니다. 기계식이 방수 빼곤 내구성이 좋다니 오래오래 썼으면 좋겠습니다.

2013/12/01 20:51 2013/12/01 20:51
Posted
Filed under 취미 및 잡담

  요즘 대세에 따라 에어캡을 써봤습니다. 물론 원래 사용하는 곳인 창문 유리(8개)에도 붙이긴 했는데 제 집의 섀시가 진짜...창틀 사이로 손가락이 들어갈 정도로 괴랄한 퀄리티를 자랑하여 아예 '이것은 벽이다'라는 마음으로 방풍 비닐 붙이듯 창문을 다 덮어버렸습니다. 그것도 이중으로. 덕분에 110cm x 10m의 에어캡과 14m 길이의 양면 테이프가 순삭 당했습니다. 원래 쓰고도 남았어야 했는데 길이 재서 120cm 이상으로 사야지 해놓고 정작 주문을 멍청멍청하게 110cm으로 하는 바람에 모자른 부분을 이어붙이느라 작업 한 번 힘들게 했네요. 단열 효과가 있으니 여름에도 저대로 두고 에어컨 빵빵하게 켜볼 생각입니다. 참고로 주방 창문, 화장실 창문 때문에 환기도 걱정 없습니다.

2013/12/01 20:46 2013/12/01 20:46
Posted
Filed under 취미 및 잡담
링크: http://www.steambb.com/bbs/board.php?bo_table=gamebb&wr_id=486174&sca=&sfl=wr_name%2C0&stx=EarthCrash&sop=and&appid=&grade=

  스팀 머신에 회의적인 의견을 피력하는 글에서 리눅스가 세상에서 거의 쓰이지 않는다는 식으로 이야기가 흘러서 그에 대한 반론과 함께 밸브의 스팀 머신 및 스팀OS가 가져올 수 있는 긍정적인 효과를 주장했다.
  일단 업계 종사자(시스템 관리자)로서 말씀드리자면 리눅스는 지금도 산업기반 시설에서 많이 쓰이며 그에 대한 이야기는 관련 커뮤니티에 자주 나옵니다.(해외) 해외를 기준으로 한다면 Solitude님이 말씀하신 생활 속 OS로도 사실은 많이 쓰이는데 말씀하신 일상 시스템들은 물론이고 미션 크리티컬하게 쓰이는 곳의 유명한 예로는 일본 신칸센에 쓰이는 시스템의 대부분, 샌 프란시스코 교통제어, 토요타의 스마트카, 뉴욕 증권 거래소, CERN의 입자 가속기, 미국 거의 전역의 항공 제어, 미국 핵잠수함 등이 있습니다. 안드로이드(커널)나 스마트TV 같은 건 말할 것도 없고요. 다만 Solitude님 말씀처럼 우리나라는 윈도우에 종속되서 그런지 이상할 정도로 각 생활 속 시설도 윈도우가 지배하고 있는 게 사실입니다. 지하철 TV에서도 윈도우 화면이 자주 목격되죠.

  일반 사물에 대한 도입이 아닌 서버로서는 래거시한 웹 서버나 메일 서버 같은 것은 말할 것도 없이 초강세이고 거기에 더하여 가상화와 클라우드로 인해 대략 작년부터 금융권 등지에서 리눅스의 도입이 급격히 증가하는 추세입니다.(특히 기존 인프라가 없어 신기술 도입이 수월한 개발도상국들은 더 그렇습니다.) 또한 메인프레임을 유닉스나 리눅스로 다운사이징하는 사례도 늘어나고 있고 내년 오픈 예정인 한국거래소의 차세대 증권 거래 시스템인 엑스추어+도 리눅스입니다. 당장 제 회사의 甲사에서도 클라우드 사업으로 리눅스가 정말 많이 쓰입니다. 근데 고액으로도 개발자가 없어서 못구하죠.(애플리케이션 개발자 노리시는 분들은 어서 리눅스 쪽으로...)

  이렇게 우리 눈에 안 보이는 곳에선 잘 나가는 리눅스지만 데스크탑에선 누구나 알다시피 MS의 지배로 맥을 못 추고 있습니다. 맥도 크게 다르지 않지만 리눅스보단 낫죠. 전 그 결정적인 요인이 게임과 오피스 스위트라고 생각합니다. 일상적으로 사용하는 대부분의 다른 것들은 대체재가 있습니다. 오피스도 기존 문서 인프라의 호환 때문에 그렇지 리브레오피스나 오픈오피스도 크게 꿀리진 않습니다. 가장 큰 문제는 사실 게임이라고 생각합니다. 전 이 부분에 스팀OS를 주목하고 있습니다. EpicFail님과 clocks님이 매우 좋은 말씀을 해주셨는데 사실 스팀의 독점보다 OS의 독점 문제가 더 시급하다고 생각합니다. 스팀의 독점 문제는 OS의 올가미에서 벗어났을 때 때리기 시작하는 게 최선일 것 같습니다. 그 전에 때리면 언제 또 이런 기회가 올지 모르니까요. 고로 전 이번 스팀 머신이 반드시 성공했으면 좋겠습니다.
2013/11/28 17:14 2013/11/28 17:14
Posted
Filed under 취미 및 잡담
링크: http://www.steambb.com/bbs/board.php?bo_table=gamebb&wr_id=485665&sca=&sfl=wr_name%2C1&stx=EarthCrash&sop=and&appid=&grade=

  오늘 갑자기 스팀 머신에 대한 이야기가 많이 보여서 저도 한 숟가락 얹어보려 합니다.

  사양에 대해서는 어차피 여러 업체가 만드는 것이기 때문에 성급히 판단할 필요가 없다고 봅니다. 여러 업체에서 리눅스 기반의 OS를 넣은 HTPC를 판다고 보시면 됩니다.

  일단 리눅스를 써서 얻을 수 있는 단기적인 실익은 윈도우 라이선스비 제거를 통한 단가 절약을 하드웨어에 투자할 수 있으며, OS를 마음대로 수정할 수 있다는 것으로 봐야 할 겁니다. OS로 인한 성능 이득은 극소량일 것 같고요. 다만 OpenGL에 의한 이득은 밸브가 L4D를 통해 보여준 것처럼 개발사의 역량에 따라 상당히 클 수도 있을 것 같습니다.

  윈도우가 아니다 보니 윈도우 독점 기술인 DX를 지원하지 못해서 할 게임이 별로 없지 않느냐는 문제가 가장 큰 걸림돌인데 이건 순전히 밸브의 역량에 달렸다고 봅니다. 멀티플랫폼을 지원할수록 판매수익률을 퍼블리셔에 유리하게 책정해준다던가, 머신 자체를 무리해서라도 많이 뿌린 다음 '스팀 머신으로 게임하는 사람 많으니 스팀OS 지원 안 하면 이제부터 니네꺼 덜 팔릴텐데?'라는 상황으로 몰아붙이던가, 지원하는 업체에 보조금을 뿌리던가...어떻게든 개발사들이 스팀OS(와 그에 따라 자연스럽게 리눅스)를 지원할 생각이 들게 만들어야죠. 그리고 지금의 밸브에겐 그걸 실현할 제반이 충분히 갖춰졌다고 봅니다.

  사실 밸브의 이번 행보는 그 동안 게임 계에서 거의 버림 받았던 리눅스 생태계에 큰 영향을 끼칠 수 밖에 없으므로 (직업적으로 리눅스와 관련이 있는)저는 매우매우 긍정적으로 봅니다. 인디 게임은 물론이고 실제로 리눅스를 챙기기 시작한 대형 게임사들도 꽤 보이고 어제도 엔비디아의 시니어 프로덕트 매니저가 오버클로킹 지원과 관련한 문의에 답변하던 중 리눅스 게이밍을 진중하게 고려하기 시작했다고 발언했었죠. 일단 스팀 머신이 어느 정도 성공한다면 더 이상 GPU 제조사(특히 망할 AMD놈들)가 지금처럼 OpenGL을 괄시하지 못할 것이고 그러면 지금처럼 DX가 독점하여 기술 발전이 저해되는 현상도 방지하는 부가 효과를 얻을 수 있을 겁니다. 또한 윈도우 종속성도 낮아져서 OS선택권까지 넓어질 겁니다. 사실 게임과 (우리나라의 경우)은행만 아니라면 요즘엔 윈도우 대신 리눅스를 못 쓸 이유도 없을 정도로 리눅스가 예전과 달리 사용하기 좋아졌습니다.

  사실 우리의 입장에서는 이번 사업을 상당히 의아하게 생각할 수도 있지만 서양은 PC게임보다 콘솔 게임 문화가 훨씬 발달해 있고 심지어 PC게임을 하긴 하는데 컴퓨터의 컴자도 모르는 사람들이 많다보니 이런 사업을 추진할 수 있었던 것 같습니다. PC에 매우 익숙한 편인 우리에겐 별로로 보일 수 있어도 콘솔 게임만 하던 이들과 게임만을 위해 PC를 사용하던 이들에겐 메리트가 있는 것이죠.

  이번 행보로 전 밸브에 대한 이미지가 정말 좋아졌습니다. 원래 나빴던 건 아니었지만요. 스팀도 처음 나올 때만 해도 성공하리라 본 사람이 거의 없었죠. 저 조차 100% 실패할 것이라 장담했는데...그렇게 많은 타 회사 게임들을 수용하는 신의 한 수를 둘 것이라고는 생각 못했었습니다. 스팀 때도 그렇고 그들의 무모하다고까지 느껴지는 도전의식은 정말 대단하다고 밖에 할 수 없네요. 만약 이번 전략이 크게 성공한다면 게임에 있어서 윈도우의 영향력을 뛰어넘는 진정한 패왕이 될 것이라고 봅니다. 이제 밸브도 슬슬 독점법을 걱정해야 하지 않을까 싶네요.
2013/11/28 16:54 2013/11/28 16:54
Posted
Filed under 프로그램과 명령어/모니터링
참조 원문: Monitor disk io on linux server with iotop and cron

  iotop을 그냥 실행하면 프로세스들의 디스크IO 현황을 보여줍니다. 여기서 cron을 사용하여 지속적으로 현황을 기록한 후 분석하는 것이 이 글의 목표입니다. 이 글에서는 cron을 통해 iotop을 백그라운드로 실행하여 디스크IO 현황을 파일로 기록합니다. 아래는 cron에 적용할 명령어와 출력 예제입니다.
$ iotop -botqqqk --iter=60
17:38:13   335 be/3 root        0.00 K/s    7.64 K/s  0.00 %  2.30 % [jbd2/sda6-8]
17:38:13  3296 be/4 enlighte    0.00 K/s   15.28 K/s  0.00 %  0.00 % chrome
17:38:14   335 be/3 root        0.00 K/s    7.62 K/s  0.00 %  3.35 % [jbd2/sda6-8]
17:38:14  3293 be/4 enlighte    0.00 K/s    7.62 K/s  0.00 %  0.02 % chrome
17:38:15  3319 be/4 enlighte    0.00 K/s   19.09 K/s  0.00 %  0.00 % chrome
  iotop을 실행하기 위해선 root 권한이 있어야 하므로 우분투 계열에서 시험해보려면 sudo 명령어가 필요합니다. 위 옵션 중 가장 중요한 것은 "b"로서 배치 모드로 실행하게 만듭니다. 배치 모드일 때는 한 화면에 지속적으로 출력을 갱신시키지 않고 결과를 그대로 출력합니다. 이를 통해 일정 기간 동안의 IO 사용률을 기록할 수 있습니다. "o" 옵션은 실제로 IO가 발생한 프로세스들만 출력시키는 옵션입니다. 이 옵션을 주지 않으면 모든 프로세스가 출력되어 필요하지 않은 내용까지 출력됩니다. "t" 옵션은 출력에 시간을 포함시키는 역할을 합니다. "k" 옵션은 모든 크기 수치를 킬로바이트로 표시하게 합니다.

  출력 내용을 기록하기 위해 간단히 파일로 리다이렉트를 할 겁니다. 위치는 /var/log, 파일명은 iotop로 할 것입니다.
$ iotop -botqqqk --iter=60 >> /var/log/iotop
  이 명령어를 실행하면 1초당 1번씩 총 60번의 iotop 출력 결과가 /var/log/iotop 파일에 기록됩니다. 그러므로 이 명령어는 cron을 통해 매분 실행해야 합니다. root 권한으로 /etc/cron.d/iotop 파일을 생성하여 아래의 내용을 넣습니다.
* * * * * root /usr/sbin/iotop -botqqqk --iter=60 >> /var/log/iotop
  이제 cron이 매분 위 명령어를 실행할 것이며 그때마다 1분 동안 1초마다 샘플을 수집하여 모든 IO 활동을 /var/log/iotop에 기록합니다. 행여나 프로그램의 경로가 위와 다를 수 있으니 which 명령어를 통해 iotop이 있는 위치를 확인합니다.
$ which iotop
/usr/sbin/iotop
  이제 출력 결과 중 디스크IO가 10K/s 이상인 것들만 기록하도록 실행 명령어를 변경해보겠습니다.
$ sudo iotop -botqqqk --iter=60 | grep -P "\d\d\.\d\d K/s"
17:49:02   335 be/3 root        0.00 K/s   41.90 K/s  0.00 %  8.43 % [jbd2/sda6-8]
17:49:02  3307 be/4 enlighte    0.00 K/s  152.36 K/s  0.00 %  0.87 % chrome
17:49:10  3310 be/4 enlighte    0.00 K/s   22.80 K/s  0.00 %  0.10 % chrome
17:49:15  3319 be/4 enlighte    0.00 K/s   26.54 K/s  0.00 %  2.50 % chrome
17:49:16  3310 be/4 enlighte    0.00 K/s   19.02 K/s  0.00 %  0.00 % chrome
  정규식 부분만 바꾸면 원하는 조건으로 쉽게 추출할 수 있습니다. 예를 들어 1M/s 이상만 추출하고 싶다면 정수 부분을 위의 2개에서 4개로만 바꾸면 됩니다.

  위의 명령어를 이전에 생성한 cron 파일에 적용합니다.
* * * * * root /usr/sbin/iotop -botqqqk --iter=60 | grep -P "\d\d\.\d\d K/s"  >> /var/log/iotop
  아래는 그 결과의 예입니다.
13:19:01  1325 be/4 root        0.00 K/s 1897.74 K/s  0.00 %  5.65 % [kjournald]
13:24:22  2836 be/4 mysql       0.00 K/s 1071.07 K/s  0.00 %  0.18 % mysqld
13:32:01  1325 be/4 root        0.00 K/s 1469.17 K/s  0.00 %  7.13 % [kjournald]
13:46:18 10978 be/4 binary   1634.31 K/s    0.00 K/s  0.00 % 23.87 % php-fpm: pool binary
13:47:01  2955 be/4 mysql       0.00 K/s 8738.80 K/s  0.00 %  0.00 % mysqld
14:17:01  1325 be/4 root        0.00 K/s 1354.01 K/s  0.00 %  6.84 % [kjournald]
14:23:02  1325 be/4 root        0.00 K/s 1146.18 K/s  0.00 %  4.69 % [kjournald]
14:25:01  1325 be/4 root        0.00 K/s 1494.21 K/s  0.00 % 11.05 % [kjournald]
14:34:01  9938 be/4 mysql       0.00 K/s 2878.55 K/s  0.00 %  0.00 % mysqld
14:36:01  9424 be/4 mysql       0.00 K/s 2694.21 K/s  0.00 %  0.00 % mysqld
  여기에 추가로 logrotate를 사용하여 매주 로그 파일을 교체해주면 더 좋습니다. /etc/logrotate.d/iotop 파일을 생성하여 아래 내용을 넣기만 하면 됩니다.
/var/log/iotop.log {
weekly
compress
notifempty
missingok
}
2013/10/25 11:20 2013/10/25 11:20
Posted
Filed under 취미 및 잡담
링크: '클라우드' 한국보다 동남아서 더 인기, 왜?

  요점을 정리하자면

  1. 신흥 국가들은 미리 구축한 기반 시설이 없으므로 교체에 대한 고민이나 리스크, 또는 기존 방식의 이점을 포기해야 하는 문제가 없으므로 클라우드를 도입하기 수월하다.
  2. 대기업이 자기 계열사와 알콩달콩 다 해먹으면서 구축비용을 절감하다보니 클라우드 도입 같은 큰 일이 시장에 잘 안 떨어짐.
  3. 클라우드 도입한다고 해놓고선 VDI만 해보고 '별로네'하고 포기.(VDI는 보안과 접근성을 중시하므로 서버 측면의 클라우드와는 추구하는 바가 다름)
  1번이 가장 중요한 것 같네요. 어쩌면 2번도 제 생각보다 영향이 클지도 모르겠습니다.

2013/10/13 16:14 2013/10/13 16:14