Database

Pgbench quraşdırılması

 

Pgbench bizə PostgreSQL verilənlər bazasında benchmark testlər keçirməyə imkan verən PostreSQL alətidir. Bu, verilənlər bazası trafikini simulyasiya edərək stress testini həyata keçirməyə imkan verir.

Bu benchmark testləri ilə müxtəlif ssenariləri əvvəlcədən sınaqdan keçirmək və müvafiq konfiqurasiya dəyişiklikləri və ya resurs artımları etmək mümkün olur. Bu səbəbdən pgbench vacib və faydalı bir vasitədir. Pgbench ilə testlər cari serverdə verilənlər bazasında, həmçinin pgpool vasitəsilə əldə edilən node üzərində aparıla bilər. Məqaləmizin qalan hissəsində iki nümunəni araşdırdıq.

Məlumat

192.168.1.35 — pgpool = Bu serverdə pgpool və boş postgresql verilənlər bazası var.

192.168.1.40 və 192.168.1.41 =Əlaqələrin connection pooling serverlərdə aparılır.

192.168.1.40 =node1 = Əsas verilənlər bazasının quraşdırıldığı Node1 server

192.168.1.40= node 2 = replika verilənlər bazasının quraşdırıldığı server 2

Pgbench quraşdırılması

192.168.1.39 — pgpool serverində:

PostgreSQL contrib paketi ilə pgbench binaries serverdə quraşdırılır.

PostreSQL xidmətinin serverdə işlədiyinə əmin olmaq üçün, psql ilə verilənlər bazasına qoşulacaq və pgbench testlərini keçirəcəyimiz nümunə verilənlər bazamızı yaradacağıq.

Example bazamızı yaratdıq. İndi gəlin tez bir zamanda bu verilənlər bazasını pgbench ilə sınaq üçün hazırlayaq. Bu əmrlə pgbench nümunə verilənlər bazasında nümunə cədvəlləri yaradacaq və onlara məlumat yazacaq.

1. default olaraq, pgbench yuxarıda göstərilən sətirlərin sayı ilə yuxarıdakı cədvəlləri yaradacaqdır. Bu, sadə 16 MB verilənlər bazası yaradır.

2. Performans dəyişikliklərini ölçmək üçün pgbench istifadə edəcəyimiz üçün testimizi qurmaq üçün 16 MB-lıq kiçik bir verilənlər bazası kifayət etməyəcək. Burada -s (miqyaslama) seçimi işə düşür.

3. -s seçimi hər cədvələ daxil edilmiş sətirlərin sayını çoxaltmaq üçün istifadə olunur. Yuxarıdakı əmrdə biz 50-nin “miqyaslı” seçimini daxil etdik. Bu, pgbench-ə standart ölçüdən 50 dəfə çox verilənlər bazası yaratmağı əmr etdi.

4. Bu o deməkdir ki, bizim pgbench_accounts cədvəlimizdə indi 5.000.000 qeyd var. Bu, həmçinin verilənlər bazamızın ölçüsünün təxminən 800MB (50 x 16MB) olması deməkdir. yoxlayaq.

Testlərimizi şaxələndirə bilərik. Məsələn, aşağıdakı əmrlə nümunə verilənlər bazasında pgbench-i çağırarkən biz komandaya bir çox variant əlavə edə bilərik. Birincisi, qoşulmaq üçün müştərilərin sayını müəyyən etmək üçün istifadə olunur.

-c (cilent). Bu test üçün 10 müştəri ilə test etmək üçün pgbench-ə 10 yazdıq.

Beləliklə, pgbench testlər işləyərkən verilənlər bazasında 10 fərqli seans açır.

Növbəti seçim sayı -j (iplər). Bu, pgbench üçün işləyən mövzuların sayını təyin etmək üçün istifadə olunur. Aşağıdakı əmrdə 2 dəyərini təyin etdik. Bu, pgbench-ə test zamanı iki mövzuya başlamağı söyləyəcək.

