Wartość domyślna parametru max_wal_senders serwera ustawiona podczas aprowizacji wystąpienia serwera elastycznego usługi Azure Database for PostgreSQL nigdy nie może być zmniejszona poniżej 2 (if HA is enabled) + number of read replicas provisioned + slots_used_in_logical_replication.
Biorąc pod uwagę konieczność zwiększenia max_wal_senders do znacznie wyższej wartości, aby móc poradzić sobie z replikacją logiczną znacznej liczby tabel, należy pamiętać o następujących ważnych kwestiach:
Logicznie replikowanie dużej liczby tabel nie musi wymagać dużej liczby nadawców WAL.
Jedynym powodem, dla którego potrzebujesz oddzielnego nadawcy WAL dla tabeli lub grupy tabel, jest potrzeba oddzielnych subskrypcji dla każdej z tych tabel lub grup.
Niezależnie od liczby nadawców WAL, które są używane do replikacji fizycznej i logicznej, wszystkie stają się aktywne jednocześnie, za każdym razem, gdy dowolne zaplecze zapisuje coś w dzienniku z wyprzedzeniem zapisu. W takim przypadku nadawcy WAL przypisani do replikacji logicznej są wznawiani do:
Zdekoduj wszystkie nowe rekordy w pliku WAL,
Odfiltruj rekordy dzienników, których nie interesują,
Replikuj dane, które są odpowiednie dla każdego z nich.
Nadawcy WAL są podobni do połączeń w tym sensie, że jeśli są bezczynne, nie ma znaczenia, ile istnieje. Jeśli jednak są aktywne, będą one po prostu konkurować o te same zasoby, a wydajność może skończyć się strasznie źle. Jest to szczególnie istotne w przypadku nadawców z replikacją logiczną, ponieważ dekodowanie logiczne jest raczej kosztowne dla procesora CPU. Każdy proces roboczy musi zdekodować cały plik WAL, nawet jeśli replikuje tylko operacje wpływające na jedną tabelę i reprezentuje niewielki procent wszystkich danych w dzienniku zapisu z wyprzedzeniem. W przypadku replikacji fizycznej nie jest tak ważne, ponieważ nadawcy WAL nie zużywają procesora CPU tak intensywnie i mają tendencję do ograniczenia przepustowości sieci.
W związku z tym ogólnie lepiej nie mieć wielu nadawców WAL niż rdzenie wirtualne.
Dobrym rozwiązaniem jest dodanie miejsca dla kilku dodatkowych nadawców WAL w celu uwzględnienia przyszłych wzrostów lub tymczasowych skoków połączeń replikacji. Poniższe dwa przykłady mogą pomóc zilustrować go lepiej.
W przypadku serwera z 8 rdzeniami wirtualnymi, wyłączoną wysoką dostępnością, 2 replikami do odczytu i 3 miejscami replikacji logicznej można skonfigurować max_wal_senders jako sumę miejsc fizycznych dla wysokiej dostępności (0) + miejsc fizycznych dla replik do odczytu (2) + gniazd logicznych (3) + dodatkowe dla przyszłego wzrostu, biorąc pod uwagę dostępne rdzenie wirtualne (1) = 6.
W przypadku serwera z 16 rdzeniami wirtualnymi włączono wysoką dostępność, 4 repliki do odczytu i 5 gniazd replikacji logicznej, możesz skonfigurować max_wal_senders jako sumę miejsc fizycznych dla wysokiej dostępności (2) + miejsc fizycznych dla replik do odczytu (4) + gniazda logiczne (5) + dodatkowe dla przyszłego wzrostu, biorąc pod uwagę dostępne rdzenie wirtualne (2) = 13.
Jeśli nadal uważasz, że maksymalna dozwolona wartość dla tego parametru jest zbyt niska dla Twoich potrzeb, skontaktuj się z nami, opisz szczegółowo twój scenariusz i wyjaśnij, co należy wziąć pod uwagę, że byłaby to minimalna akceptowalna wartość, której potrzebujesz, aby scenariusz działał prawidłowo.
Wartość domyślna parametru max_wal_senders serwera ustawiona podczas aprowizacji wystąpienia serwera elastycznego usługi Azure Database for PostgreSQL nigdy nie może być zmniejszona poniżej 2 (if HA is enabled) + number of read replicas provisioned + slots_used_in_logical_replication.
Biorąc pod uwagę konieczność zwiększenia max_wal_senders do znacznie wyższej wartości, aby móc poradzić sobie z replikacją logiczną znacznej liczby tabel, należy pamiętać o następujących ważnych kwestiach:
Logicznie replikowanie dużej liczby tabel nie musi wymagać dużej liczby nadawców WAL.
Jedynym powodem, dla którego potrzebujesz oddzielnego nadawcy WAL dla tabeli lub grupy tabel, jest potrzeba oddzielnych subskrypcji dla każdej z tych tabel lub grup.
Niezależnie od liczby nadawców WAL, które są używane do replikacji fizycznej i logicznej, wszystkie stają się aktywne jednocześnie, za każdym razem, gdy dowolne zaplecze zapisuje coś w dzienniku z wyprzedzeniem zapisu. W takim przypadku nadawcy WAL przypisani do replikacji logicznej są wznawiani do:
Zdekoduj wszystkie nowe rekordy w pliku WAL,
Odfiltruj rekordy dzienników, których nie interesują,
Replikuj dane, które są odpowiednie dla każdego z nich.
Nadawcy WAL są podobni do połączeń w tym sensie, że jeśli są bezczynne, nie ma znaczenia, ile istnieje. Jeśli jednak są aktywne, będą one po prostu konkurować o te same zasoby, a wydajność może skończyć się strasznie źle. Jest to szczególnie istotne w przypadku nadawców z replikacją logiczną, ponieważ dekodowanie logiczne jest raczej kosztowne dla procesora CPU. Każdy proces roboczy musi zdekodować cały plik WAL, nawet jeśli replikuje tylko operacje wpływające na jedną tabelę i reprezentuje niewielki procent wszystkich danych w dzienniku zapisu z wyprzedzeniem. W przypadku replikacji fizycznej nie jest tak ważne, ponieważ nadawcy WAL nie zużywają procesora CPU tak intensywnie i mają tendencję do ograniczenia przepustowości sieci.
W związku z tym ogólnie lepiej nie mieć wielu nadawców WAL niż rdzenie wirtualne.
Dobrym rozwiązaniem jest dodanie miejsca dla kilku dodatkowych nadawców WAL w celu uwzględnienia przyszłych wzrostów lub tymczasowych skoków połączeń replikacji. Poniższe dwa przykłady mogą pomóc zilustrować go lepiej.
W przypadku serwera z 8 rdzeniami wirtualnymi, wyłączoną wysoką dostępnością, 2 replikami do odczytu i 3 miejscami replikacji logicznej można skonfigurować max_wal_senders jako sumę miejsc fizycznych dla wysokiej dostępności (0) + miejsc fizycznych dla replik do odczytu (2) + gniazd logicznych (3) + dodatkowe dla przyszłego wzrostu, biorąc pod uwagę dostępne rdzenie wirtualne (1) = 6.
W przypadku serwera z 16 rdzeniami wirtualnymi włączono wysoką dostępność, 4 repliki do odczytu i 5 gniazd replikacji logicznej, możesz skonfigurować max_wal_senders jako sumę miejsc fizycznych dla wysokiej dostępności (2) + miejsc fizycznych dla replik do odczytu (4) + gniazda logiczne (5) + dodatkowe dla przyszłego wzrostu, biorąc pod uwagę dostępne rdzenie wirtualne (2) = 13.
Jeśli nadal uważasz, że maksymalna dozwolona wartość dla tego parametru jest zbyt niska dla Twoich potrzeb, skontaktuj się z nami, opisz szczegółowo twój scenariusz i wyjaśnij, co należy wziąć pod uwagę, że byłaby to minimalna akceptowalna wartość, której potrzebujesz, aby scenariusz działał prawidłowo.
Wartość domyślna parametru max_wal_senders serwera ustawiona podczas aprowizacji wystąpienia serwera elastycznego usługi Azure Database for PostgreSQL nigdy nie może być zmniejszona poniżej 2 (if HA is enabled) + number of read replicas provisioned + slots_used_in_logical_replication.
Biorąc pod uwagę konieczność zwiększenia max_wal_senders do znacznie wyższej wartości, aby móc poradzić sobie z replikacją logiczną znacznej liczby tabel, należy pamiętać o następujących ważnych kwestiach:
Logicznie replikowanie dużej liczby tabel nie musi wymagać dużej liczby nadawców WAL.
Jedynym powodem, dla którego potrzebujesz oddzielnego nadawcy WAL dla tabeli lub grupy tabel, jest potrzeba oddzielnych subskrypcji dla każdej z tych tabel lub grup.
Niezależnie od liczby nadawców WAL, które są używane do replikacji fizycznej i logicznej, wszystkie stają się aktywne jednocześnie, za każdym razem, gdy dowolne zaplecze zapisuje coś w dzienniku z wyprzedzeniem zapisu. W takim przypadku nadawcy WAL przypisani do replikacji logicznej są wznawiani do:
Zdekoduj wszystkie nowe rekordy w pliku WAL,
Odfiltruj rekordy dzienników, których nie interesują,
Replikuj dane, które są odpowiednie dla każdego z nich.
Nadawcy WAL są podobni do połączeń w tym sensie, że jeśli są bezczynne, nie ma znaczenia, ile istnieje. Jeśli jednak są aktywne, będą one po prostu konkurować o te same zasoby, a wydajność może skończyć się strasznie źle. Jest to szczególnie istotne w przypadku nadawców z replikacją logiczną, ponieważ dekodowanie logiczne jest raczej kosztowne dla procesora CPU. Każdy proces roboczy musi zdekodować cały plik WAL, nawet jeśli replikuje tylko operacje wpływające na jedną tabelę i reprezentuje niewielki procent wszystkich danych w dzienniku zapisu z wyprzedzeniem. W przypadku replikacji fizycznej nie jest tak ważne, ponieważ nadawcy WAL nie zużywają procesora CPU tak intensywnie i mają tendencję do ograniczenia przepustowości sieci.
W związku z tym ogólnie lepiej nie mieć wielu nadawców WAL niż rdzenie wirtualne.
Dobrym rozwiązaniem jest dodanie miejsca dla kilku dodatkowych nadawców WAL w celu uwzględnienia przyszłych wzrostów lub tymczasowych skoków połączeń replikacji. Poniższe dwa przykłady mogą pomóc zilustrować go lepiej.
W przypadku serwera z 8 rdzeniami wirtualnymi, wyłączoną wysoką dostępnością, 2 replikami do odczytu i 3 miejscami replikacji logicznej można skonfigurować max_wal_senders jako sumę miejsc fizycznych dla wysokiej dostępności (0) + miejsc fizycznych dla replik do odczytu (2) + gniazd logicznych (3) + dodatkowe dla przyszłego wzrostu, biorąc pod uwagę dostępne rdzenie wirtualne (1) = 6.
W przypadku serwera z 16 rdzeniami wirtualnymi włączono wysoką dostępność, 4 repliki do odczytu i 5 gniazd replikacji logicznej, możesz skonfigurować max_wal_senders jako sumę miejsc fizycznych dla wysokiej dostępności (2) + miejsc fizycznych dla replik do odczytu (4) + gniazda logiczne (5) + dodatkowe dla przyszłego wzrostu, biorąc pod uwagę dostępne rdzenie wirtualne (2) = 13.
Jeśli nadal uważasz, że maksymalna dozwolona wartość dla tego parametru jest zbyt niska dla Twoich potrzeb, skontaktuj się z nami, opisz szczegółowo twój scenariusz i wyjaśnij, co należy wziąć pod uwagę, że byłaby to minimalna akceptowalna wartość, której potrzebujesz, aby scenariusz działał prawidłowo.
Wartość domyślna parametru max_wal_senders serwera ustawiona podczas aprowizacji wystąpienia serwera elastycznego usługi Azure Database for PostgreSQL nigdy nie może być zmniejszona poniżej 2 (if HA is enabled) + number of read replicas provisioned + slots_used_in_logical_replication.
Biorąc pod uwagę konieczność zwiększenia max_wal_senders do znacznie wyższej wartości, aby móc poradzić sobie z replikacją logiczną znacznej liczby tabel, należy pamiętać o następujących ważnych kwestiach:
Logicznie replikowanie dużej liczby tabel nie musi wymagać dużej liczby nadawców WAL.
Jedynym powodem, dla którego potrzebujesz oddzielnego nadawcy WAL dla tabeli lub grupy tabel, jest potrzeba oddzielnych subskrypcji dla każdej z tych tabel lub grup.
Niezależnie od liczby nadawców WAL, które są używane do replikacji fizycznej i logicznej, wszystkie stają się aktywne jednocześnie, za każdym razem, gdy dowolne zaplecze zapisuje coś w dzienniku z wyprzedzeniem zapisu. W takim przypadku nadawcy WAL przypisani do replikacji logicznej są wznawiani do:
Zdekoduj wszystkie nowe rekordy w pliku WAL,
Odfiltruj rekordy dzienników, których nie interesują,
Replikuj dane, które są odpowiednie dla każdego z nich.
Nadawcy WAL są podobni do połączeń w tym sensie, że jeśli są bezczynne, nie ma znaczenia, ile istnieje. Jeśli jednak są aktywne, będą one po prostu konkurować o te same zasoby, a wydajność może skończyć się strasznie źle. Jest to szczególnie istotne w przypadku nadawców z replikacją logiczną, ponieważ dekodowanie logiczne jest raczej kosztowne dla procesora CPU. Każdy proces roboczy musi zdekodować cały plik WAL, nawet jeśli replikuje tylko operacje wpływające na jedną tabelę i reprezentuje niewielki procent wszystkich danych w dzienniku zapisu z wyprzedzeniem. W przypadku replikacji fizycznej nie jest tak ważne, ponieważ nadawcy WAL nie zużywają procesora CPU tak intensywnie i mają tendencję do ograniczenia przepustowości sieci.
W związku z tym ogólnie lepiej nie mieć wielu nadawców WAL niż rdzenie wirtualne.
Dobrym rozwiązaniem jest dodanie miejsca dla kilku dodatkowych nadawców WAL w celu uwzględnienia przyszłych wzrostów lub tymczasowych skoków połączeń replikacji. Poniższe dwa przykłady mogą pomóc zilustrować go lepiej.
W przypadku serwera z 8 rdzeniami wirtualnymi, wyłączoną wysoką dostępnością, 2 replikami do odczytu i 3 miejscami replikacji logicznej można skonfigurować max_wal_senders jako sumę miejsc fizycznych dla wysokiej dostępności (0) + miejsc fizycznych dla replik do odczytu (2) + gniazd logicznych (3) + dodatkowe dla przyszłego wzrostu, biorąc pod uwagę dostępne rdzenie wirtualne (1) = 6.
W przypadku serwera z 16 rdzeniami wirtualnymi włączono wysoką dostępność, 4 repliki do odczytu i 5 gniazd replikacji logicznej, możesz skonfigurować max_wal_senders jako sumę miejsc fizycznych dla wysokiej dostępności (2) + miejsc fizycznych dla replik do odczytu (4) + gniazda logiczne (5) + dodatkowe dla przyszłego wzrostu, biorąc pod uwagę dostępne rdzenie wirtualne (2) = 13.
Jeśli nadal uważasz, że maksymalna dozwolona wartość dla tego parametru jest zbyt niska dla Twoich potrzeb, skontaktuj się z nami, opisz szczegółowo twój scenariusz i wyjaśnij, co należy wziąć pod uwagę, że byłaby to minimalna akceptowalna wartość, której potrzebujesz, aby scenariusz działał prawidłowo.
Wartość domyślna parametru max_wal_senders serwera ustawiona podczas aprowizacji wystąpienia serwera elastycznego usługi Azure Database for PostgreSQL nigdy nie może być zmniejszona poniżej 2 (if HA is enabled) + number of read replicas provisioned + slots_used_in_logical_replication.
Biorąc pod uwagę konieczność zwiększenia max_wal_senders do znacznie wyższej wartości, aby móc poradzić sobie z replikacją logiczną znacznej liczby tabel, należy pamiętać o następujących ważnych kwestiach:
Logicznie replikowanie dużej liczby tabel nie musi wymagać dużej liczby nadawców WAL.
Jedynym powodem, dla którego potrzebujesz oddzielnego nadawcy WAL dla tabeli lub grupy tabel, jest potrzeba oddzielnych subskrypcji dla każdej z tych tabel lub grup.
Niezależnie od liczby nadawców WAL, które są używane do replikacji fizycznej i logicznej, wszystkie stają się aktywne jednocześnie, za każdym razem, gdy dowolne zaplecze zapisuje coś w dzienniku z wyprzedzeniem zapisu. W takim przypadku nadawcy WAL przypisani do replikacji logicznej są wznawiani do:
Zdekoduj wszystkie nowe rekordy w pliku WAL,
Odfiltruj rekordy dzienników, których nie interesują,
Replikuj dane, które są odpowiednie dla każdego z nich.
Nadawcy WAL są podobni do połączeń w tym sensie, że jeśli są bezczynne, nie ma znaczenia, ile istnieje. Jeśli jednak są aktywne, będą one po prostu konkurować o te same zasoby, a wydajność może skończyć się strasznie źle. Jest to szczególnie istotne w przypadku nadawców z replikacją logiczną, ponieważ dekodowanie logiczne jest raczej kosztowne dla procesora CPU. Każdy proces roboczy musi zdekodować cały plik WAL, nawet jeśli replikuje tylko operacje wpływające na jedną tabelę i reprezentuje niewielki procent wszystkich danych w dzienniku zapisu z wyprzedzeniem. W przypadku replikacji fizycznej nie jest tak ważne, ponieważ nadawcy WAL nie zużywają procesora CPU tak intensywnie i mają tendencję do ograniczenia przepustowości sieci.
W związku z tym ogólnie lepiej nie mieć wielu nadawców WAL niż rdzenie wirtualne.
Dobrym rozwiązaniem jest dodanie miejsca dla kilku dodatkowych nadawców WAL w celu uwzględnienia przyszłych wzrostów lub tymczasowych skoków połączeń replikacji. Poniższe dwa przykłady mogą pomóc zilustrować go lepiej.
W przypadku serwera z 8 rdzeniami wirtualnymi, wyłączoną wysoką dostępnością, 2 replikami do odczytu i 3 miejscami replikacji logicznej można skonfigurować max_wal_senders jako sumę miejsc fizycznych dla wysokiej dostępności (0) + miejsc fizycznych dla replik do odczytu (2) + gniazd logicznych (3) + dodatkowe dla przyszłego wzrostu, biorąc pod uwagę dostępne rdzenie wirtualne (1) = 6.
W przypadku serwera z 16 rdzeniami wirtualnymi włączono wysoką dostępność, 4 repliki do odczytu i 5 gniazd replikacji logicznej, możesz skonfigurować max_wal_senders jako sumę miejsc fizycznych dla wysokiej dostępności (2) + miejsc fizycznych dla replik do odczytu (4) + gniazda logiczne (5) + dodatkowe dla przyszłego wzrostu, biorąc pod uwagę dostępne rdzenie wirtualne (2) = 13.
Jeśli nadal uważasz, że maksymalna dozwolona wartość dla tego parametru jest zbyt niska dla Twoich potrzeb, skontaktuj się z nami, opisz szczegółowo twój scenariusz i wyjaśnij, co należy wziąć pod uwagę, że byłaby to minimalna akceptowalna wartość, której potrzebujesz, aby scenariusz działał prawidłowo.
Wartość domyślna parametru max_wal_senders serwera ustawiona podczas aprowizacji wystąpienia serwera elastycznego usługi Azure Database for PostgreSQL nigdy nie może być zmniejszona poniżej 2 (if HA is enabled) + number of read replicas provisioned + slots_used_in_logical_replication.
Biorąc pod uwagę konieczność zwiększenia max_wal_senders do znacznie wyższej wartości, aby móc poradzić sobie z replikacją logiczną znacznej liczby tabel, należy pamiętać o następujących ważnych kwestiach:
Logicznie replikowanie dużej liczby tabel nie musi wymagać dużej liczby nadawców WAL.
Jedynym powodem, dla którego potrzebujesz oddzielnego nadawcy WAL dla tabeli lub grupy tabel, jest potrzeba oddzielnych subskrypcji dla każdej z tych tabel lub grup.
Niezależnie od liczby nadawców WAL, które są używane do replikacji fizycznej i logicznej, wszystkie stają się aktywne jednocześnie, za każdym razem, gdy dowolne zaplecze zapisuje coś w dzienniku z wyprzedzeniem zapisu. W takim przypadku nadawcy WAL przypisani do replikacji logicznej są wznawiani do:
Zdekoduj wszystkie nowe rekordy w pliku WAL,
Odfiltruj rekordy dzienników, których nie interesują,
Replikuj dane, które są odpowiednie dla każdego z nich.
Nadawcy WAL są podobni do połączeń w tym sensie, że jeśli są bezczynne, nie ma znaczenia, ile istnieje. Jeśli jednak są aktywne, będą one po prostu konkurować o te same zasoby, a wydajność może skończyć się strasznie źle. Jest to szczególnie istotne w przypadku nadawców z replikacją logiczną, ponieważ dekodowanie logiczne jest raczej kosztowne dla procesora CPU. Każdy proces roboczy musi zdekodować cały plik WAL, nawet jeśli replikuje tylko operacje wpływające na jedną tabelę i reprezentuje niewielki procent wszystkich danych w dzienniku zapisu z wyprzedzeniem. W przypadku replikacji fizycznej nie jest tak ważne, ponieważ nadawcy WAL nie zużywają procesora CPU tak intensywnie i mają tendencję do ograniczenia przepustowości sieci.
W związku z tym ogólnie lepiej nie mieć wielu nadawców WAL niż rdzenie wirtualne.
Dobrym rozwiązaniem jest dodanie miejsca dla kilku dodatkowych nadawców WAL w celu uwzględnienia przyszłych wzrostów lub tymczasowych skoków połączeń replikacji. Poniższe dwa przykłady mogą pomóc zilustrować go lepiej.
W przypadku serwera z 8 rdzeniami wirtualnymi, wyłączoną wysoką dostępnością, 2 replikami do odczytu i 3 miejscami replikacji logicznej można skonfigurować max_wal_senders jako sumę miejsc fizycznych dla wysokiej dostępności (0) + miejsc fizycznych dla replik do odczytu (2) + gniazd logicznych (3) + dodatkowe dla przyszłego wzrostu, biorąc pod uwagę dostępne rdzenie wirtualne (1) = 6.
W przypadku serwera z 16 rdzeniami wirtualnymi włączono wysoką dostępność, 4 repliki do odczytu i 5 gniazd replikacji logicznej, możesz skonfigurować max_wal_senders jako sumę miejsc fizycznych dla wysokiej dostępności (2) + miejsc fizycznych dla replik do odczytu (4) + gniazda logiczne (5) + dodatkowe dla przyszłego wzrostu, biorąc pod uwagę dostępne rdzenie wirtualne (2) = 13.
Jeśli nadal uważasz, że maksymalna dozwolona wartość dla tego parametru jest zbyt niska dla Twoich potrzeb, skontaktuj się z nami, opisz szczegółowo twój scenariusz i wyjaśnij, co należy wziąć pod uwagę, że byłaby to minimalna akceptowalna wartość, której potrzebujesz, aby scenariusz działał prawidłowo.
Wartość domyślna parametru max_wal_senders serwera ustawiona podczas aprowizacji wystąpienia serwera elastycznego usługi Azure Database for PostgreSQL nigdy nie może być zmniejszona poniżej 2 (if HA is enabled) + number of read replicas provisioned + slots_used_in_logical_replication.
Biorąc pod uwagę konieczność zwiększenia max_wal_senders do znacznie wyższej wartości, aby móc poradzić sobie z replikacją logiczną znacznej liczby tabel, należy pamiętać o następujących ważnych kwestiach:
Logicznie replikowanie dużej liczby tabel nie musi wymagać dużej liczby nadawców WAL.
Jedynym powodem, dla którego potrzebujesz oddzielnego nadawcy WAL dla tabeli lub grupy tabel, jest potrzeba oddzielnych subskrypcji dla każdej z tych tabel lub grup.
Niezależnie od liczby nadawców WAL, które są używane do replikacji fizycznej i logicznej, wszystkie stają się aktywne jednocześnie, za każdym razem, gdy dowolne zaplecze zapisuje coś w dzienniku z wyprzedzeniem zapisu. W takim przypadku nadawcy WAL przypisani do replikacji logicznej są wznawiani do:
Zdekoduj wszystkie nowe rekordy w pliku WAL,
Odfiltruj rekordy dzienników, których nie interesują,
Replikuj dane, które są odpowiednie dla każdego z nich.
Nadawcy WAL są podobni do połączeń w tym sensie, że jeśli są bezczynne, nie ma znaczenia, ile istnieje. Jeśli jednak są aktywne, będą one po prostu konkurować o te same zasoby, a wydajność może skończyć się strasznie źle. Jest to szczególnie istotne w przypadku nadawców z replikacją logiczną, ponieważ dekodowanie logiczne jest raczej kosztowne dla procesora CPU. Każdy proces roboczy musi zdekodować cały plik WAL, nawet jeśli replikuje tylko operacje wpływające na jedną tabelę i reprezentuje niewielki procent wszystkich danych w dzienniku zapisu z wyprzedzeniem. W przypadku replikacji fizycznej nie jest tak ważne, ponieważ nadawcy WAL nie zużywają procesora CPU tak intensywnie i mają tendencję do ograniczenia przepustowości sieci.
W związku z tym ogólnie lepiej nie mieć wielu nadawców WAL niż rdzenie wirtualne.
Dobrym rozwiązaniem jest dodanie miejsca dla kilku dodatkowych nadawców WAL w celu uwzględnienia przyszłych wzrostów lub tymczasowych skoków połączeń replikacji. Poniższe dwa przykłady mogą pomóc zilustrować go lepiej.
W przypadku serwera z 8 rdzeniami wirtualnymi, wyłączoną wysoką dostępnością, 2 replikami do odczytu i 3 miejscami replikacji logicznej można skonfigurować max_wal_senders jako sumę miejsc fizycznych dla wysokiej dostępności (0) + miejsc fizycznych dla replik do odczytu (2) + gniazd logicznych (3) + dodatkowe dla przyszłego wzrostu, biorąc pod uwagę dostępne rdzenie wirtualne (1) = 6.
W przypadku serwera z 16 rdzeniami wirtualnymi włączono wysoką dostępność, 4 repliki do odczytu i 5 gniazd replikacji logicznej, możesz skonfigurować max_wal_senders jako sumę miejsc fizycznych dla wysokiej dostępności (2) + miejsc fizycznych dla replik do odczytu (4) + gniazda logiczne (5) + dodatkowe dla przyszłego wzrostu, biorąc pod uwagę dostępne rdzenie wirtualne (2) = 13.
Jeśli nadal uważasz, że maksymalna dozwolona wartość dla tego parametru jest zbyt niska dla Twoich potrzeb, skontaktuj się z nami, opisz szczegółowo twój scenariusz i wyjaśnij, co należy wziąć pod uwagę, że byłaby to minimalna akceptowalna wartość, której potrzebujesz, aby scenariusz działał prawidłowo.