블로그 이미지
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

공지사항

최근에 올라온 글

hammerOra

카테고리 없음 / 2014. 8. 1. 19:03

 

http://bryans.tistory.com/71

http://bryans.tistory.com/72

 

 

Posted by 보미아빠
, |

http://msdn.microsoft.com/en-us/library/windows/hardware/jj123528.aspx

 

위 테스트는 서버에 processor groupsize 속성을 변경해 numa 를 강제로 생성하게 하는 방법이다.

여기에서 2개의 logical processor 가 하나의 group 으로 설정하고 싶다면 bcdedit.exe /set groupsize 2 이렇게 설정하면 된다.

 

예제는 다음과 같다

 

Consider a non-NUMA system that has one processor package (socket) that contains four processor cores and has Hyper Threading enabled, for a total of eight logical processors. If you run the following command to set the processor group size to two and then restart the system, the system will be configured to have four processor groups where each group has two logical processors, one core, and one NUMA node. GetLogicalProcessorInformationEx reports 8 logical processors, four processor packages, 4 nodes, and 4 groups. Each group contains one node, one package, and 2 logical processors.

 

bcdedit.exe /set groupsize 2

 

위 예제는 로지컬 프로세서가 8개 있을때 4개 프로세서 그룹이 생기고, 각 그룹당 2개의 로지칼 프로세서, 1개의 코어, 1개의 numa 가 생긴다는 설명이다. 

 

아래 그림은 계층도 이다. 참고하면 좋을 것이다. 나는 이것을 보고 2개의 누마를 생성하기 위해 프로세서 그룹 최대치를 위와같이 조정한 것이다. 이런 방법은 멀티 numa 환경에서 프로그램 특성을 테스트 하기위한 것이지 이게 실제로 numa가 생성된다는 말도안되는 말씀 하시면 안됩니다. ....

 

 

 

 

 

지우고 싶다면,

 

bcdedit.exe /set groupaware off

bcdedit.exe /deletevalue groupsize

 

명령을 수행하고 restart 한다.

 

SQL Server 2012 sp2 numa 환경에서 한쪽 numa 노드만 cpu 가 100% 임....

관련 cu 는 나와 있고 유사 환경을 꾸며 repro 할려고 했는데 안되네....

 

http://support.microsoft.com/kb/2928300/en-us

 

-_-~ 랄라라~ sql 을 -P 옵션으로 프로세서가 많은것처럼 꾸미면(병렬쿼리 비용계산을 시뮬레이션 할 때 주로 사용) sql 에서는 numa 인식을 또 못하네....그래서 데탑에서 repro 가 안되는것으로 판명

 

또! 아래 SQL QueryStress 이 프로그램 리소스를 은근 많이 사용한다. -_- 그래도 간단한 파라미터 쿼리나 부하 테스트 용으론 편하다. 쩝......ostress 쓰면 adhoc 호출에 의해 compile이 계속 올라가고.....워크로드 제너레이터를 간단히 만드는게 좋다.

 

 

바탕화면은 왜 이렇게 붉은지..........ㅎㅎㅎ 내 정신세계인가?

Posted by 보미아빠
, |

select
   name
 , case when status&1 = 1 then 'autoclose(ALTER DATABASE)' else null end
 , case when status&4 = 4 then 'select into/bulkcopy(SET RECOVERY를 사용한 ALTER DATABASE)' else null end
 , case when status&8 = 8 then 'trunc. log on chkpt(SET RECOVERY를 사용한 ALTER DATABASE)' else null end
 , case when status&16 = 16 then 'torn page detection(ALTER DATABASE) ' else null end
 , case when status&32 = 32 then 'loading  ' else null end
 , case when status&64 = 64 then 'pre recovery' else null end
 , case when status&128 = 128 then 'recovering ' else null end
 , case when status&256 = 256 then 'not recovered ' else null end
 , case when status&512 = 512 then 'offline(ALTER DATABASE)' else null end
 , case when status&1024 = 1024 then 'read only(ALTER DATABASE)' else null end
 , case when status&2048 = 2048 then 'dbo use only(SET RESTRICTED_USER를 사용한 ALTER DATABASE)' else null end
 , case when status&4096 = 4096 then 'single user(ALTER DATABASE)' else null end
 , case when status&32768 = 32768 then 'emergency mode ' else null end
 , case when status&65536 = 65536 then 'CHECKSUM(ALTER DATABASE)' else null end
 , case when status&4194304 = 4194304 then 'autoshrink(ALTER DATABASE)' else null end
 , case when status&1073741824 = 1073741824 then 'cleanly shutdown' else null end

 , case when status2&16384 = 16384 then 'ANSI null default(ALTER DATABASE)' else null end
 , case when status2&65536 = 65536 then 'concat null yields null(ALTER DATABASE)' else null end
 , case when status2&131072 = 131072 then 'recursive triggers(ALTER DATABASE)' else null end
 , case when status2&1048576 = 1048576 then 'default to local cursor(ALTER DATABASE)' else null end
 , case when status2&8388608 = 8388608 then 'quoted identifier(ALTER DATABASE)' else null end
 , case when status2&33554432 = 33554432 then 'cursor close on commit(ALTER DATABASE)' else null end
 , case when status2&67108864 = 67108864 then 'ANSI nulls(ALTER DATABASE)' else null end
 , case when status2&268435456 = 268435456 then 'ANSI warnings(ALTER DATABASE)' else null end
 , case when status2&536870912 = 536870912 then 'full text enabled(sp_fulltext_database로 설정)' else null end
