Temat: Budowa zestawu pod PostgreSQL

ok na razie usunietyAdam J. edytował(a) ten post dnia 13.07.12 o godzinie 12:56

konto usunięte

Temat: Budowa zestawu pod PostgreSQL

Podziękowania za długi tekst, ale czy naprawdę sądzisz, że otrzymasz pomoc pisząc z anonimowego profilu i to w temacie za który powinieneś zapłacić?

Temat: Budowa zestawu pod PostgreSQL

Przepraszam, chcialem aby nazwisko nie bylo widoczne i widze ze niektorzy z czlonkow grupy bazy danych tak maja, czyli profil ukryty, pomoc golden line tez do mnie napisali jak to ustawic, wiec to nie jest anonimowy, teraz nie moglem nawet odpowiedziec w tym temacie

Zanim napisalem to pytanie zapytalem sie w odzielnym temacie czy moge dolaczyc do grupy

"temat za ktory powinienem zaplacic" ? moglbym zaplacic ale komu jak, nie wiem co dokladnie masz na mysli ?

konto usunięte

Temat: Budowa zestawu pod PostgreSQL

Adam J.:
Przepraszam, chcialem aby nazwisko nie bylo widoczne i widze ze niektorzy z czlonkow grupy bazy danych tak maja, czyli profil ukryty, pomoc golden line tez do mnie napisali jak to ustawic, wiec to nie jest anonimowy, teraz nie moglem nawet odpowiedziec w tym temacie

Zanim napisalem to pytanie zapytalem sie w odzielnym temacie czy moge dolaczyc do grupy

a jaki to ma związek z przydługim tekstem?
"temat za ktory powinienem zaplacic" ? moglbym zaplacic ale komu jak, nie wiem co dokladnie masz na mysli ?

komuś kto się zna w postaci umowy o dzieło

Temat: Budowa zestawu pod PostgreSQL

Przemysław R.:
a jaki to ma związek z przydługim tekstem?

W 1 temacie tez napisalem czy moge zadac dlugie pytanie, wiem ze tekst spory, ale myslalem ze moze chociaz na niektore, wybrane kwestie ktos mi cos podpowie, nawet nie czytajac dokladnie calosci

Przemysław R.:
komuś kto się zna w postaci umowy o dzieło


tylko ze musialbym miec kontakt do kogos takiego, mialem juz jedną płatną konsultacje ale ta osoba nie potrafila odpowiedziec na niektore wazne pytania
Marcin Mackiewicz

Marcin Mackiewicz Programista JAVA, RS
Adware Polska

Temat: Budowa zestawu pod PostgreSQL

Czytałem tek tekst... tak cały...

Kolega tu dużo czytał na temat PostgreSQL i jego optymalizacji. Chciał także zastosować podstawkę sprzętową pod bazę w taki sposób jak jest napisane w manual'u dla tej bazy.

Zastanawia mnie jak wygląda struktura tej bazy i jak są tworzone zapytania sql skoro posuwasz się do dzielenia plików bazy na różne dyski dla bazy mającej kilka GB. To bardzo mała baza.

Czy na pewno wszystkie zapytania oraz struktura jest tak zoptymalizowana, że więcej wycisnąć się nie da? Czy bawiłeś się konfiguracją samej bazy?

Swego czasu tej wielkości bazy miałem postawione na 2x550Mhz i 2GB ramu DDR 300 i dostęp do danych mozolny nie był.

Co do tekstu to poruszasz w nim wiele aspektów dlatego bardzo trudno się do niego odnieść...
Na twoim miejscu bał bym się przyśpieszać wydajność przez stworzenie systemu pliku bez journaling'u i wyłączenie fsync. Jak serwer padnie i nie odtworzysz wszystkiego.

Tak samo jeżeli masz dyski SCSI albo SAS (nie pamiętam co tam pisałeś) to nie kombinuj z wrzucaniem WAL'a na jakiś dysk na USB czy jakieś SATA. Strony plików super duże nie są i mogą być obsługiwane przez szybsze dyski.

Nie powiem nic na pytanie dotyczące podziału na partycje i zachowanie się kontrolera którego używasz. W moim przypadku nie widziałem zasadniczej różnicy przy podziale dysku na partycje i bez podziału.

Jak dla mnie konfiguracja jest ok i na pewno wiesz co zrobić aby sprzętowo przyśpieszyć wydajność bazy ale czy to na pewno dobra droga?

Nie pamiętam czy pisałeś jakie planujesz obciążenie tego serwera, ilość użytkowników, ilość żądań do bazy, itp...

Do użytkowników wypowiadających się:
Nie macie wrażenia po tym tekście, że Adam orientuje się w temacie i pyta o szczegóły które zna baaardzo wąska grupa osób?

Temat: Budowa zestawu pod PostgreSQL

