مانیتورینگ کامل پایگاه های داده

مانیتورینگ کامل پایگاه های داده

پایگاه های داده به عنوان یکی از ستونهای اصلی آی تی در دهه های اخیر از اهمیت بالایی در سازمانها برخوردار هستند. بندرت شرکتهایی وجود دارند که حتی یک دیتابیس هم نداشته باشند. آنها اطلاعات مهم از جمله اطلاعات مربوط به امور مالی، مشتریان و کارمندان خود را در دیتابیس نگهداری میکنند. به همین منظور حصول اطمینان از کارایی و دسترس پذیری پایگاه های داده یکی از ضروری ترین و اصلی ترین نگرانی های سازمانها و مدیران شبکه است.

زبیکس توانایی مانیتور کردن کوچکترین جزئیات دیتابیسها ی زیر را دارد.

یکی از مهمترین سیستم های پایگاه داده که امروزه در اکثر سازمان ها مورد استفاده قرار می گیرد SQL Server  می باشد. در کشور ما نیز اکثر سازمان ها و شرکت ها از SQL Server برای ذخیره سازی اطلاعات حساس و مهم خود استفاده می کنند.

لذا علاوه بر حفظ و نگهداری از آن، بازدهی و کارایی بالای آن نیز دارای اهمیت می باشد. Performance پایگاه داده و مانیتور کردن آن از مواردی است که برای مدیران IT سازمان ها مهم و تعیین کننده می باشد. اجرای صحیح Job ها، وجود ارتباط بین پایگاه داده و برنامه های کاربردی، پاسخ دهی به موقع و مناسب به درخواستها، همگی از مواردی است که بر کارکرد دیتابیس تاثیر گذار است.

سیستم جامع مانیتورینگ زبیکس با پوشش موارد فوق این امکان را فراهم می آورد تا در صورت ایجاد خلل یا کاهش بازدهی سیستم، مدیران را با خبر ساخته و علت وقوع آن را ردیابی و گزارش دهی کند.

برخی از ویژگی های مانیتورینگ  پایگاه داده SQL Server :

-میزان استفاده SQL Server از CPU : سروری که برای SQL انتخاب می شود باید علاوه بر پاسخ دهی به پردازش های  سیستم عامل که معمولا windows server است به سرویس SQL Server نیز پاسخ دهی مناسبی داشته باشد.

-میزان استفاده SQL Server  از مموری: میزان فضای موجود برای  اجرای SQL Server  از موارد تاثیر گذار بر بازدهی و کارایی دیتابیس می باشد. در صورت کم بودن این فضا میزان ورودی و خروجی و در نتیجه مصرف پردازنده افزایش یافته و باعث کاهش کارایی SQL Server خواهد شد.

-حجم داده های ذخیره شده: شامل مواردی از قبیل Data Files, Tempdb, Log Files می باشد.

-بررسی اجرا بودن سرویس SQL : در صورت اجرا نبودن سرویس، پس از گذشت مدت زمانی خاص ، زبیکس این قابلیت را دارد تا سرویس را اجرا یا ریستارت کند.

 برخی از آیتم های مانیتور شده برای SQL Server

 

 Description

 Name