from master.dbo.sysdatabases

 

--ALTER DATABASE BAMMA
--SET PAGE_VERIFY CHECKSUM;
--GO

--ALTER DATABASE joymdb
--SET auto_shrink off;
--GO

--exec sp_fulltext_database 'disable'

 

 

dbcc sqlperf(logspace)

 

-- vlf 갯수

DECLARE @query varchar(1000),
 @dbname varchar(1000),
 @count int

SET NOCOUNT ON

DECLARE csr CURSOR FAST_FORWARD READ_ONLY
FOR
SELECT name
FROM master.dbo.sysdatabases

--drop table ##loginfo
CREATE TABLE ##loginfo
(
 dbname varchar(100),
 num_of_rows int)

OPEN csr

FETCH NEXT FROM csr INTO @dbname

WHILE (@@fetch_status <> -1)
BEGIN


CREATE TABLE #log_info
(
recoveryUnitId int,
 fileid tinyint,
 file_size bigint,
 start_offset bigint,
 FSeqNo int,
[status] tinyint,
 parity tinyint,
 create_lsn numeric(25,0)
)

SET @query = 'DBCC loginfo (' + '''' + @dbname + ''') '

INSERT INTO #log_info
EXEC (@query)

SET @count = @@rowcount

DROP TABLE #log_info

INSERT ##loginfo
VALUES(@dbname, @count)

FETCH NEXT FROM csr INTO @dbname

END

CLOSE csr
DEALLOCATE csr

SELECT dbname,
 num_of_rows
FROM ##loginfo
WHERE num_of_rows >= 50 --My rule of thumb is 50 VLFs. Your mileage may vary.
ORDER BY dbname

DROP TABLE ##loginfo

 

-- 마지막 full backup
SELECT top 1 s.database_name,
m.physical_device_name,
cast(s.backup_size/1000000 as varchar(14))+' '+'MB' as bkSize,
CAST (DATEDIFF(second,s.backup_start_date , s.backup_finish_date)AS VARCHAR(4))+' '+'Seconds' TimeTaken,
s.backup_start_date,
CASE s.[type]
WHEN 'D' THEN 'Full'
WHEN 'I' THEN 'Differential'
WHEN 'L' THEN 'Transaction Log'
END as BackupType,
s.server_name,
s.recovery_model
FROM msdb.dbo.backupset s
inner join msdb.dbo.backupmediafamily m
ON s.media_set_id = m.media_set_id
WHERE s.database_name = 'joymdb'
and
CASE s.[type]
WHEN 'D' THEN 'Full'
WHEN 'I' THEN 'Differential'
WHEN 'L' THEN 'Transaction Log'
END ='full'
ORDER BY database_name, backup_finish_date desc

 

 

-- 마지막 로그백업
SELECT top 1 s.database_name,
m.physical_device_name,
cast(s.backup_size/1000000 as varchar(14))+' '+'MB' as bkSize,
CAST (DATEDIFF(second,s.backup_start_date , s.backup_finish_date)AS VARCHAR(4))+' '+'Seconds' TimeTaken,
s.backup_start_date,
CASE s.[type]
WHEN 'D' THEN 'Full'
WHEN 'I' THEN 'Differential'
WHEN 'L' THEN 'Transaction Log'
END as BackupType,
s.server_name,
s.recovery_model
FROM msdb.dbo.backupset s
inner join msdb.dbo.backupmediafamily m
ON s.media_set_id = m.media_set_id
WHERE s.database_name = 'joymdb'
and
CASE s.[type]
WHEN 'D' THEN 'Full'
WHEN 'I' THEN 'Differential'
WHEN 'L' THEN 'Transaction Log'
END ='Transaction Log'
ORDER BY database_name, backup_finish_date desc

 

 

-- 계정 없을때

net stop mssql$mynewins5
net start mssql$mynewins5 /m /f /T3608 /T7806
sqlcmd -S.\mynewins5 -A
USE [master]
GO
CREATE LOGIN [a] WITH PASSWORD=N'P@ssw0rd', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
ALTER SERVER ROLE [sysadmin] ADD MEMBER [a]
GO
exit
net stop mssql$mynewins5
net start mssql$mynewins5

 

 

Posted by 보미아빠
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함