업데이트를 하거나 쓰지 않는게 답인 듯 하다.


Ubuntu 10.10 (Maverick Meerkat) end-of-life reached on April 10, 2012

This note is just to confirm that the support period for Ubuntu 10.10 (Maverick Meerkat) formally ends on April 10, 2012 and Ubuntu Security Notices no longer includes information or updated packages for Ubuntu 10.10.

The supported upgrade path from Ubuntu 10.10 is via Ubuntu 11.04 (Natty Narwhal). Instructions and caveats for the upgrade may be found at https://help.ubuntu.com/community/NattyUpgrades. Note that upgrades to version 11.04 and beyond are only supported in multiple steps, via an upgrade first to 11.04, then to 11.10. Both Ubuntu 11.04 and Ubuntu 11.10 continue to be actively supported with security updates and select high-impact bug fixes. All announcements of official security updates for Ubuntu releases are sent to the ubuntu-security-announce mailing list, information about which may be found athttps://lists.ubuntu.com/mailman/listinfo/ubuntu-security-announce.

Since its launch in October 2004 Ubuntu has become one of the most highly regarded Linux distributions with millions of users in homes, schools, businesses and governments around the world. Ubuntu is Open Source software, costs nothing to download, and users are free to customize or alter their software in order to meet their needs.

Originally posted to the ubuntu-announce mailing list by Kate Stewart on Tue Apr 10 15:39:12 UTC 2012




출처 : http://fridge.ubuntu.com/2012/04/10/ubuntu-10-10-maverick-meerkat-end-of-life-reached-on-april-10-2012/

'Embedded Lab > linux, x86' 카테고리의 다른 글

[우분투에서 monaco 폰트 설정]  (0) 2014.04.27
[ln 명령어]  (0) 2014.02.06
[특수문자표]  (0) 2013.11.04
[GFS(Google File System)]  (0) 2013.10.28
[top 명령어]  (0) 2013.10.23
Posted by cyj4369
,

Ubuntu 에서 추가 글꼴 설정하기.