(Unused physical memory (not page file 

Available Mbytes 

The average wait time, in milliseconds, for each lock request that had to wait

 An average wait time longer than 500ms may indicate excessive blocking. This value should generally correlate to “Lock Waits/sec” and move up or down with it accordingly

Average Wait Time 

The average latch wait time, in millisec- onds, for any latch requests that had to wait. This value should generally correlate to “Latch Waits/sec” and move up or down with it accordingly

Avg Latch Waits Time 

Number of batch requests received per second, and is a good general indicator for the activity level of the SQL Server. This counter is highly dependent on the hardware and quality of code running on the server. The more powerful the hardware, the higher this number can be, even on poorly coded applications. A value of 1000 batch requests/sec is easily attainable though a typical 100Mbs NIC can only handle about 3000 batch requests/sec.Many other counter thresh- olds depend upon batch requests/sec while, in some cases, a low (or high) number does not point to poor processing power. You should frequently use this counter in combination with other counters, such as processor utilization or user connections.In version 2000, “Transactions/

overall activity, while versions 2005 and later use “Batch Requests/sec”. Versions 2005 prior to SP2, measure this counter differently and may lead to some misunderstandings. Read the footnote for more details

 

Batch Requests 

Long a stalwart counter used by SQL Server DBAs, this counter is no longer very useful. It monitors the percentage of data requests answer from the buffer cache since the last reboot. However, other counters are much better for showing current memory pressure that this one because it blows the curve. For example, PLE (page life expectancy) might suddenly drop from 2000 to 70, while buffer cache hit ration moves only from 98.2 to

98.1. Only be concerned by this counter if it’s value is regularly below 90 (for OLTP) or 80 (for very large OLAP)

Buffer cache hit ratio 

Number of database pages in the buffer pool, as opposed to other usages for memory such as free pages, procedure cache, etc

Database Pages 

Cumulative size (KB) of all the data files in the database including any automatic growth. Monitoring this counter is useful, for example, for determining the correct size of tempdb

Data File(s) Size 

The number of latches in the last second that had to wait. Latches are lightweight means of holding a very transient server resource, such as an address in memory. 

Latch Waits 

The number of new locks and locks converted per second. This metric’s value should generally correspond to “Batch Re- quests/sec”. Values > 1000 may indicate queries are accessing very large numbers of rows and may benefit from tuning

Lock Requests 

Shows the number of lock requests per second that timed out, including internal requests for NOWAIT locks. A value

greater than zero might indicate that user queries are not completing. The lower

this value is, the better

Lock Timeouts 

The total time spent waiting across all transactions, in milliseconds, to acquire a lock in the last second. Because SQL

Server records a lock at the end of a lock- ing event, remember that an application with huge transactions may have inflated lock wait times while still performing

as expected. For example, an applica- tion that issues multi-million record updates might have very long lock wait times while performing exactly as it was designed

Lock Waits 

The number of user logins per second. Any value over 2 may indicate insufficient connection pooling

Logins 

The number of user logouts per second. Any value over 2 may indicate insufficient connection pooling

Logouts 

Cumulative size, in (KB), of all the transaction log files for the specific database. Useful for deter- mining trends and utilization of the transaction log

Log File(s) Size

The cumulative used size of all the log files in the database

Log File(s) Used Size

Tells, on average, how many seconds SQL Server expects a data page to stay in cache. The target on an OLTP system should be at least 300 (5 min). When under 300, this may indicate poor index design (leading to increased disk I/O

and less effective use of memory) or, simply, a potential shortage of memory

Page life expectancy

Number of physical database page reads issued. Normal OLTP workloads support 80 – 90 per second, but higher values may be a yellow flag for poor indexing or insufficient memory

Page Reads

< 20 per 100 Batch Requests/Sec

Monitors the number of page splits per second which occur due to overflowing index pages and should be as low as possible. To avoid page splits, review table and index design to reduce non-sequential inserts or implement fillfactor and pad_index to leave more empty space per page. NOTE: A high value for this counter is not bad in situations where many new pages are being created, since it includes new page allocations

Page Splits

Number of database pages physically written to disk. Normal OLTP workloads support 80 – 90 per second. Values over 90 should be crossed checked with “lazy writer/sec” and “checkpoint” counters. If the other counters are also high, then it may indicate insufficient memory 

Page Writes

(Number of times that Transact-SQL compilations occurred, per second (including recompiles

The lower this value is the better. High values often indicate excessive adhoc querying and should be as low as possible. If excessive adhoc querying is happening, try rewriting the queries as procedures or invoke the queries using sp_ex- ecuteSQL. When rewriting isn’t possible, consider using a plan guide or setting the database to parameterization forced mode

SQL Compilations

Number of times, per second, that Transact-SQL

objects attempted to be executed but had to

be recompiled before completion. This number should be at or near zero, since recompiles can cause deadlocks and exclusive compile locks. This counter’s value should follow in proportion to “Batch Requests/sec” and “SQL Compilations/ sec”. This needs to be nil in your system as much as possible

SQL Re-Compilations

Percentage of elapsed time that the process threads spent executing code in privileged mode, like SQL Server I/O requests

SQL Server %Privileged Time

Percentage of processor time spent on SQL Server process threads.You may also wish

to investigate other Process (sqlservr) such as Private Bytes, Virtual Bytes, Working Set, etc to get a fuller understanding of how SQL Server allocates certain segments of memory. Usually, these auxiliary counters

provide contextual information and are not necessary for troubleshooting

SQL Server %Processor Time

Percentage of processor time spent on

SSAS process threads

SSAS %Processor Time

Number of errors per second which takes a data- base offline or kills a user connection, respec- tively. Since these are severe errors, they should occur very infrequently

SQL Server Errors

Tells how many pages were “stolen” from the buffer pool to satisfy other memory needs, such as plan cache and workspace memory

This number is a good metric to determine how much data is flowing into SQL Server caches

and should remain proportionate to “Batch Requests/sec”. Also remember to look for where these stolen pages might be stolen from – optimizer memory, lock memory, and so forth

Stolen Pages

Shows the amount of memory that SQL Server wants to use based on the configured Max Server Memory

Target SQL Server Memory

The total latch wait time in milliseconds spent waiting for a latch in the last second. This value should stay stable compared to the number of latch waits per second

Total Latch Wait Time

Shows the amount of memory that SQL Server is currently using. This value should grow until its equal to Target Server Memory, as it popu- lates its caches and loads pages into memory. When it has finished, SQL Server is said to be in a “steady-state”. Until it is in steady-state, per- formance may be slow and IO may be higher

Total SQL Server Memory

The number of users currently connected to the SQL Server. This counter should roughly track with “Batch Requests/Sec”. They should generally rise and fall togeth- er. For example, blocking problems could be revealed by rising user connections, lock waits and lock wait time coupled

with declining batch requests/sec

User Connections

 

  • 1
  • 2

یکی از زیرساختهای مهم و اساسی در حوزه خدمات IT در ارگان ها و سازمان ها، بانکهای اطلاعاتی هستند. اوراکل قدرتمندترین پایگاه داده جهان در اکثر سازمانها و شرکت های بزرگ این وظیفه را بر عهده دارد. از این رو مانیتورینگ آن جهت بررسی عملکرد صحیح و مناسب، لازم و ضروری است. سیستم قدرتمند مانیتورینگ زبیکس به خوبی میتواند عملکرد این بانک اطلاعاتی را که مانند یک ستون برای خدمات فناوری اطلاعات یک سازمان است، مورد بررسی قرار داده و رفتار اجرایی آن را برای مدیران به درستی نمایش دهد تا در صورت پدید آمدن کوچکترین خلل، سریعا عکس العملی مناسب، جهت بهبود وضعیت نشان دهد.همچنین مسئولان بخش IT ، می توانند با بازبینی شاخص های مربوط به اجرا و پاسخ دهی بانک اطلاعاتی، performance سیستم را رصد کرده و در صورت نیاز با ارتقا منابع، عملکرد آنرا بهبود بخشند.

با افزایش قدرت سرورها و گسترده شدن خدمات IT، بانک های اطلاعاتی از جمله اوراکل نیز از تکنیک های پیشرفته تری برای افزایش کارایی بانک اطلاعاتی استفاده می کنند. نحوه کش کردن اطلاعات و استفاده مناسب از بافر، سرویس دهی به تعداد زیاد کاربران، کنترل صحت اطلاعات، نگهداری از حجم انبوه اطلاعات، زمان پاسخ گویی مناسب، Load Balancing ، دسترسی پذیری بالا و ... از مزایای این بانک اطلاعاتی است که می توان نام برد.

با مانیتور کردن بانک اطلاعاتی اوراکل توسط سیستم مانیتورینگ زبیکس، میتوان وضعیت آنرا در گرافهای متنوع مشاهده کرد، دیدن شاخص های کنترلی به صورت لحظه به لحظه و یا به صورت تاریخچه جهت کنترل روند عملیاتی پایگاه داده از امکاناتی است که مانیتورینگ در اختیار ما قرار می دهد. از دیگر خصوصیات مانیتورینگ زبیکس می توان به تعیین شرایط و حد آستانه ها، سیستم اعلام هشدار و اطلاع رسانی هنگام وقوع اختلال اشاره کرد. بنابراین زبیکس دید روشنی از عملکرد بانک اطلاعاتی اوراکل در اختیار ما قرار می دهد که با بررسی مقادیر گرفته شده میتوان عملکرد پایگاه داده را ارزیابی کرده و در صورت مشاهده bottleneck نسبت به رفع آن اقدام کنیم.

برخی از  آیتم های مانیتور شده برای Oracle

 

Description Name
Bytes sent via SQL*Net to client  bytes sent 
User Commits  commits 
db file parallel write db parallel write 
db file scattered read  db scattered read 
db file sequential read waits  db sequential read 
db file single write  db single write 
Deadlocks  deadlocks 
direct path read  direct path read 
direct path write  direct path write 
Disk sorts ratio  disk sort
enqueue waits enqueue waits
free buffer waits  free buffer waits
Hard parse ratio hard-parse-rati 
(Index fast full scans (full  index scan 
[Last applied archive log (at standby).Next items requires [timed_statistics = true  last applied log 
Last archived log sequence  last archived log 
latch free  latch free 
Logons current  logon current 
log file switch completion  log completion 
log file sync  log file sync 
log file parallel write  log parallel write 
SQL*Net roundtrips to/from client  net round trips 
Read Cache hit ratio read cache hitratio 
Redo Writes redo writes 
Table scan rows gotten scans rows 
Size of all datafiles  size datafiles 
(Size of user data (without temp size user data 
(Table scans (long tables  table scans 
(Instance Uptime (seconds (uptime (sec 
Count of users connected to Oracle users count 
User Rollbacks  user rollbacks 
(Oracle version (Banner  version 

 

  • 1
  • 2

از قویترین بانکهای اطلاعاتی متن باز و رایگان میتوان Postgresql را نام برد که تاکنون توانسته نظر اکثر طراحان و کاربران پایگاه داده را به خود جلب کند. پایگاه داده PostgreSQL یک سیستم مدیریت پایگاه داده رابطه ای شیئ یا ORDBMS است که این امکان را فراهم آورده تا حجم بسیار بزرگی از اطلاعات را نگهداری و مدیریت کند. این بانک اطلاعاتی محبوب قابلیت نصب بر روی سیستم های ویندوزی و لینوکسی را دارد.

جهت رسیدن به اوج کارایی و Performance بهتر استفاده کردن مناسب از منابعی که در اختیار دارد، لازم است که توسط پارامترهایی که در این بانک اطلاعاتی وجود دارد آنرا بهینه کنیم. بهینه سازی بسیار مهم و کاربردی است اما بدون مانیتورینگ این عمل غیرممکن است. با مانیتور کردن سیستم، شما از رخدادها قبل از اینکه به مشکلی بزرگتر تبدیل شود با خبر می شوید.

سیستم مانیتورینگ زبیکس توسط ارتباط برقرار کردن با بانک اطلاعاتی Postgresql ، از عملکرد آن گزارشگیری کرده و نتیجه را به صورت ترسیم کردن گرافها و ارائه آمار و ارقام پارامترها به مدیران، وضعیت بانک اطلاعاتی را به بهترین نحو نمایش می دهد.

برخی از آیتم های مانیتور شده برای دیتابیس های PostgreSQL

 زبیکس میتواند به صورت خودکار بانک اطلاعاتی را پویش و دیتابیسهای موجود را پیدا کند. به این طریق آمار و اطلاعات آنها را جهت مانیتور کردن در اختیار ما قرار می دهد.

 

Name
Active connections per database 
Cache hit ratio (%)  per database 
Committed transactions  per database 
DB Size  per database 
Deadlocks  per database 
Rolled back transactions  per database 
Temp bytes per database 
Tuples deleted  per database 
Tuples fetched  per database 
Tuples inserted per database 
Tuples returned  per database 
Tuples updated  per database 

برخی از آیتم های مانیتور شده برای جداول PostgreSQL

اطلاع از وضعیت جداول درون هر دیتابیس نیز برای مدیران بانک اطلاعاتی جهت بهینه سازی پایگاه داده مفید است. سیستم مانیتورینگ زبیکس می تواند دید خوبی از وضعیت این جداول به ما دهد:

 

Name
analyze count per table 
 autoanalyze count  per table 
autovacuum count  per table 
cache hit ratio %  per table 
number of dead tuples  per table 
number of delete tuples (tuples/s)  per table 
number of hot update tuples (tuples/s)  per table 
number of index scan (scans/s)  per table 
number of index tuples read (tuples/s)  per table 
number of insert tuples (tuples/s)  per table 
number of live tuples  per table 
number of sequencial scan (scans/s)  per table 
number of update tuples (tuples/s)  per table 
vacuum count  per table 
  • 1
  • 2
  • 3