Ktos sie nade mna zlitowal:) dzieki Marcin ze odpisales, orientuje sie slabo i mam ogromne braki, wiem że przegialem z dlugoscia textu i iloscia pytan, a te bardziej szczegolowe rzeczy sa odpowiednie na to glowne forum angielskie PG z maling list, ale chcialem tez tutaj byc zarejestrowany.

Marcin M.:
Nie pamiętam czy pisałeś jakie planujesz obciążenie tego serwera, ilość użytkowników, ilość żądań do bazy, itp...
Zastanawia mnie jak wygląda struktura tej bazy i jak są tworzone zapytania sql skoro posuwasz się do dzielenia plików bazy na różne dyski dla bazy mającej kilka GB. To bardzo mała baza.


Jesli chodzi o pokera online i programy(klienci PG) takie jak poker tracker(PT), wielkosc bazy nie ma az takiego znaczenia, klient jest jeden, ale pod obciazeniem np gra na kilkunastu stolach razy 9 graczy, do kazdego po kilkadziesiat statystyk pokerowych - jest to bardzo kosztowne. Dokladnie jak to sie przeklada na ilosc żądań itd w tym momencie nie potrafie ci powiedziec

Co do struktury(jesli zrozumialem to o co pytasz) to pewnie nie mam dostatecznej wiedzy. Tak w skrocie pojedyncza baza poker trackera[w Win jeden z katalogow z ...data\base] to procz defaultowych information_schema i pg_catalog, dodatkowy schemat w public - kilkadziesiat tabel pokerowych z indeksami, nie ma nawet dodatkowych funkcji, ja sobie zainstalowalem tylko pg_buffercache_pages(). Jednak niektore tabele maja po kilkadziesiat tysiecy rzedow i wiecej, co jest masakrą dla dysku przy np. skomplikowanych raportach z gry i nie tylko. Mozna tez uzywac kilku baz z PT.

Co do tego jak sa tworzone zapytania odpowiedz bylaby dluga i tu juz nie mam zupelnie wiedzy, natomiast zapytania i sama ich optymalizacja to robi ze mnie program[...całe szczescie:)], sa to tez chyba rzeczy ktorych developerzy nie ujawniaja.

Czy bawiłeś się konfiguracją samej bazy?

sporo o tym czytalem i jeszcze bede sie uczyl, to odzielny temat i bede to robil dodatkowo poza sprzetowym ulepszeniem, ale najpierw musze zlozyc komputer, nowy zestaw jest konieczny

Na twoim miejscu bał bym się przyśpieszać wydajność przez stworzenie systemu pliku bez journaling'u i wyłączenie fsync.

nie nie, samo fsync bedzie wlaczone jedynie z open_datasync i z asynchronous commit, na czesciowa utrate ost. danych moge sobie spokojnie pozwolic, z tym ze te ustawienia to oddzielny temat
Natomiast co do journalingu to ja o to wlasnie pytalem, bo nie wiem czy da sie to wylaczyc w Win7 dla dysku z WAL i jak to zrobic

Tak samo jeżeli masz dyski SCSI albo SAS (nie pamiętam co tam pisałeś) to nie kombinuj z wrzucaniem WAL'a na jakiś dysk na USB czy jakieś SATA. Strony plików super duże nie są i mogą być obsługiwane przez szybsze dyski.

SAS ssd sa poza zasiegiem, bede mial tylko ssd sata3, WAL + logi serverowe chce dac na sata2 i tu mysle seq.write 90MB/s u intela 320 80GB spokojnie starczy. Win7 na oddzielnym i PG na oddzielnym[z TABLESPACE bazy z dysku z Win lub poprostu cala instalacja PG na oddzielnym dysku]. Jeszcze ktos mi powiedzial ze podmapowanie dysku pod katalogi z logami moze byc lepsze niz symbolic linki, ale nie wiem czy to mozna zrobic z Postgres. Jest jeszcze opcja o ktorej zapomnialem, nie tworzenia klastra podczas instalacji w Win tylko z initdb i wtedy opcja -X directory dla przeniesienia pg_xlog na inny dysk.Adam J. edytował(a) ten post dnia 15.07.12 o godzinie 15:50
Marcin Mackiewicz

Marcin Mackiewicz Programista JAVA, RS
Adware Polska

Temat: Budowa zestawu pod PostgreSQL

Ze sprzętem super dużo nie pomogę bo mistrzem świata nie jestem. Na moje oko to dużo więcej z tego sprzętu już nie wyciśniesz.
Jeszcze tylko mam pytanie. Po co tak uparcie pozostajesz przy Windowsie na tym serwerze? Aplikacja gry tego wymaga czy jak?
Pytam bo bazy przywykłem stawiać na systemach unixowych...

