블로그 이미지
010-9967-0955 보미아빠

카테고리

보미아빠, 석이 (500)
밥벌이 (16)
싸이클 (1)
일상 (1)
Total
Today
Yesterday

달력

« » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

공지사항

최근에 올라온 글


모 팀장님께서 sql server worker thread 가 bpool 메모리에 있다고 강의를 한 모양이다.

동생 : 형? 정말이에요? 그렇다 카더라 하던데요....
나 : 아니 bpool 외 영역에 있지.......
동생 : 그럼 어떻게 그 사이즈를 모니터링 해요?
나 : 몰라~ 그냥 process thread count 보고 역 추적해야쥐....-_-
동생 : 다른데 보일 만한데나 증명할 방업이 없어요?
나 : 씨봉....바쁜데....

그래도 해보기로 했다. 왜냐구? 조낸 유명한 분이 한 강의란다. bpool 에 worker thread 메모리가 포함 된다고....
아닌데.......그럼 지금 쓰고 있는책 다 어퍼야 하는데...아~ 짱나....

간단히 증명해 보기로 한다.
일단 간단한 테이블을 만든다.

CREATE TABLE [dbo].[tblx](
 [idx] [int] NULL
) ON [PRIMARY]
GO

insert into tblx values (1)

음 프로시저도 하나 만들어야지....

CREATE proc [dbo].[a] 
as 
begin tran  
update tblx set idx = idx + 1
waitfor delay '00:00:59'
commit tran
GO

음 무식하게 세션 만들어 하기 싫으니 ostress 하나 깔아야 겠다.

자 이제 준비 끝!
net stop mssql$sql2008r2
net start mssql$sql2008r2

직 후 process 와 dbcc memorystatus 모니터링 결과

Process 에 sqlserver 모니터링 Private Bytes 376MB 에 Thread Count 87개 buffer pool 영역의 database 1319 page 가 로드되어 있음

ostress 로 아까 만든 프로시저 동작 시킨 후 결과

private byte 는 1.6GB 로 늘었으나 bpool 은 아주 조금 늘었다. 참고로 dbcc memory status 의 buffer pool 의 단위는 page 이다. 

안  믿어져요......좀 더 테스트 해주세요 졸라 유명한 분이라구요.....알았다. 좀 더 테스트 해줄께....
테이블 사이즈 2GB 짜리를 SQL 에 로드해 보았다.

sp_spaceused 로 2GB 짜리 확인 후 테이블 로딩

declare @cchar200 char(200)
select @cchar200 =cchar200 from t_others

로딩 후 결과

buffer pool 의 사이즈만 늘었고 나머지는 늘지 않았다. buffer pool database 만 272535 page 이므로, 2.23GB 가 올라왔다.

Private Byte 는 아까와 변함없다. worker thread 는 아직 유지하고 있기 때문에 줄지 않았다. ostress 종료 시키면 좀 있다. thread count 를 줄여 나갈 것이다.

실제 SQL Server 가 사용하는 Thread Stack 모니터링 툴
http://sqlsql.tistory.com/148



Posted by 보미아빠
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함