Xin chào anh! Em đọc qua loạt bài về PostgreSQL của anh em học được rất nhiều, em cám ơn rất nhiều về những chia sẻ ạ. Em hiện có đang quản trị 1 server DB PostgreSQL nhưng đang gặp phải vấn đề về CPU hệ thống đang khá cao tầm 30-50% CPU lúc cao điểm. Do DB trước đó chưa dùng đến index, giờ em đã sử dụng tạo index ở những table em nắm chắc rồi thì tải giảm xuống cũng khá nhiều rồi còn tầm 15-30% nhưng em muốn cải thiện thêm nữa, thì làm sao để có thể ghi log hay theo dõi được các query sử dụng CPU cao vậy anh, theo dõi process thì không kịp lấy PID để xem query chạy là gì thì nó mất tiêu rồi. Xin anh chỉ giúp em với ạ
Hi b, thường quá trình read/write data không ảnh hưởng nhiều đến CPU mà chủ yếu là I/O. Việc tăng CPU ở đây có 3 khả năng, 1 là query loằng ngoằng nên việc lên plan sẽ tốn CPU, 2 là vđề query parallel execution trên nhiều processor khác nhau, 3 là do có locking.
Bạn có thể thử query này SELECT * FROM pg_stat_activity; để check. Trong đó có khá nhiều thông số có ích như query statement, time, PID...
Ngoài ra nếu log long time query thì có thể thực hiện ALTER DATABASE test SET log_min_duration_statement = 5000;, đơn vị là ms. Nó sẽ log ra những query có execution time >= 5000.
@datbv Dạ cám ơn anh. Em có Explain đánh giá trước và sau khi dùng index cost giảm khá nhiều nên 1 phần là em chưa dùng tốt index. Ở vấn đề 2, dạ đúng là có các query parallel execution trên nhiều processor. Nhưng em chưa hiểu lắm, mong anh nói rõ hơn chổ này chút ạ, do query em chưa tốt nên postgres mới cần xử lý parallel trên nhiều worker để xử lý cho querry đó. Và càng nhiều querry như thế nên tải CPU server mới cao như thế phải không ạ?.
@datbv Việc theo dõi qua pg_stat_activity, em chỉ áp dụng được khi hệ thống đang có vấn đề lock, số lượng transaction treo lớn. Còn trong cần tìm query dẫn đến CPU cao em chưa hiểu để áp dụng được ạ. Em có đặt log duration query với 1000ms và kèm theo auto_explain rồi ạ, nhưng k có nhiều ạ.
@mtruyenvl yep đúng như bạn nói. Mình là dev nên theo kinh nghiệm và lượng kiến thức mình có chỉ dừng lại ở mức này. Bạn có thể tham khảo thêm các DBA xem thế nào.
CPU cao chưa hẳn đã là xấu, vì như vậy là tận dụng được hết resource đang có. Bạn để postgres trên server riêng hay chung server với các application khác? Nếu CPU stress > 90% trong thời gian dài mới cần lo. Còn như bạn nói chỉ ~ 50% khi peak thì không có gì phải lo, nó đang tận dụng đc tối đa resource. Đấy là ý kiến cá nhân của mình.
Hello anh,
Trong bài viết JSK8-17 a chia sẻ về OCP JP 11. Anh có thể chia sẻ thêm về tài liệu cũng như kinh nghiệm của a lúc thi cert này được không ạ? Em có xin connect trên Linkedin nhé
Chào anh!
Thấy anh cũng có nhiều bài viết hay chia sẻ về Java.
Bên em muốn liên hệ hợp tác cùng anh tham gia dự án đào tạo về Java (parttime) và chia sẻ các bài viết. Nếu anh quan tâm, anh có thể cho em xin thông tin email để em tiện liên hệ ạ. Hoặc anh có thể gửi thông tin qua mail: manpham@techmaster.vn hoặc zalo: 0963023185 để em tiện liên hệ với ạ. Em cảm ơn!
@datbv à dạ vâng ạ, rất vui được kết nối với anh. Bên em đang cần bổ sung thêm các giảng viên cộng tác ạ, nếu anh quan tâm thêm về mảng này thì có thể cho Techmaster có cơ hội được làm việc cùng anh.
nhưng mình có thử bật tắt open-in-view mà không giải quyết dc vấn đề,
thực ra là mình test thử local, việc bật tắt open-in-view những vẫn dùng LAZY load được, bạn có thể support giúp mình được không? cho mình cách liên lạc để tiện trao đổi được không bạn, mình thật sự cần giúp đỡ. cảm ơn b.
Bác có viết bài trên blog nào không? Em muốn theo dõi thêm.
Mình hiện tại viết trên blog này thôi kiếm fame trước đã
Xin chào anh! Em đọc qua loạt bài về PostgreSQL của anh em học được rất nhiều, em cám ơn rất nhiều về những chia sẻ ạ. Em hiện có đang quản trị 1 server DB PostgreSQL nhưng đang gặp phải vấn đề về CPU hệ thống đang khá cao tầm 30-50% CPU lúc cao điểm. Do DB trước đó chưa dùng đến index, giờ em đã sử dụng tạo index ở những table em nắm chắc rồi thì tải giảm xuống cũng khá nhiều rồi còn tầm 15-30% nhưng em muốn cải thiện thêm nữa, thì làm sao để có thể ghi log hay theo dõi được các query sử dụng CPU cao vậy anh, theo dõi process thì không kịp lấy PID để xem query chạy là gì thì nó mất tiêu rồi. Xin anh chỉ giúp em với ạ
Hi b, thường quá trình read/write data không ảnh hưởng nhiều đến CPU mà chủ yếu là I/O. Việc tăng CPU ở đây có 3 khả năng, 1 là query loằng ngoằng nên việc lên plan sẽ tốn CPU, 2 là vđề query parallel execution trên nhiều processor khác nhau, 3 là do có locking.
Bạn có thể thử query này
SELECT * FROM pg_stat_activity;
để check. Trong đó có khá nhiều thông số có ích như query statement, time, PID...Ngoài ra nếu log long time query thì có thể thực hiện
ALTER DATABASE test SET log_min_duration_statement = 5000;
, đơn vị là ms. Nó sẽ log ra những query có execution time >= 5000.Hy vọng phần nào trả lời được câu hỏi của bạn.
@datbv Dạ cám ơn anh. Em có Explain đánh giá trước và sau khi dùng index cost giảm khá nhiều nên 1 phần là em chưa dùng tốt index. Ở vấn đề 2, dạ đúng là có các query parallel execution trên nhiều processor. Nhưng em chưa hiểu lắm, mong anh nói rõ hơn chổ này chút ạ, do query em chưa tốt nên postgres mới cần xử lý parallel trên nhiều worker để xử lý cho querry đó. Và càng nhiều querry như thế nên tải CPU server mới cao như thế phải không ạ?.
@datbv Việc theo dõi qua pg_stat_activity, em chỉ áp dụng được khi hệ thống đang có vấn đề lock, số lượng transaction treo lớn. Còn trong cần tìm query dẫn đến CPU cao em chưa hiểu để áp dụng được ạ. Em có đặt log duration query với 1000ms và kèm theo auto_explain rồi ạ, nhưng k có nhiều ạ.
@mtruyenvl yep đúng như bạn nói. Mình là dev nên theo kinh nghiệm và lượng kiến thức mình có chỉ dừng lại ở mức này. Bạn có thể tham khảo thêm các DBA xem thế nào.
CPU cao chưa hẳn đã là xấu, vì như vậy là tận dụng được hết resource đang có. Bạn để postgres trên server riêng hay chung server với các application khác? Nếu CPU stress > 90% trong thời gian dài mới cần lo. Còn như bạn nói chỉ ~ 50% khi peak thì không có gì phải lo, nó đang tận dụng đc tối đa resource. Đấy là ý kiến cá nhân của mình.
@datbv Dạ vâng cám ơn anh nhiều ạ.
upvote chưa :v gửi a fb của e nhé a add
@datbv kết bạn với em đi anh.
sao anh không tạo thành 1 blog chia sẻ nhiều hơn, mà làm sao để thành trùm được anh, chia sẻ mánh khóe đi anh.
A k phải trùm nên a k biết gì đâu em ơi :-s
@datbv anh làm java à.
@tranphong19951999 đúng r em
@datbv lương trên 5k chưa anh.Nói để cho em có động lực cày anh.
@tranphong19951999 5k/năm thì chắc là được em ơi
Hello anh, Trong bài viết JSK8-17 a chia sẻ về OCP JP 11. Anh có thể chia sẻ thêm về tài liệu cũng như kinh nghiệm của a lúc thi cert này được không ạ? Em có xin connect trên Linkedin nhé
Chào anh! Thấy anh cũng có nhiều bài viết hay chia sẻ về Java. Bên em muốn liên hệ hợp tác cùng anh tham gia dự án đào tạo về Java (parttime) và chia sẻ các bài viết. Nếu anh quan tâm, anh có thể cho em xin thông tin email để em tiện liên hệ ạ. Hoặc anh có thể gửi thông tin qua mail: manpham@techmaster.vn hoặc zalo: 0963023185 để em tiện liên hệ với ạ. Em cảm ơn!
hi Mẫn, em bên Techmaster à
@datbv Dạ đúng rồi anh ạ. Anh có biết đến bên em ạ?
@manpt ừ a có làm việc với a Cường mấy lần rồi
@datbv à dạ vâng ạ, rất vui được kết nối với anh. Bên em đang cần bổ sung thêm các giảng viên cộng tác ạ, nếu anh quan tâm thêm về mảng này thì có thể cho Techmaster có cơ hội được làm việc cùng anh.
viết về cách thiết kế hệ thống chịu tải cao đi bác.
hi em, mail a đây nhé: datbv.other@gmail.com
Hi anh, Anh cho em xin tips ôn OCP 11 với ạ
Chào anh, anh cho em xin tips thi OCP 11 được không ạ. Mong được anh giúp đỡ.
Anh từng làm tại Fortna đúng không ạ?
Em đọc series về Apache Kafka thấy bác chia sẻ chi tiết, đọc cuốn quá, bác có dùng LinkedIn hay Fb gì không, nếu có thì cho em xin connect với ạ 🤩
Hi b, mình gặp lỗi tương tự như trong bài post này https://viblo.asia/p/hikari-connection-is-not-available-request-timeout-after-30000ms-PAoJeZbDL1j
nhưng mình có thử bật tắt open-in-view mà không giải quyết dc vấn đề, thực ra là mình test thử local, việc bật tắt open-in-view những vẫn dùng LAZY load được, bạn có thể support giúp mình được không? cho mình cách liên lạc để tiện trao đổi được không bạn, mình thật sự cần giúp đỡ. cảm ơn b.