Tak samo za journaling z tego co wiem odpowiada system plików partycji a przy NTFS'ach czy innych pokrewnych z rodziny Windowsa nie pomoge bo ich nie znam za dobrze i szczerze mówiąc nawet nie wiem czy tam można wyłączyć księgowanie.

Kilkadziesiąt tysięcy rekordów w tabelach w bazie to nie jest problem bo to tyle co nic. A jak sporządzane są same statystyki? Robi to aplikacja czy engine bazy w postaci zapytania SQL?
Statsy wyliczane są on-line dla gracza czy to tylko do raportowania wyników gry?

A o jakich czasach wykonywania przykładowej statystyki rozmawiamy?

konto usunięte

Temat: Budowa zestawu pod PostgreSQL

tu przypomnę taką prawdę o bazach danych
optymalizacja programowa na poziomie aplikacji/bazy danych może przyspieszyć setki razy
optymalizacja sprzętowa - nigdy nie osiągnie takich rezultatów

drobny przykład
deweloper wyciąga w pętli jakieś dane z bazy selectem, coś tam poprawia i robi pojedyńczy update do bazy - mało optymalne powiedzmy 1000s czasu

po optymalizacji nie ma pętli tylko jeden update blokowy powiedzmy 1s

czujesz różnicę

Temat: Budowa zestawu pod PostgreSQL

Marcin:
Po co tak uparcie pozostajesz przy Windowsie na tym serwerze? Aplikacja gry tego wymaga czy jak? Pytam bo bazy przywykłem stawiać na systemach unixowych...

ahhh:) no to jest wlasnie jeden z przykladow na tą przepasc miedzy nasza wiedza o ktorej pisalem, poprostu nie znam sys. unixowych ani linuxow, nigdy nie mialem, wiec nie poradzilbym sobie, dlatego jestem na razie ograniczony do Windows, nie dlatego zeby sie nie dalo.

Kilkadziesiąt tysięcy rekordów w tabelach w bazie to nie jest problem bo to tyle co nic.
Myslalem ze to duzo jak na taki domowy lokalny server, niektore maja po kilkaset tysiecy, z tym ze w tej chwili mam wszystko na 1hdd co uniemozliwia dzialanie i prace

A jak sporządzane są same statystyki? Robi to aplikacja czy engine bazy w postaci zapytania SQL?
mysle i to i to, tzn np najprostsze statystyki pokerowe to np:
sum( if [ tabela.kolumna_enum = 'znak konkretnej pojedynczej akcji pokerowej', 1 , 0 ] ) / sum( if [ tabela.kolumna_flg-bool, 1 , 0 -mozliwosc takiej akcji ] ) * 100
czyli calosc da jakis % wykonania danej akcji na mozliwosc jej wykonania
Ale sa bardziej skomplikowane i sa ich setki, dla kazdego gracza w bazie. W czasie rzeczywistym wyswietla sie troche mniej

Statsy wyliczane są on-line dla gracza czy to tylko do raportowania wyników gry?
On-line wlasnie w czasie rzeczywistym dla kazdego z np lacznie 100graczy z ktorymi aktualnie grasz na wielu stolach i nie moze byc duzych opoznien. A raporty to nie tylko wyniki gry, ale tez skomplikowane wyliczenia z setek tysiecy rozdań pokerowych (mowiac bardziej ogolnie) gdzie musi wedlug filtrow aplikacji zliczyc i wyswietlic z tych rozdan np przy spelnionych warunkach x,y,z.. jakie wykonalem akcje stojac przed wyborem a, b lub c.

Przemysław:
.....po optymalizacji nie ma pętli tylko jeden update blokowy powiedzmy 1s
czujesz różnicę

Ogolnie rozumiem o czym mowisz, nie wiem tylko co to jest petla... To co moge sam poprawic w oparciu o źródła, procz sprzetu to konfiguracja bazy czyli optymalizacja tego co mozna ustawic w postgresql.conf. Natomiast optymalizacja samych zapytan to juz robia developerzy aplikacji, plus jest taki ze ciagle nad tym pracuja i wydaja nowe wersje oprogramowania
Piotr Trychta

Piotr Trychta Programista .NET

Temat: Budowa zestawu pod PostgreSQL

Adam J.:
ahhh:) no to jest wlasnie jeden z przykladow na tą przepasc miedzy nasza wiedza o ktorej pisalem, poprostu nie znam sys. unixowych ani linuxow, nigdy nie mialem, wiec nie poradzilbym sobie, dlatego jestem na razie ograniczony do Windows, nie dlatego zeby sie nie dalo.

Akurat postawienie PostgresSQL na Linuxie to żaden problem. Wydajność tej bazy na Linuxie też jest znacznie większa.Piotr Trychta edytował(a) ten post dnia 27.07.12 o godzinie 08:09

Następna dyskusja:

Skrypt do robienia dumpa Po...




Wyślij zaproszenie do