์ธ์Šคํ„ด์Šค์˜ ๋†’์€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ์ตœ์ ํ™”

์ด ๋ฌธ์„œ์—์„œ๋Š” SQL Server์šฉ Cloud SQL ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ณผ์†Œ ํ”„๋กœ๋น„์ €๋‹๋œ ์ธ์Šคํ„ด์Šค ์ถ”์ฒœ์ž์— ์˜ํ•ด ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ๋†’์€ ๊ฒƒ์œผ๋กœ ์‹๋ณ„๋œ ๊ฒฝ์šฐ, ํ•ด๋‹น ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฒ€ํ† ํ•˜์—ฌ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

SQL Server ๋ฉ”๋ชจ๋ฆฌ

SQL Server ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ถ„๋ฅ˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์บ์‹œ

์ด๊ฒƒ๋“ค์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŽ˜์ด์ง€ ๋ฐ ์ €์žฅ ํ”„๋กœ์‹œ์ ธ์™€ ๊ฐ™์ด ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋Š” ๋””์Šคํฌ์˜ ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ SQL Server๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ๊ธฐ์ค€์œผ๋กœ ์ด๋Ÿฌํ•œ ๊ฐ์ฒด๋ฅผ ๋Š˜๋ฆฌ๊ฑฐ๋‚˜ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์บ์‹œ์—๋Š” ๋ฒ„ํผ ํ’€๊ณผ ๊ณ„ํš ์บ์‹œ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

๊ณ ์ • ๋ฉ”๋ชจ๋ฆฌ

๊ณ ์ • ๋ฉ”๋ชจ๋ฆฌ๋Š” ์ฆ๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ถ•์†Œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๋•Œ๋งŒ ์ถ•์†Œ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์—ฐ๊ฒฐ ์ˆ˜๊ฐ€ ๊ฐ์†Œํ•˜๊ฑฐ๋‚˜ ์‹คํ–‰ ์ค‘์ธ ์ฟผ๋ฆฌ ์ˆ˜๊ฐ€ ๊ฐ์†Œํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์—ฌ๊ธฐ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์บ์‹œ์™€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๊ณ ์ • ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•˜๋ฉด SQL Server ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณ ์ • ๋ฉ”๋ชจ๋ฆฌ์—๋Š” ์—ฐ๊ฒฐ ๋ฉ”๋ชจ๋ฆฌ์™€ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์—ฌ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

SQL Server ์˜ค๋ฒ„ํ—ค๋“œ

SQL Server ์˜ค๋ฒ„ํ—ค๋“œ์—๋Š” ์Šค๋ ˆ๋“œ์™€ ์Šคํƒ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์ธ๋ฉ”๋ชจ๋ฆฌ OLTP

์ธ๋ฉ”๋ชจ๋ฆฌ OLTP์—๋Š” ์ธ๋ฉ”๋ชจ๋ฆฌ ํ…Œ์ด๋ธ”๊ณผ ์ธ๋ฉ”๋ชจ๋ฆฌ ํŒŒ์ผ ๊ทธ๋ฃน์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

SQL Server ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์€ maximum server memory ๋ฐ memory.memory.limitmb ์„ค์ •์„ ํ†ตํ•ด ์ œ์–ด๋ฉ๋‹ˆ๋‹ค. Cloud SQL์€ memory.memory.limitmb ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ž๋™์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

memory.memory.limitmb์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Microsoft ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋ฉ”๋ชจ๋ฆฌ ์ตœ์ ํ™” ์˜ต์…˜

์ธ์Šคํ„ด์Šค์— ๋ฉ”๋ชจ๋ฆฌ ์กฐ์ •์ด ํ•„์š”ํ•œ์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜์„ธ์š”.

  • max server memory (mb) ํ”Œ๋ž˜๊ทธ์˜ ๊ฐ’์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    Cloud SQL์—์„œ ์ด ํ”Œ๋ž˜๊ทธ์˜ ๊ฐ’์„ ๊ด€๋ฆฌํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ’์„ ์ˆ˜๋™์œผ๋กœ ๊ด€๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ๊ถŒ์žฅ์‚ฌํ•ญ์— ์„ค๋ช…๋œ max_server_memory (mb) ์‚ฌ์šฉ๋Ÿ‰ ๊ณต์‹์„ ์‚ฌ์šฉํ•˜์—ฌ SQL Server๊ฐ€ ๋ชจ๋“  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

    ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํŠน์ˆ˜ ํ”Œ๋ž˜๊ทธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

  • Page life expectancy ํ”Œ๋ž˜๊ทธ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค.

    Page life expectancy๋Š” ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ํŽ˜์ด์ง€๊ฐ€ ๋ฒ„ํผ ํ’€์— ๋จธ๋ฌด๋Š” ์‹œ๊ฐ„(์ดˆ)๋กœ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ Microsoft์—์„œ ๊ถŒ์žฅํ•˜๋Š” 300๋ณด๋‹ค ์ปค์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ง€์†์ ์œผ๋กœ 300 ๋ฏธ๋งŒ์ด๋ฉด ์ธ์Šคํ„ด์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋ฅ ์ด ๋†’์€ ๊ฒƒ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ Page life expectancy๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜์„ธ์š”.

        SELECT
          [object_name],
          [counter_name],
          [cntr_value]
        FROM
          sys.dm_os_performance_counters
        WHERE
          [object_name]
        LIKE
          '%Manager%'
        AND
          [counter_name] = 'Page life expectancy'
        
  • Memory Grants Pending ํ”Œ๋ž˜๊ทธ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    Memory Grants Pending์€ ์ž‘์—…๊ณต๊ฐ„ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์—ฌ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ด ํ”„๋กœ์„ธ์Šค ์ˆ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ Memory Grants Pending์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด ์ฟผ๋ฆฌ์—์„œ ๊ถŒํ•œ ๋ถ€์—ฌ๊ฐ€ ๊ณ„์†ํ•ด์„œ ๋Œ€๊ธฐ ์ค‘์œผ๋กœ ํ‘œ์‹œ๋˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋ฅ ์ด ๋†’์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋Œ€๊ธฐ๋ฅผ ์ฟผ๋ฆฌํ•˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋Œ€๊ธฐ ์ค‘์ธ ๋ฌธ์„ ์กฐ์ •ํ•˜์—ฌ ์‚ฌ์šฉ๋ฅ ์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

        SELECT
          @@SERVERNAME AS [Server Name],
          RTRIM([object_name]) AS [Object Name],
          cntr_value AS [Memory Grants Pending]
        FROM
          sys.dm_os_performance_counters WITH(NOLOCK)
        WHERE
          [object_name]
        LIKE
          N'%Memory Manager%'  -- Handles named instances
        AND
          counter_name = N'Memory Grants Pending'
        

๋‹ค์Œ ๋‹จ๊ณ„