[#1] 폰트 다운로드


[#2] Font 설정

sudo mkdir /usr/share/fonts/truetype/custom/
sudo cp *.ttf /usr/share/fonts/truetype/custom/
sudo fc-cache -f -v

Ubuntu 11.04 에서는 antialias true 로 enable 되어 있어서 추가로 설정하지 않아도 되는듯…

[#3] 적용





[#4] Emacs 에서 monaco font 설정

다른 글을 보니깐 아래와 같이 하면 된다고 하던데…

echo “Emacs.font: Monaco-10″ > ~/.Xresources
xrdb -merge ~/.Xresources

잘 안 되는 듯 하여, emacs configuration file 에 font 설정하도록 추가.
덕분에 gitHub 사용법 좀더 찾아보고 https://github.com/tkhwang/tkhwang-dotemacs 에도 update 완료. :)

(if (eq system-type 'gnu/linux)
    (progn
      (setq initial-frame-alist '((top . 10) (left . 100)))
      (setq default-frame-alist
        (append
         '(
           (font . "-*-Monaco-normal-normal-normal-*-13-*-*-*-m-0-iso10646-1")
           (width . 140)
           (height . 80)
           )
         default-frame-alist))))



출처 : http://tkhwang.pe.kr/humblecoding/archives/680

'Embedded Lab > linux, x86' 카테고리의 다른 글

[우분투 10.10 maveric apt-get update 에러]  (0) 2014.05.04
[ln 명령어]  (0) 2014.02.06
[특수문자표]  (0) 2013.11.04
[GFS(Google File System)]  (0) 2013.10.28
[top 명령어]  (0) 2013.10.23
Posted by cyj4369
,

ln 명령은 파일을 링크할 때 사용하는 명령입니다.

리눅스 시스템 상에는 심볼릭링크와 하드링크 두가지의 링크가 있습니다.

 

심볼릭링크는 원본파일을 가리키도록 링크만 시켜둔 것으로 윈도우의 바로가기와 같다고 보시면 됩니다. 심볼릭링크는 원본파일이 삭제되면 링크파일은 작동하지 않게 됩니다.

 

하드링크는 원본파일과 이름은 다르지만 동일한 파일입니다. 하드링크에서는 원본파일이나 링크파일 둘중의 하나가 삭제되더라도 나머지 하나는 그대로 남아 정상 동작 합니다. 또한 하드링크는 원본파일의 내용이 변경될 경우에 링크파일의 내용도 자동으로 변경됩니다.

 

명령어 위비: /bin/ln

사용형식 : ln [옵션] 원본파일 대상파일

             ln [옵션] 원본파일 대상디렉토리

옵션

-b, --backup : 대상파일이 이미 존재할 경우 백업파일을 만든 후에 링크파일을 생성

-d, -F, --directory : 디렉토리에 대한 하드링크파일 생성을 가능하게함

-f : 대상파일이 존재할 경우 대상파일을 지우고 링크파일을 생성

-i : 대상파일이 존재할 경우 대상파일을 지울 것인가 확인하게함

-s : 심볼릭링크파일을 생성

-S : 만약에 대상이 이미 있어서 백업을 해야 할 경우에 그 백업파일에서 사용 할 파일이름의

      접미사(suffix)를 지정할 수 있음

-t, --target-directory=DIRECTORY : 링크파일을 생성할 디렉토리를 지정

 

예1) ln 명령어를 사용하여 하드링크 생성하기

우선 hard_source 파일을 hard_link 파일로 하드링크 시킨 후 두 파일의 내용을 확인해 보도록 하겠습니다.

 

#ln hard_source hard_link

#

#ls -l

합계 12
-rw-r--r-- 2 root root 15  7월 19 21:54 hard_link

-rw-r--r-- 2 root root 15  7월 19 21:54 hard_source

 

#cat hard_source

linux

network

windows

 

#cat hard_link

linux

network

windows

 

위에서 보시는 것과 같이 두파일의 내용이 동일하다는 것을 알 수 있습니다.

이번에는 원본파일 내용의 첫행을 지운뒤 링크파일과 비교해 보도록 하겠습니다.

 

#cat hard_source

network

windows

 

#cat hard_link

network

windows

 

위와 같이 원본파일만 수정했는데도 링크된 파일의 내용도 같이 수정됨을 확인 할 수 있습니다.

 

 

예2)심볼릭링크 사용하기

심볼릭링크를 사용하기 위해서는 -s 옵션을 사용해야 합니다.

sym_source 파일을 만든뒤 sym_link 파일로 심볼릭링크 시키도록 하겠습니다.

 

#ln -s sym_source sym_link

#ls -l

lrwxrwxrwx 1 root root 14  7월 19 22:09 sym_link -> sym_source

-rw-r--r-- 1 root root 22  7월 19 22:09 sym_source

 

여기서 확인하고 넘어가야 할 부분은 심볼릭링크된 파일의 퍼미션이 하드링크일때와는 다르게

lrwxrwxrwx 이라는 것과 -> 로 원본을 가리켜 심볼릭링크된 파일이라는 것을 확인 할 수있게 해줍니다.

 

[출처] ln 명령어|작성자 김동훈



출처 : http://blog.naver.com/PostView.nhn?blogId=ehdgns621&logNo=130056448055

'Embedded Lab > linux, x86' 카테고리의 다른 글

[우분투 10.10 maveric apt-get update 에러]  (0) 2014.05.04
[우분투에서 monaco 폰트 설정]  (0) 2014.04.27
[특수문자표]  (0) 2013.11.04
[GFS(Google File System)]  (0) 2013.10.28
[top 명령어]  (0) 2013.10.23
Posted by cyj4369
,

ㆍ⦁∎◦∘∙⋅▪▫■○▲△▴▵▶▷▸▹►▻▼▽▾▿◀◁◂◃◄◅◆◇◈◉

ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ

ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ

 

⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇

⓪①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳

㉑㉒㉓㉔㉕㉖㉗㉘㉙㉚㉛㉜㉝㉞㉟㊱㊲㊳㊴㊵㊶㊷㊸㊹㊺㊻㊼㊽㊾㊿



❶❷❸❹❺❻❼❽❾❿⓫⓬⓭⓮⓯⓰⓱⓲⓳⓴

➊➋➌➍➎➏➐➑➒➓

 

㈀㈁㈂㈃㈄㈅㈆㈇㈈㈉㈊㈋㈌㈍         ㉠㉡㉢㉣㉤㉥㉦㉧㉨㉩㉪㉫㉬㉭

㈎㈏㈐㈑㈒㈓㈔㈕㈖㈗㈘㈙㈚㈛         ㉮㉯㉰㉱㉲㉳㉴㉵㉶㉷㉸㉹㉺㉻

 

㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩                      ㊀㊁㊂㊃㊄㊅㊆㊇㊈㊉

 

㈪㈫㈬㈭㈮㈯㈰                                ㊊㊋㊌㊍㊎㊏㊐

㋀㋁㋂㋃㋄㋅㋆㋇㋈㋉㋊㋋

㏠㏡㏢㏣㏤㏥㏦㏧㏨㏩㏪㏫㏬㏭㏮㏯㏰㏱㏲㏳㏴㏵㏶㏷㏸㏹㏺㏻㏼㏽㏾

 

[화폐기호] ==================================================================

¢£¥₩₠₡₢₣₤₥₦₧₨₩₪₫€₭₮₯₰₱

 

[로마자]=====================================================================

ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅬⅭⅮⅯↀↁↂ

ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅺⅻⅼⅽⅾⅿ

 

[분수]========================================================================

¼½¾⅓⅔⅕⅖⅗⅘⅙⅚⅛⅜⅝⅞

 

[원, 괄호 한자, 일어]===========================================================

㈱㈲㈳㈴㈵㈶㈷㈸㈹㈺㈻㈼㈽㈾㈿㉀㉁㉂㉃

㊑㊒㊓㊔㊕㊖㊗㊘㊙㊚㊛㊜㊝㊞㊟㊠㊡㊢㊣㊤㊥㊦㊧㊨㊩㊪㊫㊬㊭㊮㊯㊰

㋐㋑㋒㋓㋔㋕㋖㋗㋘㋙㋚㋛㋜㋝㋞㋟㋠㋡㋢㋣㋤㋥㋦㋧㋨㋩㋪㋫㋬㋭㋮㋯

㋰㋱㋲㋳㋴㋵㋶㋷㋸㋹㋺㋻㋼㋽㋾

 

[화살표]=====================================================================

←↑→↓↔↕↖↗↘↙↚↛↜↝↞↟↠↡↢↣↤↥↦↧↨↩↪↫↬↭↮↯↰↱↲↳↴↵↶↷↸↹↺↻↼↽↾↿⇀⇁⇂⇃⇄⇅⇆⇇⇈⇉⇊⇋⇌⇍⇎⇏⇐⇑⇒⇓⇔⇕⇖⇗⇘⇙⇚⇛⇜⇝⇞⇟⇠⇡⇢⇣⇤⇥⇦⇧⇨⇩⇪⇫⇬⇭⇮⇯⇰⇱⇲⇳

➔➘➙➚➛➜➝➞➟➠➡➢➣➤➥➦➧➨➩➪➫➬➭➮➯➰➱➲➳➴➵➶➷➸➹➺➻➼➽➾

⟰⟱⟲⟳⟴⟵⟶⟷⟸⟹⟺⟻⟼⟽⟾⟿⤀⤁⤂⤃⤄⤅⤆⤇⤈⤉⤊⤋⤌⤍⤎⤏⤐⤑⤒⤓

⤔⤕⤖⤗⤘⤙⤚⤛⤜⤝⤞⤟⤠⤡⤢⤣⤤⤥⤦⤧⤨⤩⤪⤫⤬⤭⤮⤯⤰⤱⤲⤳⤴⤵⤶⤷⤸⤹⤺⤻⤼⤽⤾⤿⥀⥁

⥂⥃⥄⥅⥆⥇⥈⥉⥊⥋⥌⥍⥎⥏⥐⥑⥒⥓⥔⥕⥖⥗⥘⥙⥚⥛⥜⥝⥞⥟⥠⥡⥢⥣⥤⥥⥦⥧⥨⥩⥪⥫⥬⥭⥮⥯⥰⥱⥲⥳⥴⥵⥶⥷⥸⥹⥺⥻⥼⥽⥾⥿

¬ ̄¦￧│←↑→↓

 

[수학기호, 연산자]============================================================

∀∁∂∃∄∅∆∇∈∉∊∋∌∍∎∏∐∑−∓∔∕∖∗∘∙√∛∜∝∞∟∠∡∢∣∤∥∦∧∨∩∪∫∬∭∮∯∰∱∲∳∴∵∶∷∸∹∺∻∼∽∾∿≀≁≂≃≄≅≆≇≈≉≊≋≌≍≎≏≐≑≒≓≔≕≖≗≘≙≚≛≜≝≞≟≠≡≢≣≤≥≦≧≨≩≪≫≬≭≮≯≰≱≲≳≴≵≶≷≸≹≺≻≼≽≾≿⊀⊁⊂⊃⊄⊅⊆⊇⊈⊉⊊⊋⊌⊍⊎⊏⊐⊑⊒⊓⊔⊕⊖⊗⊘⊙⊚⊛⊜⊝⊞⊟⊠⊡⊢⊣⊤⊥⊦⊧⊨⊩⊪⊫⊬⊭⊮⊯⊰⊱⊲⊳⊴⊵⊶⊷⊸⊹⊺⊻⊼⊽⊾⊿⋀⋁⋂⋃⋄⋅⋆⋇⋈⋉⋊⋋⋌⋍⋎⋏⋐⋑⋒⋓⋔⋕⋖⋗⋘⋙⋚⋛⋜⋝⋞⋟⋠⋡⋢⋣⋤⋥⋦⋧⋨⋩⋪⋫⋬⋭⋮⋯⋰⋱

⋲⋳⋴⋵⋶⋷⋸⋹⋺⋻⋼⋽⋾⋿

 

[단위 기호 모음]==============================================================

㎀㎁㎂㎃㎄㎅㎆㎇㎈㎉㎊㎋㎌㎍㎎㎏㎐㎑㎒㎓㎔㎕㎖㎗㎘㎙㎚㎛㎜㎝㎞㎟㎠㎡㎢㎣㎤㎥㎦㎧㎨㎩㎪㎫㎬㎭㎮㎯㎰㎱㎲㎳㎴㎵㎶㎷㎸㎹㎺㎻㎼㎽㎾㎿㏀㏁㏂㏃㏄㏅㏆㏇㏈㏉㏊㏋㏌㏍㏎㏏㏐㏑㏒㏓㏔㏕㏖㏗㏘㏙㏚㏛㏜㏝

 

[기타 기호 모음]==============================================================

㈜㉿〄

☎☏☐☑☒☓

♠♡♢♣♤♥♦

♲♳♴♵♶♷♸♹♺♻♼☢

♩♪♫♬♭♮♯♰♱

☼☀☽☾☁☂☃☄★☆☇☈☉☊☋☌☍

✓✔✕✖✗✘

✙✚✛✜✝✞✟✠✡✢✣✤✥✦✧✩✪✫✬✭✮✯✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋

‐‑‒–—―‖‗‘’‚‛“”„‟†‡•‣․‥…‧‰‱′″‴‵‶‷‸‹›※‼‽‾‿⁀⁁⁂⁃⁄⁅⁆⁇⁈⁉⁑

▀▁▂▃▄▅▆▇█▉▊▋▌▍▎▏▐░▒▓▔▕

■□▢▣▤▥▦▧▨▩▬▭▮▯▰▱◊○◌◍◎●◐◑◒◓◔◕◖◗◘◙◚◛◜◝◞◟◠◡◢◣◤◥◧◨◩◪◫◬◭◮◯

☖☗☚☛☜☝☞☟☠☡☣☤☥☦☧☨☩☪☫☬☭☮☯

☰☱☲☳☴☵☶☷

☸☹☺☻☿♀♁♂♃♄♅♆♇♈♉♊♋♌♍♎♏♐♑♒♓♔♕♖♗♘♙♚♛♜♝♞♟♧♨

✁✂✃✆✇✈✉✌✍✎✏✐✑✒❍❏❐❑❒❖❘❙❚❛❜❝❞❡❢❣❤❥❦❧

⦅⦆⦿⧺⧻⧼⧽⧾

⨀⨁⨂⨃⨄⨅⨆⨇⨈⨉

、。〃々〆〇〈〉《》「」『』【】〒〓〔〕〖〗〘〙〚〛〜〝〞〟〠〡〢〣〤〥〦〧〨

〩〪〱〲〳〴〵〶〷〸〹〺〻〼〽〾〿

゠ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネ

ノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶヷヸヹヺ・ーヽヾヿ

 

︰︱︲︳︴︵︶︷︸︹︺︻︼︽︾︿﹀﹁﹂﹃﹄﹅﹆﹇﹈﹉﹊﹋﹌﹍﹎﹏

﹐﹑﹒﹓﹔﹕﹖﹗﹘﹙﹚﹛﹜﹝﹞﹟﹠﹡﹢﹣﹤﹥﹦﹧﹨﹩﹪﹫

'Embedded Lab > linux, x86' 카테고리의 다른 글

[우분투에서 monaco 폰트 설정]  (0) 2014.04.27
[ln 명령어]  (0) 2014.02.06
[GFS(Google File System)]  (0) 2013.10.28
[top 명령어]  (0) 2013.10.23
[커널스택]  (0) 2013.08.13
Posted by cyj4369
,

GFS는 구글이 만든 분산 파일시스템입니다. Hadoop의 HDFS(Hadoop Distributed File System)는 GFS를 기반으로 만들어졌습니다.

Key Design Goals

* Component failures are the norm rather than the exception
GFS는 수천개의 값싼 PC로 이루어진 클러스터 위에서 동작할 것을 가정하고 만들어졌습니다.
한두개의 하드 디스크 불량이나 네트워크 문제에도 서비스는 원활하게 돌아가야 합니다.

* Files are huge
GFS는 수 GB 단위의 큰 파일에 특화된 파일시스템입니다. 작은 파일도 저장할 수는 있지만 많은 숫자의 작은 파일에는 효율적이지 않습니다.
때문에 64KB의 큰 block size를 이용합니다. (FAT/NTFS/ext3 등에서는 1KB~4KB 정도입니다.)

* Modify / Delete are rare
GFS는 구글이 사용하는 DBMS인 BigTable을 염두에 두고 설계되었습니다.
이 시스템의 특징은 file의 read / append가 집중적으로 이루어지며, modify / delete는 거의 없다는 것입니다. append 또한 sequential하게 이루어지는 경우가 많습니다.

* High Bandwidth over Fast Response
GFS는 응답시간보다는 높은 대역폭에 더 특화되어 있습니다.
몇몇 application은 빠른 응답시간을 필요로 하지만, 그보다 많은 application이 bulk data processing을 필요로 한다고 가정하고 있습니다.

Interface

일반적인 파일시스템과 같이 create, delete, open, close, read, write 등의 연산을 지원합니다.
그 외에 중요한 것으로 snapshot과 record append 연산이 있습니다.
snapshot은 현재 파일과 디렉토리의 copy를 빠른 시간 안에 만들어 냅니다.
record append는 여러 개의 client가 같은 파일에 동시에 접근하여 atomic append 연산을 할 수 있도록 지원합니다.
이로서 multi-way merge나 producer-consumer queue를 별도의 lock 없이 구현할 수 있습니다.

File Structure

파일은 여러 개의 블록으로 나누어 저장됩니다.
GFS는 각각의 블록을 chunk라고 부르며, 시스템 내부적으로 chunk는 고정된 크기(64MB)의 linux file로 저장됩니다.
각각의 chunk에는 64bit integer로 된 unique한 handle이 붙어 있습니다.

Architecture

GFS는 한 개의 master server와 여러 개의 chunkserver로 구성되어 있습니다.
master server와 chunkserver는 user-level linux process이며, 원한다면 master와 chunkserver를 같은 시스템에서 돌릴 수도 있습니다.
master는 각각의 파일과 chunk의 일련번호를 관리하고, 일정한 주기로 Heartbeat 신호를 보내 chunkserver가 살아있는지를 점검하며, access control을 관리하는 등의 일을 합니다. 파일시스템의 관리를 위한 metadata는 접근속도를 위해 master의 메인 메모리에 저장됩니다.
chunkserver는 각각의 chunk를 저장하는데, 한두대의 chunkserver가 죽어도 서비스가 유지되도록 여러 개의 chunkserver에 chunk의 사본이 3개 저장됩니다.

Client

API를 통해 GFS에 접근하는 프로그램을 client라고 부릅니다.
관리와 consistency 문제를 단순화하기 위해 전체 시스템에 master는 하나뿐이지만, master가 병목이 되는 것을 막기 위해 데이터 전송은 master를 통해서 이루어지지 않습니다.
예를 들어 client가 파일을 읽기 위해 파일 이름과 chunk 번호를 master에 전송하면, master는 client에 chunk의 복사본이 있는 위치와 handle을 반환합니다. client가 그 중 가까운 chunk server에 다시 요청을 전송하면, chunk server가 client에 데이터를 직접 전송합니다.

Metadata

master가 저장하는 metadata는 세가지입니다. 파일의 namespace(access control, 파일이름, 디렉토리 구조 등 일반적인 파일시스템이 갖는 정보), 파일과 chunk handle 사이의 mapping, 각각의 chunk 사본의 위치입니다. 모든 metadata는 master의 메인 메모리에 저장되며, 앞의 두 가지(namespace와 mapping)는 log의 형태로 디스크에도 저장됩니다. 디스크에 저장되는 정보를 log로 제한함으로서 master의 동작을 단순화할 수 있고, master가 다운되었을 때도 복원이 가능합니다.

 

==========================================================================================================================

 

GFS(Google File System)은 Hadoop의 HDFS에 대응한는 파일 시스템이다.

특징

  • very large
  • replicated
  • detect failure, recover algorithm
  • batch processing
  • single name space node(==directory), master징
  • java application
  • 일반 파일 시스템과 동일한 인터페이스 제공 : create, delete, open, close...
  • 파일 입력시, appen만 제공하는 것이 특징
  • os와 무관한 user level app, linux vnode layer 접근 불가

CHUNK

  • 파일은 고정 크기(64MB)의 chunk로 나눠짐
  • 하나의 chunk는 여러 chunkserver에 중복 저장
  • 장점
    • Master와 interection 줄일 수 있다.
    • TCP connection 줄일 수 있다.
    • Matadata 줄일 수 있다.
  • 단점
    • file의 크기가 chunk보다 작을 경우, 비효율적

구조

  • Master Server 
    • 메모리 상에 Matadata 로딩
    • Chunk Server와 heartbeat(Chunk Server들의 생사 확인)로 통신
  • Chunk Servers : 
    • File data 저장
  • GFS Client
    • Master Server와 Chunk Server와 통신하며 appication에 file system API제공
    • Master Server의 Matadata로 원하는 파일을 가지고 있는 Chunk Server의 위치 확인
    • Chunk Server로부터 데이터 교류

operation log file

  • Directory structure의 persistence 유지
  • Master Server는 operation log file을 replay함으로 file system복구 가능

    [출처] GFS (Google File System)|작성자 누룽지

출처 : http://blog.naver.com/PostView.nhn?blogId=say501&logNo=110082677976

'Embedded Lab > linux, x86' 카테고리의 다른 글

[ln 명령어]  (0) 2014.02.06
[특수문자표]  (0) 2013.11.04
[top 명령어]  (0) 2013.10.23
[커널스택]  (0) 2013.08.13
[커널 예전 버전 받기]  (0) 2013.08.06
Posted by cyj4369
,


1초단위로  5초동안  실시간 모니터링하기 

  => top -b -d 1  -n 5 -u userid 



* 비정상종료상태로 남아있는 프로세스들 죽이기

top -b -n 1 -u gisys | grep 'T ' | awk '{print $1}' | xargs kill -9


***멀티cpu 사용량 직접 구하기

/proc/stat 첫줄에 있는 user, low priority, system, idle jiffies 값을 가지고 구한다고 하더군요.

(idle jiffies * 100 / user + low priority + system + idle jiffies




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


아래 출처 : http://www.mimul.com/pebble/default/2012/06/26/1340680991596.html

*** 3번 vmstat를 주로 활용

일반적인 커맨드들을 활용 방법들

1. top을보고 상위에 붙어있는 프로세스를 확인하면서 CPU나 I/O의 어느 문제인지 판별
- 프로세스의 Fullpath를 알고 싶으면 'c'를 누름.
- 개별 CPU의 성능 정보를 볼려면 '1'을 누름.
- 정렬은 'shift'+ 'm'에서 메모리 정렬, 'shift'+ 'o'로 정렬 필드를 선택할 수 있음.
- 'k' 로 프로세스를 kill 시킬 수 있음.
- top -u %UserName% 사용자 계정 단위로 프로세스 확인 가능.

2. ps로 프로세스의 상태를 확인 (T), (D)상태에서 CPU나 I/O의 어느 문제인지 판별
- ps -e -o pid,args --forest : 프로세스의 트리를 보여줌.
- ps -f -u k2,mysql : 사용자 계정별로 프로세스 정보 확인.
- ps -f --ppid 9576 : pid나 ppid로 프로세스 조회.
- ps -p 1,28641 -o pid,etime= : 프로세스 구동 후 경과 시간 정보 확인.
- ps -C java -L -o pid,tid,pcpu,state,nlwp,args : 프로세스의 쓰레드 정보 조회.
- ps aux --sort pmem : 메모리 정보 조회해서 메모리 많이 차지하는 프로세스는 'ps ev --pid=28641'로 해서 개별 프로세스를 감시할 수 있음.

3. vmstat에서 procs의 r, b의 수, swap의 si, so 상태, I/O의 bi, bo 상태, cpu에서 us, sy, id 상태를 확인
- vmstat의 r이 cpu 수 이상이면 실행 프로세스 큐가 cpu를 기다리고있는 상태.
- b가 0보다 크다면 I / O 대기로 인터럽트가 금지되는 프로세스 수가있다는 것.
- memory에서 swpd가 0보다 크다면 스왑을 사용 중이며 메모리 부족.
- bi, bo이 많을 경우 블록 전송이 빈발하고 있음.
- vmstat 명령어 결과에 시간 표시하기 : vmstat 1 5 | timestamp.pl
$ vi timestamp.pl
#!/usr/bin/perl
while (<>) { print localtime() . ": $_"; }

- vmstat -m : slab 정보 표시.
- vmstat -s : 전체 통계 정보 요약.
- vmstat -d : 디스크 통계 정보 조회.
- vmstat -p sdb1 : 디스크 파티션 정보 조회.

4. sar를 사용하여 os 상태 추가 확인
- sar -W 1 5 에서 pswpin/s pswpout/s 0보다 클 경우 스왑 발생하고 있어서 메모리 부족.
- sar 1 5 CPU 정보
- sar -q 1 5 : 평균 부하 및 작업 실행 큐에 대한 정보.
- sar -r 1 5 : 메모리 정보.
- sar -u -P ALL 1 5 : 프로세 서당 CPU 사용률에 대한 정보.
- sar -b 1 5 : I/O 통계 정보 조회.
- sar -d 1 5 : Block Device I/O 통계 조회.
- sar -w 1 5 : 초당 context switch 정보 조회.
- sar -n DEV 1 5 : 네트워크 통계 조회.

5. iostat을 사용해서 디스크 I/O 정보 확인
- iostat -c : Cpu 정보 조회.
- iostat -d : Disk I/O 정보 조회.
- iostat -n : 네트워크 정보 조회.
- iostat -p sda : 디바이스별 I/O 통계.
- iostat -x sda1 : 상세 Disk I/O 정보 조회.



################################################

### mysql monitoring #################

dstat을 활용한 방법들

1. 유용한 dstat 커맨드들
- dstat -Tclmdrn : 전체 정보 조회.
- dstat -Tclm : 메모리 정보 조회.
- dstat -Tclr : CPU 정보 조회
- dstat -Tclnd : 네트워크 정보 조회.
- dstat -Tcldr : 디스크 정보 조회.
- dstat --top-cpu --top-cputime : CPU 부하가 크고 전체 높은 CPU 타임을 가진 프로세스 조회.
- dstat --top-cpu-adv : CPU 부하가 큰 프로세스 상세 정보 조회.
- dstat --top-io --top-bio : 가장 IO를 많이 발생하는 프로세스 조회.
- dstat --top-io-adv --top-bio-adv : 가장 IO를 많이 발생하는 프로세스 상세 정보 조회.
- dstat --cpu --sys --disk --net 1 5 : CPU, SYSTEM, DISK, NETWORK 정보 조회.
- dstat -tal --top-io --top-cpu --top-mem : 전체 정보 조회.

2. dstat으로 MySQL 모니터링
MySQL을 모니터링 하려면 Python의 MySQLdb 라이브러리가 설치되어 있어야 한다.
$ export DSTAT_MYSQL_USER=user
$ export DSTAT_MYSQL_PWD=pwd
$ export DSTAT_MYSQL_HOST=localhost
$ dstat -T --mysql5-cmds --mysql5-conn --mysql5-io --mysql5-keys
--epoch--- ------mysql5-cmds------ mysql5-co -mysql5-io- ---mysql5-key-status----
  epoch   | sel   ins   upd   del |ThCo %Con| recv  sent|used read writ rreq wreq
1330500331|    0     0     0     0|0.00 0.00|0.02  0.11 |  0    0    0    0    0 
1330500332|    8     0     0     0|4.00 1.60|9796B 59.8k|  0    0    0    0    0 
1330500333|    8     0     0     0|4.00 1.60|9.90k 61.1k|  0    0    0    0    0 
1330500334|    8     0     0     0|4.00 1.60|10.2k 62.5k|  0    0    0    0    0 

3. dstat으로 MySQL Innodb 모니터링
$ export DSTAT_MYSQL='-uuser -ppwd -hlocalhost'
$ dstat -T --innodb-io --innodb-buffer --innodb-ops
--epoch--- innodb-io-o innodb-pool ---innodb-ops--
  epoch   |rea wri syn|crt rea wri|ins upd del rea
1330500814|  0   0   0|0.2 1.0  11|  0   0   0   0
1330500815|  0   0   0|3.0 1.0 139|  0   0   0   0
1330500816|  0   0   0|3.0 5.0 172|  0   0   0   0
1330500817|  0   0   0|5.0 5.0 133|  0   0   0   0
출처 http://blog.daum.net/techtip/12414558

'Embedded Lab > linux, x86' 카테고리의 다른 글

[특수문자표]  (0) 2013.11.04
[GFS(Google File System)]  (0) 2013.10.28
[커널스택]  (0) 2013.08.13
[커널 예전 버전 받기]  (0) 2013.08.06
[grub 배경화면 변경]  (0) 2013.08.04
Posted by cyj4369
,

최근에 Linux Understanding Kernel 이란 책을 일부분 봤는데 어느 정보 아는 부분이라 지나가다 적어봅니다. 모든 설명은 80x86 아키텍처를 기준으로 합니다.

 

1. 커널 스택은 프로세스마다 하나씩 생성됩니다.
일반적인 프로세스는 User Mode 스택과 Kernel Mode 스택을 각각 하나씩 가지고 있습니다.
User Mode에서 Kernel Mode로의 전환은 시스템호출이나 인터럽트가 발생하면 일어납니다.
즉, esp 레지스터는 프로세스가 User Mode이면 User Mode 스택의 top을 가르키다가
Kernel Mode로 전환이 되면 Kernel Mode 스택의 top을 가르킵니다.

 

2. Kernel Mode 스택은 적어도 다음 두가지 목적으로 사용됩니다. 다른 사용처는 딱히 생각나지 않네요.
가. Kernel Mode로 전환된 프로세스는 언젠간 다시 User Mode로 되돌아가야 합니다.
따라서 User Mode로 전환하기위해 필요한 정보 중 일부를 저장합니다. (일부는 다른 곳에 저장합니다.)
나. Kernel Mode에서 함수를 호출하게 되면 그 함수의 지역변수는 Kernel Mode 스택에서 할당됩니다. (User Mode에서 함수를 호출하면 지역변수가 User Mode 스택에 할당되는 것과 같습니다.)
참고로 80x86 아키텍처에서 커널 스택으로 할당된 공간의 크기는 8KB로 고정되어있습니다. 프로세스 생성때 한번 할당되어 작아지지도 커지지도 않습니다. 따라서 커널에 있는 함수에서는 지역변수를 많이 할당하거나 재귀 함수 호출을 하면 좋지 않습니다.

 

3. 어떻게 설명드려야할 지 상당히 난해한 질문이군요.
커널은 주소 공간 3~4GB를 사용합니다. Kernel Mode 스택은 Kernel Mode에서만 사용되므로 커널 주소 공간에서 할당됩니다.
즉, User Mode 스택을 가르키는 esp 값을 읽어보면 0GB~3GB 사이의 값을 가지고 Kernel Mode 스택을 가르키는 esp 값을 읽어보면 3~4GB 사이의 값을 가지게 됩니다.

 

4. 기타

가. 프로세스의 User Address Space는 프로세스마다 각각 다르지만, Kernel Address Space는 모든 프로세스가 동일하게 봅니다. 즉, 프로세스 A와 프로세스 B의 특정 가상주소 (예를 들면 0xa0001000) 은 서로 다른 물리주소로 맵핑될 수 있습니다. 하지만 특정 커널 공간 주소 (예를 들면 0xc0001000) 는 모든 프로세스에서 동일한 물리주소로 맵핑됩니다.
이를 위해서 커널은 kernel master page table (swapper_pg_dir 변수가 가르킴)을 관리하고, 필요할 때마다 특정 엔트리를 kernel master page table에서 해당 프로세스의 page table에 복사를 합니다 -- 이런 작업은 Kernel Mode에서 페이지 폴트가 발생했을 때 페이지 폴트 핸들러가 수행합니다.

 

나. 시스템호출, 인터럽트 핸들러, 커널 모듈 등은 임의의 프로세스의 context를 이용합니다. 예를 들어, 프로세스 A가 User Mode에서 수행되고 있을 때 timer interrupt가 발생하는 경우 Kernel Mode로 전환하여 timer interrupt service routine을 수행하게 되는데 이때 프로세스 A의 page table과 Kernel Mode 스택을 빌어 쓰게됩니다.
Timer interrupt와 프로세스 A와는 별다른 연관이 없지만 interrupt 발생시점에 프로세스 A가 CPU를 점유하고 있었기 때문에 부하가 큰 context switch 등을 따로 하지 않고 프로세스 A의 context를 그대로 이용하는 것입니다. 다만 커널 모듈 등이 기능의 일부를 따로 커널 쓰레드를 생성하여 구현한 경우라면 그 커널 쓰레드의 context를 사용하겠죠.

'Embedded Lab > linux, x86' 카테고리의 다른 글

[GFS(Google File System)]  (0) 2013.10.28
[top 명령어]  (0) 2013.10.23
[커널 예전 버전 받기]  (0) 2013.08.06
[grub 배경화면 변경]  (0) 2013.08.04
[리눅스에서 itoa는 사용 불가]  (0) 2013.04.14
Posted by cyj4369
,

Linux kernel 을 보고 있는데, 책 마다 base kernel version 이 조금씩 달라서 source code 가 많이 차이가 나더군요.

Understanding Linux Kernel : 2.6.11 version

Professional Linux Kernel Architecture : 2.6.24 version

The Linux Kernel Archives 에서 kernel source code download 할 수 있는데, 2.6.11 이나 2.6.24 와 같이 아주 예전(?) version 의 경우에는 바로 보이지 않아서 
어떻게  download 하는지 몰랐었습니다.

혹시 저같은 분을 위하여 link 적어봅니다. :) 
http://www.kernel.org/pub/linux/kernel/ 에 각 버전별로 압축되서 올라와 있으므로 원하시는 버전 찾으셔서 download 하실 수 있습니다.

http://www.kernel.org/pub/linux/kernel/v2.6/

2.6.11 source (Understanding Linux Kernel base code)

2.6.24 source (Professional Linux Kernel Architecture base code)

 

http://www.kernel.org/pub/linux/kernel/ // 2.6 이전 버전도 directory 선택하여 download 가능.

'Embedded Lab > linux, x86' 카테고리의 다른 글

[top 명령어]  (0) 2013.10.23
[커널스택]  (0) 2013.08.13
[grub 배경화면 변경]  (0) 2013.08.04
[리눅스에서 itoa는 사용 불가]  (0) 2013.04.14
[gz 또는 bz2 압축하기/풀기]  (0) 2013.04.13
Posted by cyj4369
,

grub2_1.png
grub2_1.png [ 749.84 KiB | 5133 번 봄 ] 

우분투 10.4부터는 Grub2 배경화면 설치가 좀더 쉬워졌습니다.
어차피 이전 팁과 거의 같지만 가급적 쉽고 빠르게 다시 정리했습니다.

우선 배경으로 이용할 사진을 준비합니다.

터미널에서 sudo apt-get install grub2-splashimages 를 입력하면 Grub2용 배경그림이
/usr/share/images/grub에 설치됩니다.
이것을 이용하셔도 되고 개인적으로 좋아하는 그림이 있으시면 아무거나 사용가능합니다.

그림은 png, tga 포멧이어야 하며 해상도는 640x480, 800x600, 1024x768정도가 적당합니다.
1280x1024도 가능하지만 폰트가 작게 보여서 불편합니다.

개인 사진을 넣고 싶으시다면 gimp를 이용해서 크기를 맞추고 png포멧으로 저장해 주면 됩니다.
예제로 800x600 해상도의 첨부파일 Oak_800.png를 이용해 보겠습니다.

배경그림이 결정되었다면 그림 파일을 /boot/grub 디렉토리로 옮겨줍니다.
(그림 파일을 꼭 옮길 필요는 없지만 한 곳에 모아 두어야 관리가 편합니다.)
옭길 때 관리자 모드여야 하기 때문에 Alt + F2 누르고 gksu nautilus를 실행하면 편하실 겁니다.


지금부터는 Grub2 설정입니다.

Grub2가 되면서 기존의 menu.lst 설정 파일이 사라지고 대신 여러개의 파일로 나누어졌습니다.
간략히 설명드리자면 다음 2개의 파일을 수정하고 마지막에 sudo update-grub을 실행해 주면 됩니다.


    /etc/default/grub
    /etc/grub.d/05_debian_theme


우선 Alt + F2를 누르고 gksu gedit /etc/default/grub을 입력합니다.


    # If you change this file, run 'update-grub' afterwards to update
    # /boot/grub/grub.cfg.

    GRUB_DEFAULT=0
    #GRUB_HIDDEN_TIMEOUT=0
    GRUB_HIDDEN_TIMEOUT_QUIET=true
    GRUB_TIMEOUT=5
    GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
    GRUB_CMDLINE_LINUX=""

    # Uncomment to disable graphical terminal (grub-pc only)
    #GRUB_TERMINAL=console

    # The resolution used on graphical terminal
    # note that you can use only modes which your graphic card supports via VBE
    # you can see them in real GRUB with the command `vbeinfo'
    GRUB_GFXMODE=800x600


관리자 모드로 파일이 열리면 붉은색 부분을 수정해 줍니다.

GRUB_DEFAULT은 기본으로 선택할 항목을 설정하는 것으로 제일 위 부분이 0부터 시작합니다.
    => MS Windows와 멀티부팅을 하고 자주 Windows로 부팅한다면 이부분을 수정해 줍니다.
GRUB_TIMEOUT=5는 5초후에 자동으로 선택 항목으로 부팅한다는 말입니다.
GRUB_GFXMODE=800x600은 배경그림의 해상도를 설정하는 부분입니다.
    => grub2-splashimages를 이용하시는 분들은 640x480으로 설정하면 됩니다.

설정이 끝나면 저장한 다음 다시 Alt + F2를 누르고 gksu gedit /etc/grub.d/05_debian_theme 을 입력합니다.


    #!/bin/bash -e

    source /usr/lib/grub/grub-mkconfig_lib

    # this allows desktop-base to override our settings
    f=/usr/share/desktop-base/grub_background.sh
    if test -e ${f} ; then
    source ${f}
    else
    WALLPAPER="/boot/grub/Oak_800.png"
    COLOR_NORMAL="white/black"
    COLOR_HIGHLIGHT="blue/white"
    fi


파일이 열리고 위와 같은 스크립트가 나타나는데 10번 째 줄 붉은색 부분이 배경으로 쓰일 파일이름입니다.
기존의 moreblue-orbit-grub을 지우고 원하는 그림 파일의 경로를 정확히 적어 넣으시면 됩니다.

11번째 줄 COLOR_NORMAL은 메뉴폰트의 전경색/배경색이고 다음 줄 COLOR_HIGHLIGHT는 선택항목의 전경색/배경색입니다.
단 배경색이 black일 경우는 투명으로 나타나니 유의해 주시고 아래표를 참고해서 색깔은 선택해 주면 됩니다.

Attachment:
grub2_2.png
grub2_2.png [ 16.23 KiB | 5133 번 봄 ] 

메뉴폰트의 배경색은 black(투명)으로 설정하고 배경그림이 밝은 경우 전경색을 어둡게하고 배경그림이 어두우면
전경색을 밝게 하는 것이 눈에 잘 띄고 보기 좋습니다.

설정이 모두 끝나면 파일을 저장하고 나옵니다.

다시 터미널을 열고 sudo update-grub 을 입력해 Grub2 설정을 시스템에 적용합니다.
그러면 /boot/grub/grub.cfg 파일이 새로 생성되는데 부팅시 Grub2가 이 파일을 직접 읽어들입니다.

만약 Grub 메뉴의 위아래 순서를 바꾸고 싶다면 Alt+F2 누르고 gksu gedit /boot/grub/grub.cfg 한 후 
menuentry 'ubuntu ... ... ' { ... ... ... } 부위를 잘라내고 윈하는 위치에 붙여넣기 해 주면 됩니다. 

설정이 모두 끝났으니 이제 다시 재부팅합니다.
멋진 Grub이 보이세요 !

테마의 통일감을 주기 위해 바탕화면 배경그림을 줄여서 Grub 배경으로 사용해도 좋습니다.
마지막으로 Oak의 원본 이미지에 링크 겁니다. 데스크탑 배경으로 괸찮습니다.


'Embedded Lab > linux, x86' 카테고리의 다른 글

[커널스택]  (0) 2013.08.13
[커널 예전 버전 받기]  (0) 2013.08.06
[리눅스에서 itoa는 사용 불가]  (0) 2013.04.14
[gz 또는 bz2 압축하기/풀기]  (0) 2013.04.13
[blktrace 포맷을 disksim 포맷으로]  (0) 2013.04.08
Posted by cyj4369
,

aoti()와는 달리 itoa()는 별도의 library를 사용하지 않는 한, linux에서는 존재하지 않는 함수이다.


보통 비슷한 용도로 sprintf()를 사용한다.


sprintf( str, "%d", 1234 );


그 다음에 


printf("%s\n", str);

'Embedded Lab > linux, x86' 카테고리의 다른 글

[커널 예전 버전 받기]  (0) 2013.08.06
[grub 배경화면 변경]  (0) 2013.08.04
[gz 또는 bz2 압축하기/풀기]  (0) 2013.04.13
[blktrace 포맷을 disksim 포맷으로]  (0) 2013.04.08
[blktrace 설치법]  (0) 2013.04.08
Posted by cyj4369
,