'어느날 문득' 카테고리의 다른 글
요즘 눈독 들이고 있는 제품 - 고진샤 K800 (0) | 2008.07.14 |
---|---|
IBM DW Review blogger로고가 만들어졌네요. (0) | 2008.07.08 |
봄을 떠나보내며 쓰는 초여름의 독서일기. (0) | 2008.05.29 |
연휴의 허망함. (0) | 2008.05.06 |
새해 다이어리 준비 (0) | 2007.12.26 |
요즘 눈독 들이고 있는 제품 - 고진샤 K800 (0) | 2008.07.14 |
---|---|
IBM DW Review blogger로고가 만들어졌네요. (0) | 2008.07.08 |
봄을 떠나보내며 쓰는 초여름의 독서일기. (0) | 2008.05.29 |
연휴의 허망함. (0) | 2008.05.06 |
새해 다이어리 준비 (0) | 2007.12.26 |
전형적인 리눅스(Linux®)나 유닉스(UNIX®)는 시스템이 돌아가는 동안에 수많은 로그 파일을 생성합니다. 이 중에는 유용한 정보를 제공하는 로그 파일도 있고, 용량이나 자원을 계획하는 데 도움을 주는 로그 파일도 있습니다. 이 기사에서는 주요한 로그 파일 몇 개를 소개합니다. 또한 로그 파일이 존재하는 위치, 파일에 기록되는 정보 형식, 로그 정보를 유용하게 사용하는 방법도 살펴봅니다.
전형적인 유닉스(UNIX®) 관리자라면 시스템을 관리하면서 나름대로 자주 사용하는 유틸리티, 스크립트, 기교가 있기 마련이다. 이러한 유틸리티, 스크립트, 명령 체인 등은 관리자가 수행할 작업을 단순화시켜 준다. 일부 도구는 운영체제에 딸려오지만, 대다수 도구와 기교는 수년 동안 쌓아온 경험과 시스템 관리를 조금이라도 편하게 하려는 욕구에서 나왔다. 이 기사 연재는 다양한 유닉스 환경에서 제공하는 도구를 최대한 활용하는 방법을 살펴본다. 또한 다양한 유닉스 플랫폼에서 시스템을 단순하게 관리하는 방법도 소개한다.
![]() |
![]() |
모든 시스템은 시스템 내 다양한 정보를 추적하고 기록하는 로그 파일을 생성한다. 파일 내용과 용도는 시스템에 따라 다르지만, 본질적으로 파일에 담긴 핵심 정보는 대개 비슷하다.
예를 들어, 모든 유닉스와 리눅스 시스템은 syslog 도구를 사용한다. syslog는 운영체제와 응용 프로그램과 서비스가 정보를 기록할 때 사용하는 범용 로그 시스템이다. syslog는 로그인 정보, 성능 정보, 하드웨어와 시스템 실패 정보 등 다양한 정보를 기록한다. syslog 외에도 시스템에는 서비스 로그, 환경 로그, 응용 프로그램 로그 등 시스템 상태와 동작 상태를 기록하는 다양한 로그가 있다.
로그 파일에서 정보를 분석하고 추출하는 작업은 시간이 많이 걸리고 복잡하다. 하지만 로그 파일에 담긴 풍부한 정보를 무시하기는 어렵다. 로그 파일은 잠정적인 문제, 결함, 보안 구멍을 찾아내는 데 도움이 되는 정보를 제공한다. 또한 제대로만 분석한다면 서버에 걸리는 하중과 용량 문제도 미리 파악해 대비할 수 있다.
[소개]IBM DeveloperWorks : vi 입문 -- 컨닝 페이퍼 이용하기 (0) | 2008.06.20 |
---|---|
[소개]IBM DeveloperWorks : 리눅스 시스템 호출을 활용한 커널 명령 (0) | 2008.06.20 |
[소개] IBM DeveloperWorks : LAMP 시스템 조율, Part 3: MySQL 조율 (0) | 2008.05.20 |
[소개] IBM DeveloperWorks : LAMP 시스템 조율, Part 2 : 아파치와 PHP 최적화 (0) | 2008.05.06 |
[소개] IBM DeveloperWorks : dW Interview “오픈 소스로 재미 이상의 가치를 전달하기” (0) | 2008.04.29 |
IBM DW Review blogger로고가 만들어졌네요. (0) | 2008.07.08 |
---|---|
삼성 프린터 이벤트 소개 (0) | 2008.06.18 |
연휴의 허망함. (0) | 2008.05.06 |
새해 다이어리 준비 (0) | 2007.12.26 |
[소개] BitTorrent Azureus for Linux (0) | 2007.11.30 |
LAMP(Linux®, Apache, MySQL, PHP/Perl) 아키텍처를 활용하는 응용 프로그램은 끊임없이 개발되고 배포되고 있습니다. 하지만 때로 서버 관리자는 다른 사람이 작성했다는 이유만으로 응용 프로그램 자체에 대한 통제권이 거의 없습니다. 기사 셋으로 이뤄진 이번 연재물은 응용 프로그램 성능을 향상시킬 서버 환경 설정 항목을 다룹니다. 연재 마지막인 세 번째 기사에서는 최대 성능을 발휘하도록 데이터베이스 계층을 조율하는 데 초점을 맞춥니다.
MySQL 서버를 빠르게 하기 위한 방법은 세 가지가 있는데, 효율이 낮은 쪽에서 높아지는 쪽으로 나열하면 다음과 같다.
![]() |
|
하드웨어로 문제를 푸는 방법이 가장 먼저 떠오른다. 특히 데이터베이스가 자원을 잡아먹는 괴물이라는 사실을 감안하면 말이다. 하지만 이 해법에는 한계가 있다. 현실을 고려할 때 CPU나 디스크 속력은 두 배로, 메모리 용량은 네 배에서 여덟 배 정도만 늘일 수 있다.
두 번째로 좋은 방법은 mysqld
라는 MySQL 서버 조율이다. 이 프로세스 조율은 올바른 위치에 메모리를 할당하고 어떤 부하가 걸릴지 mysqld
에 알려주는 조정 기법을 의미한다. 디스크 속력을 좀 더 빠르게 만드는 대신, 필요한 디스크 접근 횟수를 줄이는 편이 유리하다. 비슷하게, MySQL 프로세스가 올바르게 동작하도록 만드는 조율은 개발자가 임시 디스크 테이블과 파일 여닫기 같은 배경 작업에 신경을 쓰는 대신 질의에 대한 서비스에 좀 더 많은 시간을 보낼 수 있음을 의미한다. mysqld
조율은 이번 기사에서 주로 다룰 내용이다.
최고로 좋은 방법은 질의 최적화다. 이는 적절한 색인을 테이블에 만들어 놓고, MySQL의 장점을 최대로 활용하는 방향으로 질의를 작성하는 조율 기법을 의미한다. 이번 기사에서 질의 조율을 다루지는 않지만(이 주제로 책을 써도 되겠다), mysqld
환경 설정을 변경해 조율이 필요한 질의를 보고하도록 만든다.
중요한 조율 순서를 제시하긴 했지만, 그렇다고 해서 적절히 조율을 마친 질의를 위해 하드웨어나 mysqld
설정을 무시하라는 말은 아니다. 느린 기계는 느린 기계일 뿐이며, 제대로 작성한 질의를 돌리더라도 부하가 걸려 실패하는 경우를 목격했는데, mysqld
가 질의를 서비스하는 대신 바쁘게 움직이느라 시간을 소모하고 있었기 때문이었다.
[소개]IBM DeveloperWorks : 리눅스 시스템 호출을 활용한 커널 명령 (0) | 2008.06.20 |
---|---|
[소개]IBM DeveloperWorks : 시스템 관리 툴킷: 로그 파일 이해하기 (0) | 2008.05.29 |
[소개] IBM DeveloperWorks : LAMP 시스템 조율, Part 2 : 아파치와 PHP 최적화 (0) | 2008.05.06 |
[소개] IBM DeveloperWorks : dW Interview “오픈 소스로 재미 이상의 가치를 전달하기” (0) | 2008.04.29 |
[소개]IBM DeveloperWorks : LAMP 시스템 조율, Part 1: LAMP 아키텍처 이해 (한글) (0) | 2008.04.29 |
삼성 프린터 이벤트 소개 (0) | 2008.06.18 |
---|---|
봄을 떠나보내며 쓰는 초여름의 독서일기. (0) | 2008.05.29 |
새해 다이어리 준비 (0) | 2007.12.26 |
[소개] BitTorrent Azureus for Linux (0) | 2007.11.30 |
퍼온 동영상 - 지식채널e 두명의 대통령 (0) | 2007.11.07 |
LAMP(Linux®, Apache, MySQL, PHP/Perl) 아키텍처를 활용하는 응용 프로그램은 끊임없이 개발되고 배포되고 있습니다. 하지만 때로 서버 관리자는 다른 사람이 작성했다는 이유만으로 응용 프로그램 자체에 대한 통제권이 거의 없습니다. 기사 셋으로 이뤄진 이번 연재물은 응용 프로그램 성능을 향상시킬 서버 환경 설정 항목을 다룹니다. 첫 번째 기사는 LAMP 아키텍처, 성능 기법, 기본적인 리눅스 커널, 디스크, 파일 시스템 미조정을 다뤘습니다. 두 번째 기사에서는 아파치와 PHP 컴포넌트를 최적화하는 방법에 초점을 맞춥니다.리눅스, 아파치, MySQL, PHP(또는 펄)은 일정 목록부터 블로그와 전자 상거래 사이트에 이르기까지 많은 웹 응용 프로그램의 토대가 된다. LAMP 컴포넌트에 의존하는 많은 오픈 소스 패키지는 다양한 문제를 해결한다. 응용 프로그램 부하가 증가할수록, 기반 구조에서 병목 현상이 발생해 사용자 요청에 대한 반응이 느려지는 형태로 나타난다. 직전 기사에서는 리눅스 시스템 조율 방법과 LAMP 기초, 성능 측정 방법에 대한 기초를 다뤘다. 이번 기사에서는 아파치와 PHP로 대표되는 웹 서버 구성 요소에 초점을 맞춘다
[소개]IBM DeveloperWorks : 시스템 관리 툴킷: 로그 파일 이해하기 (0) | 2008.05.29 |
---|---|
[소개] IBM DeveloperWorks : LAMP 시스템 조율, Part 3: MySQL 조율 (0) | 2008.05.20 |
[소개] IBM DeveloperWorks : dW Interview “오픈 소스로 재미 이상의 가치를 전달하기” (0) | 2008.04.29 |
[소개]IBM DeveloperWorks : LAMP 시스템 조율, Part 1: LAMP 아키텍처 이해 (한글) (0) | 2008.04.29 |
[소개] IBM DeveloperWorks : 리눅스 커널 해부 (한글) (0) | 2008.04.25 |
[소개] IBM DeveloperWorks : LAMP 시스템 조율, Part 3: MySQL 조율 (0) | 2008.05.20 |
---|---|
[소개] IBM DeveloperWorks : LAMP 시스템 조율, Part 2 : 아파치와 PHP 최적화 (0) | 2008.05.06 |
[소개]IBM DeveloperWorks : LAMP 시스템 조율, Part 1: LAMP 아키텍처 이해 (한글) (0) | 2008.04.29 |
[소개] IBM DeveloperWorks : 리눅스 커널 해부 (한글) (0) | 2008.04.25 |
[소개] IBM DeveloperWorks : OOXML: 뭐가 그리 대단한가? (한글) (0) | 2008.03.30 |
LAMP(Linux®, Apache, MySQL, PHP/Perl) 아키텍처를 활용하는 응용 프로그램은 끊임없이 개발되고 배포되고 있습니다. 하지만 때로 다른 사람이 작성했다는 이유만으로 응용 프로그램 자체에 대한 통제권이 서버 관리자에게는 없습니다. 기사 셋으로 이뤄진 이번 연재물은 응용 프로그램 성능을 향상시킬 서버 환경 설정 항목을 다룹니다. 첫 번째 기사는 LAMP 아키텍처, 성능 기법, 기본적인 리눅스 커널, 디스크, 파일 시스템 미조정을 다룹니다. 이어지는 기사에서는 아파치, MySQL, PHP 컴포넌트를 조율하는 방법을 다룹니다.
리눅스, 아파치, MySQL, PHP(또는 펄)은 일정 목록부터 블로그와 전자 상거래 사이트에 이르기까지 많은 웹 응용 프로그램의 토대가 된다. 워드프레스와 플리그(Pligg)는 강력한 고성능 웹 사이트를 유지하는 공통 소프트웨어 패키지다. 이런 아키텍처는 LAMP라고 알려졌다. 거의 모든 리눅스 배포판에는 리눅스, 아파치, MySQL, PHP와 펄이 포함되어 있으므로 LAMP 소프트웨어 설치는 식은 죽먹기다.
설치가 쉽기 때문에 소프트웨어 실행까지 쉬워보일지도 모르겠지만, 이는 사실이 아니다. 궁극적으로 응용 프로그램 부하는 백엔드 서버에 포함된 설정값을 무력화하며, 결국 응용 프로그램 성능 저하가 일어난다. LAMP 설치는 지속적인 감시와 조율과 평가를 요구한다.
시스템을 조율하는 작업은 사람마다 의미가 달라진다. 이번 연재에서는 리눅스, 아파치, MySQL, PHP라는 LAMP 컴포넌트 조율에 초점을 맞춘다. 응용 프로그램 자체 조율은 또 다른 복잡한 문제다. 응용 프로그램과 백엔드 서버 사이에는 공생 관계가 있다. 잘못 조율된 서버는 최상의 응용 프로그램조차도 부하가 걸릴 경우 실패하도록 만들며, 잘못된 응용 프로그램을 앞에 놓고 서버 조율을 해봤자 굼벵이를 달팽이로 만들 뿐이다. 다행스럽게도 적절한 시스템 조율과 감시는 응용 프로그램에 존재하는 문제점을 찾아내준다.
[소개] IBM DeveloperWorks : LAMP 시스템 조율, Part 2 : 아파치와 PHP 최적화 (0) | 2008.05.06 |
---|---|
[소개] IBM DeveloperWorks : dW Interview “오픈 소스로 재미 이상의 가치를 전달하기” (0) | 2008.04.29 |
[소개] IBM DeveloperWorks : 리눅스 커널 해부 (한글) (0) | 2008.04.25 |
[소개] IBM DeveloperWorks : OOXML: 뭐가 그리 대단한가? (한글) (0) | 2008.03.30 |
[소개] IBM DeveloperWorks : 리눅스 팁: cron과 at를 사용한 작업 일정 관리 (한글) (0) | 2008.03.30 |
리눅스(Linux®) 커널은 거대하고 복잡한 운영체제의 핵심이며, 커다란 몸집에도 불구하고 하위 시스템과 계층 구조를 사용해서 조직화되어 있습니다. 이 기사에서는 리눅스 커널의 일반적인 구조를 살펴보고 주요 하위 시스템과 핵심 인터페이스를 파악합니다. 좀더 깊이 파고 들고 싶다면 다른 IBM 기사를 읽어보세요.
이 기사의 목표는 리눅스 커널을 소개하고 아키텍처와 주요 컴포넌트를 살펴보는 데 있다. 우선 리눅스 커널 역사부터 간략하게 짚어보기 시작해 다음으로 3만 피트 상공에서 리눅스 커널 아키텍처를 살펴보고, 마지막으로 주요 하위 시스템을 검토하겠다. 리눅스 커널은 코드가 600만 행이 넘으므로 소개글을 너무 장황하지 않게 줄였다. 좀더 깊이 파고 들고 싶다면 참고자료를 살펴보자.
[소개] IBM DeveloperWorks : dW Interview “오픈 소스로 재미 이상의 가치를 전달하기” (0) | 2008.04.29 |
---|---|
[소개]IBM DeveloperWorks : LAMP 시스템 조율, Part 1: LAMP 아키텍처 이해 (한글) (0) | 2008.04.29 |
[소개] IBM DeveloperWorks : OOXML: 뭐가 그리 대단한가? (한글) (0) | 2008.03.30 |
[소개] IBM DeveloperWorks : 리눅스 팁: cron과 at를 사용한 작업 일정 관리 (한글) (0) | 2008.03.30 |
[소개] IBM DeveloperWorks : 이클립스 유로파로 웹 개발하기, Part 3: 루비 개발 도구와 RadRails (한글) (0) | 2008.03.18 |