Skip to content
컴퓨터잡담
2010.04.27 09:47

Table_open_cache 가 늘어나지 않는 이유.

조회 수 15544 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

Table_open_cache 가 늘어나지 않는 이유.


table_locks_wait 테이블_락 현상이 지속적으로 발생되어 Table_open_cache 의 수를 늘려보았지만 지정한 숫자가 아닌 임의대로 지정이 되었다.


Table_open_cache 가 max_connections 과 관련이 있다고 하여 늘이고 줄여보니 max_connections 의 숫자에 따라 Table_open_cache 가 늘어났다 줄어들었다 하는 것을 알 수 있었다.


문제는 


max_connections 의 값이 낮을수록 Table_open_cache 값이 늘어나고,

max_connections 의 값이 높을수록 Table_open_cache 값이 줄어드는 기현상이 벌어졌다.


이유가 뭘까?


해당 링크에서 답이 보이기 시작했다.


http://www.mysqlkorea.co.kr/sub.html?mcode=manual&scode=01_1&m_no=22536&cat1=827&cat2=965&cat3=1002&lang=k


일부내용을 발취하자면,



table_open_cache는 max_connections과 관련이 있다. 

예를 들면, 200개의 동시 구동 접속의 경우, 테이블 캐시의 크기는 최소 200 × N로 만들 수가 있는데, 여기에서N 은 여러분이 실행하는 쿼리 안에 있는 조인 (join) 당 테이블의 최대 숫자가 된다. 

여러분은 또한 반드시 임시 테이블 및 임시 파일에 대한 여분의 파일 디스크립터를 보관하고 있어야 한다. 여러분은 지금 사용하고 있는 OS가 table_open_cache 설정에 포함되어 있는 오픈 파일 디스크립터의 숫자를 다룰 수 있는지를 확인해야 한다. 만일 table_open_cache가 너무 크다면, MySQL은 파일 디스크립터 오류를  발생 시킨 후에 쿼리를 실행하지 못하며, 또한 매우 불안정하게 된다. 또한,  MyISAM 스토리지 엔진은 서로 다른 오픈 테이블별로 두 개의 파일 디스크립터를 필요로 한다는 점을 알고 있어야 한다. mysqld의 스타트 업 옵션인 --open-files-limit를 사용하면 MySQL에서 사용 가능한 파일 디스크립터의 숫자를 늘릴 수가 있다.


파일 오픈용 캐시는 table_open_cache 엔트리 레벨에서 관리된다. 디폴트 값은 64이다; 이 값은 --table_cache 옵션으로 변경 시킬 수가 있다. MySQL은 쿼리를 실행하기 위한 것 보다 많은 수의 테이블을 임시로 오픈 한다는 점을 알아두자.

 



파일 디스크립터?

mysqld의 스타트 업 옵션인 --open-files-limit를 사용하면 MySQL에서 사용 가능한 파일 디스크립터의 숫자를 늘릴 수가 있다?

뭐지? 



참고로 나의 서버에는 open-files-limit가 2048로 되어 있다.



MySQL은 아래의 환경이 되면 사용되지 않은 테이블을 닫고 캐시에서 삭제해 버린다:

캐시가 가득 차고 쓰레드가 캐시 안에 없는 테이블을 열고자 시도할 경우.

캐시가 table_open_cache 엔트리에 있는 것 보다 많은 것을 가지고 있고 캐시 안에 있는 테이블이 더 이상 어떠한 쓰레드에 의해서도 사용되지 않을 경우.

테이블 플러싱 연산이 발생될 경우. 이것은 누군가가 FLUSH TABLES 명령문을 입력하거나,  mysqladmin flush-tables 또는 mysqladmin refresh 명령어를 실행할 때.

테이블 캐시가 가득 차게 되면, 서버는 사용할 캐시 엔트리를 저장하기 위해서 아래의 과정을 진행한다:


사용 중에 있지 않는 테이블은 풀어 놓는다.

만일 오픈해야 할 테이블이 필요하기는 하지만 캐시가 가득 찾기 때문에 풀어 놓을 테이블이 없게 된다면, 캐시는 필요한 만큼 임시로 확장이 된다.

캐시가 임시로 확장이 되고 테이블이 사용되지 않는 상태가 되면, 테이블은 닫히고 캐시에서 풀어져 나오게 된다. 




흠,,

하단까지 읽어보았으나, 내서버는 Opend_tables 가 0이다.

아직 내서버에 나타나는 증상은 해결할 수 없다. ㅠ.ㅠ

로그인 후 댓글쓰기가 가능합니다.

?

List of Articles
번호 분류 제목 날짜 조회 수
1824 컴퓨터잡담 서버 해킹 당하다~ 1 6 2009.11.20 15662
1823 컴퓨터잡담 구글의 Ajax 다국어 번역 API 2010.02.01 15639
1822 유용한상식 코 막혔을때 뚫는법, 뚫리는 방법 스펀지 2013.11.07 15622
1821 컴퓨터잡담 윈도우10 운영체제에 크롬브라우저를 사용할 때 웹사이트 인증서 설치하는 방법 2023.03.25 15610
1820 Visual C++ C# - Etrade API 11 file 2013.02.20 15596
» 컴퓨터잡담 Table_open_cache 가 늘어나지 않는 이유. 1 3 2010.04.27 15544
1818 유용한상식 수경재배가 가능한 식물 2 2011.05.11 15536
1817 회로도전자부품 음계와 주파수 2013.11.08 15531
1816 회로도전자부품 스털링엔진(온도차 발전기) file 2013.07.20 15526
1815 프로세스 SBoxSearchBar 프로세스 삭제방법 1 2011.02.13 15525
Board Pagination Prev 1 ... 51 52 53 54 55 ... 235 Next
/ 235

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


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

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

설치 취소