Üçüncü seçim -t (əməliyyatlar), “başa salınacaq əməliyyatların sayı” kimi müəyyən edilir. Aşağıdakı əmrdə 10.000 dəyərini verdik. Bu o deməkdir ki, hər bir müştəri sessiyası 10.000 əməliyyat həyata keçirəcək.

Beləliklə, bu əmrlə biz 10 müştəridən cəmi 100.000 əməliyyatı simulyasiya edəcəyik.

192.168.1.35-də Pgbench ilə Pgpool Yükləmə Testi — pgpool serverdə

Pgpool standart olaraq 9999 portundan istifadə edir. Bu portu və onun gedəcəyi db-ni və db-də istifadə edəcəyi istifadəçi məlumatını təqdim etdikdə testləri həyata keçirə biləcəyik. Bundan əlavə, bu sınaqlar nəticəsində biz pgpool-un stress altında dayanıqlığını yoxlayacağıq və çox sayda əlaqənin yaratdığı pgpool hansı problemini həll edəcəyik. Testlərimizi aşağıdakı komanda ilə pgpool vasitəsilə həyata keçirək. Komandada -U monitor ilə istifadə ediləcək istifadəçini təyin etdik. Ondan pgpool portuna -p 9999 ilə qoşulmasını, onun -i ilə qoşulduğu verilənlər bazasında lazımi cədvəlləri yaratmasını (initialize) və -s 100 monitoru ilə ‘monitor’ verilənlər bazasına qoşulmasını və 100-ə miqyaslamasını istədik. .

-s 100 verdik, təxmini db ölçüsü 1.6 GB (100x16MB) olacaq

Cədvəlləri yaratdıq və əlavələri düzəltdik və heç bir problemimiz olmadı. İndi gəlin db seansları ilə test edək. Bu komanda ilə pgpool vasitəsilə monitor verilənlər bazasına keçib 10 seans və 2 iplə 1000 əməliyyatı simulyasiya edəcəyik.

Aşağıdakı əmrlə 150 ​​saniyə ərzində davamlı olaraq 20 seans monitor db seçiləcək və hər bir əməliyyat üçün yeni əlaqə təmin ediləcək. Şəkillərdə göstərildiyi kimi əmri işə salmadan əvvəl və bir neçə saniyə sonra sayları seçin.

Bu əmrdəki parametrlərin mənaları aşağıdakı kimi verilmişdir (bu xüsusiyyətlərə pgbench –help ilə baxmaq olar

-n : sınaqdan əvvəl vakuum işlətməyin,

-S : yalnız seçim əməliyyatı həyata keçirin,

-p: port,

-c : müştərilərin sayı,

-C: hər əməliyyat üçün yeni bir əlaqə açın,

-T: test neçə saniyə davam edəcək.

Gəlin 4 saniyə ərzində tamamlamaq üçün eyni testi yerinə yetirək və nəticəni görək Test tamamlandıqda, pgbench aşağıdakı kimi bir nəticə çıxaracaq.

Bu əmri 32 və ya daha çox müştəriyə sahib olmaq üçün yenilədiyimiz zaman pgpool standart konfiqurasiyada kifayət qədər uşaq prosesləri yarada bilmir və dayanır. Bunun üçün num_init_children adlı pgpool parametrini artırmalıyıq (standart dəyər 32). Lakin biz bu parametri artırdığımız zaman əslində db-yə qoşulmaların sayını artırırıq. Bu səbəbdən, bu dəyəri artırarkən diqqətli olmalısınız, əgər bu dəyər çox artarsa, db-yə qəbul edə biləcəyindən daha çox əlaqə sorğusu göndərilə bilər ki, bu da db-nin dayanmasına səbəb ola bilər.

Related Articles

Bir cavab yazın

Sizin e-poçt ünvanınız dərc edilməyəcəkdir. Gərəkli sahələr * ilə işarələnmişdir

Back to top button