Skip to content

jjunes.com

조회 수 4512 추천 수 0 댓글 0
일부 필요한 부분만 정리

http://dev.mysql.com/books/hpmysql-excerpts/ch06.html

InnoDB의 테이블스페이스는 OS파일시스템 말고, raw Partition을 사용할 수 있다.

innodb_data_home_dir=
innodb_data_file_path=/dev/sdb1:18Graw;/dev/sdc1:18Graw

처음에는 raw 파티션을 초기화해줘야 하므로 처음 한번은 위의 raw대신 newraw로 지정후 시작한다.
로그파일을 검사하여 정상적으로 초기화되었는지 확인후, newraw를 raw로 변경후 사용하면 된다.

이전 구식 파일시스템의 단점을 극복하기 위해 raw파티션을 DBMS자체관리(공간,단편화,읽기/쓰기요청 관리)했지만,
현재 파일시스템을 이용하는 것은 raw파티션을 사용하는 것보다 성능에 5%정도만 떨어질 뿐이라고 한다.
그냥 파일시스템을 이용하는 것이 관리상 더 좋을 것이다.(OS디스크 명령, 백업명령등..)


스와핑
리눅스커멀 2.4.10-2.4.17는 충분한 여유 램이 있음에도 스와핑에 있어 발생한다고 한다.
커널 업그레이드나 스와핑을 꺼두어 해결해야 한다.

스레드
윈도, 솔라리스에서의 스레드는 문제가 없다.
Linux는 clone을 사용하여 스레드를 에뮬레이트하므로 그리 좋지 않다. 프로세스와 같다고 보면 되겠다.
레드햇리눅스 9.0부터는 Native POSIX Thread Library (NPTL)를 지원하므로 스케줄러/스레드 라이브러리가
향상되었으므로 이 놈을 사용하는 것이 그나마 좋을 것이다.
FreeBSD 5.2이전 버전은 스레드사용에 문제가 있으므로 컴파일시 LinuxThreads를 지원하도록 컴파일해야 한다.
야후가 이 방식으로 운영된다.


두개의 사용가능한 인덱스가 존재할때 명시적으로 사용할 인덱스를 Optimizer에 알려줄때
SELECT ... USE_INDEX(time_stamp) ...


temporary tables
explain에서 using temporary는 임시테이블을 사용한다는 의미이다.
임시테이블이 메모리에 생성되기 위해선 테이블의 크기가 tmp_table_size 변수값보다 작아야 한다.
보통 tmp_table_size 의 크기는 33554432바이트(33MB)이다. 이보다 크면 tmpdir에 지정된 디렉토리에 생성한다.
임시테이블이 생성된 곳(메모리/디스크)의 정보는 다음과 같이 알 수 있다.

mysql> SHOW STATUS LIKE 'Created_tmp_%';
+-------------------------+--------+
| Variable_name           | Value  |
+-------------------------+--------+
| Created_tmp_disk_tables | 19885  |
| Created_tmp_tables      | 510294 |
| Created_tmp_files       | 0      |
+-------------------------+--------+
3 rows in set (0.00 sec)

mysql>


MySQL query cache(4.0부터 가능)
자주 실행되는 select질의의 결과를 메모리에 저장해 둠으로써 Disk I/O의 회수를 줄임.


top, vmstat, iostat, systat (OS따라 없을 수 있음)
쿼리에 대해 explain을 하면서 CPU, Disk I/O를 위의 명령으로 확인할 것.


메모리
global memory buffer
per-thread memory buffer

[thread_buffers]
sort_buffer
myisam_sort_buffer
read_buffer
join_buffer
read_rnd_buffer

[global_buffers]
key_buffer
innodb_buffer_pool
innodb_log_buffer
innodb_additional_mem_pool
net_buffer

20~50 정도의 커넥션을 가지는 1GB 시스템 : GLOBAL버퍼에 비중을 준다.
예)
key_buffer : 512MB
innodb_buffer_pool : 256MB
데이터파일을 위한 OS캐쉬 여유분 + per-thread buffer : 256MB

300-400 정도의 커넥션을 가지면 다음을 고려
메모리추가, max_connections 줄임, pre-thread buffer중 몇개의 크기를 줄임


현재 DB상태 : show status

This article comes from dbakorea.pe.kr (Leave this line as is)



출처 : http://www.superuser.co.kr, http://www.superuser.co.kr/home/lecture/index.php?cateNo=3&secNo=16&theNo=46&leccode=328

List of Articles
번호 제목 글쓴이 날짜 조회 수
29 [MySQL] 데이터를 자기의 홈에 쌓이게 하는 방법 빛의바다 2011.05.27 5274
28 [MySQL] mysql 다중 서버 관리 빛의바다 2011.05.27 5040
» [MySQL] High Performance MySQL Chapter 6: Server Performance Tuning 정리 빛의바다 2011.05.27 4512
26 [MySQL] Query Cache 빛의바다 2011.05.27 4462
25 [MySQL] SQL서버 응응프로그램의 속도향상 빛의바다 2011.05.27 4732
24 PHP 가속기 Zend Optimizer, Turck MMCache for PHP, eAccelerator 빛의바다 2011.05.27 4420
23 Raid 구성의 요약 빛의바다 2011.05.27 4379
22 Redhat9에 yum 설치하기 빛의바다 2011.05.27 4599
21 Name server 운영하기 file 빛의바다 2011.05.27 4189
20 Apache rewrite Module file 빛의바다 2011.05.27 4270
19 트래픽 제한(접속당) 모듈 (mod_bandwidth) 설치 및 운영 file 빛의바다 2011.05.27 4291
18 트래픽 제한 모듈 (mod_throttle) 설치 및 운영 file 빛의바다 2011.05.27 4378
17 아파치 웹서버 보안 관리 file 빛의바다 2011.05.27 4368
16 아파치 설정팁들 file 빛의바다 2011.05.27 4287
15 아파치 웹서버 장애시 대처법 file 빛의바다 2011.05.27 4083
14 Apache 2.x 최적화 file 빛의바다 2011.05.27 4365
13 RedHat 9 설치후 기본 셋팅 file 빛의바다 2011.05.27 4171
12 MySQL DB복구방법 빛의바다 2011.03.03 4171
11 MySQL DB백업방법 빛의바다 2011.03.03 4504
10 squid로 프록시 서버 구축 file 빛의바다 2011.03.03 4668
Board Pagination Prev 1 2 Next
/ 2

JJUNES.COM

Powered by Xpress Engine / Designed by Sketchbook

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소