بافل تروخانوف. مراقبة Postgres بواسطة USE و RED. فك التشفير مع PGConf.Russia

بافيل تروخانوف ، "مراقبة Postgres بواسطة USE و RED"



هناك طريقتان لمراقبة الأداء: الاستخدام (الاستخدام والتشبع والأخطاء) بواسطة Brendan Gregg و RED (الطلبات والأخطاء والمدد) بواسطة Tom Wilkie. في حديثي ، أريد أن أتحدث عن كيف استرشدنا بهم واستمروا في الاسترشاد عند تنفيذ مراقبة Postgres في okmeter.io.





. Okmeter. , , Postgres , . , , , , , USE RED , Postgres.





, . , .





, , , , . - . performance - , , , , .





, , , Postgres – , , . , - , , , . - , . - , , .





USE. , . , , . , , saturation , .





, ? , pg_stat_activity . ? , . , - , . , , . - , - , , .





? «», CPU Usage, , iostat – . , . , , . , , . .





, , , Postgres. , Postgres . . , , . Data Egret. , .





- ?





. . , Postgres , connection connection .





. . , . – - . , , . , , , .



: « ?». , SpinLock - , , , . CPU usage , .



– . , , , , - , , , , - .



? , capacity. 100 %, , , . .



. , . , . . , . , . . .



. - , capacity. , capacity ? . . saturation, . , . , .



Postgres.





pg_stat_activity. - . , . . : 300 connection . , - . , , - .





, . , , . - , , capacity , . . , Postgres max connections.





, state connection, , , idle, . . connection , . - idle in transaction. , , . active, - .





, , . , . ? . , - , . – pool connections, – , , , , . – , . - : locks - .





, , , .





- , , active 5 % connections. 95 % . . , .





, . , connections .



?





, . ? 100 connections, max connections , setting’, . , . , 100 %. , – . - . , . - , - .





saturation, util ? Saturation , utilization 100 % . , , , utilization 100? , .



, , CPU usage , load avarage . , 100 %, saturation . Load avarage — saturation, - . runnable , . . , , , .



, CPU usage . ? . load avarage. Load avarage , . , - . . response .





. - – idle in transaction.





. . - , . saturation .





idle. max connections, . , . -.





, select’ pg_stat_activity connections, waiting try. . . active state, - , -. waiting.



, . utilization connection pool 100 %.





, .





waiting ? . , - saturation , . . stack Postgres, , - - . .





– locks. , lock. , locks - , , connections. , locks.





. . . - lock , .





lock – space , – . , , lock . , , connections, locks, — saturation lock.





Postgres , connection . TCP-. TCP-. Post master . , , , «reset». time wait .



? , connections .





connections .





, connection pool . , , , , . ? - . ? -, . connections 5 000. Postgres . ? - connections. , , .





TCP . time wait, , - Postgres - , .





, connect? postmaster , connections backlog list . , search, backlog 100. . 100 %. – , - – saturation. – .





, backlog , reset.





, . Postgres , TCP «».





RED, USE? DBA, , , , - . , - . - , . . , Postgres .





RED, , , , :



  • ,
  • ,
  • .




Postgres. , . , - . . - , .





rollbacks, , 6 , , , , , search , . . , - .



, RED . , . ? , . , , . , .





queries . - - . 8 , .





, - . . select , .





. , - , . . - . . - . , . . . : « , », , .





, . pg_stat_statements , . . , , . . , . – . . , , - , , . .





slow log. Slow log – durations . , . . , , - , .





, . , - , .





. , - . . , , . – , .





. - .





, , - . - , .





, . , . , , . .





, . USE, RED, ad-hoc , ad-hoc tools - , , , , .



.





Postgres, USE, RED ? . . .



Okmeter, . , - , . , , , , . , - , USE, RED. , . , , , saturation . , , , saturation . , . , - . , , , . , , .



! ! , 4- .



4 – USE RED. , USE, durations. errors . RED , requests durations. - , USE RED . . . - . , , .



– instance.



, ? – . – , requests . .



, !



! . – , - , , . , , . .? . . ?



, . , . , . . , , , , , USE . , , , , , selects, , , requests . , requests .



, , , , ?



. , . , , . , . . , . . . , . - , , . . , queries . - . , .



, , Postgres . , . , .



! , instance Postgres - . , ? , BD .



. – . , , , , , . , , - . , . .



الطريقة الثانية التي نكافح بها هي التحسين. نحن نحسن ما نقوم به. يقوم Okmeter بشكل فعال بتقديم طلبات لهذه المناظر بانتظام ، ولكن نادرًا جدًا ، مرة واحدة في الدقيقة.



هذا ليس الوقت الحقيقي؟



إنه سؤال صعب ، ما هو الوقت الحقيقي. دعونا نناقش هذا بشكل منفصل. لكن العبء مقيد بعدد الطلبات التي تقدمها. هذه الطلبات ليست ثقيلة جدا على الإطلاق. هناك العشرات منهم. وحتى إذا كنت تقوم بها في وقت حقيقي أكثر من مرة في الدقيقة ، فإن هذا العبء لا يزال محدودًا للغاية. فيما يلي مثال على عدد الاستعلامات التي يتم إرسالها إلى قاعدة البيانات. هناك عدة آلاف منهم. وفقًا لذلك ، حتى لو تم استطلاع هذه العشرات مرة واحدة في الثانية ، فإنها لا تزال جزءًا صغيرًا.



حسنًا ، شكرًا!




All Articles