Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wzdajność połączenia z bazą przez IP
zorobabel
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 3.05.2014

Ostrzeżenie: (0%)
-----


Witam,
Pytam, bo być może ktoś testował podobne rozwiązanie.
mam do czynienia z pewnym projektem e-commerce. Mój klient życzy sobie aby czasami dokonać pewnych zmian, głównie w wzglądzie lub dodanie nowych funkcjonalności. Zmiany te mają być dokonywane na "żywym organiźmie" i do czasu akceptacji, widoczne tylko dla mojego klienta, ale nie dla jego klientów.
Dlatego pomyślałem, że może zrobię kopię serwisu i na niej będę dokonywać zmian, a po ich akceptacji wzkonam sznchronizację kopii z orginałem. Problem w tym, że jak w kopii zmienię w pliku konfiguracyjnym "localhost" na IP, to po synchronizacji taka zmiana dokona się też w oryginalnym pliku.
I teraz pytanie:
Jak zmieni się wydajność gdy orginalna strona będzie lączyć się z bazą, która znajduje się na tym samym hoście ale przez zewnętrzne IP a nie przez "localhost".
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


W teorii różnie, serwer może automatem przekierować na loopback ze względu na odwołanie do przypisanego adresu na interfejsie.

A nie możesz po prostu wykluczyć plik z danymi do BD z aktualizacji ?
Albo sprawdź po prostu namacalnie czy wydajność nie spada drastycznie, jak nie to po przeniesieniu większych paczek zmian zmieniaj host na localhost.
Go to the top of the page
+Quote Post
zorobabel
post
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 3.05.2014

Ostrzeżenie: (0%)
-----


Wolę unikać sztuacji z poprawianiem, bo to może być trochę zawodne rozwiązanie. Równie zawodne jak moja pamięć (IMG:style_emoticons/default/smile.gif)
Odebrałem poprostu prawa zapisu przez FTP dla pliku konfiguracyjnego i teraz jak nie odznaczę go przy synchronizacji, to otrzymiję info o błędzie i tyle. Może nie jest to najfachowsze rozwiązanie, ale skuteczne (IMG:style_emoticons/default/smile.gif) .
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Każde rozwiązanie nawet najbardziej debilne prowadzące do właściwego rozwiązania jest dobre (choć nie zawsze poprawne (IMG:style_emoticons/default/wink.gif) )
Go to the top of the page
+Quote Post
salfunglandyare
post
Post #5





Grupa: Zarejestrowani
Postów: 150
Pomógł: 31
Dołączył: 10.01.2007
Skąd: Bydgoszcz/Inowrocław

Ostrzeżenie: (0%)
-----


Szczerze powiedziawszy, to dla mysql, do którego dostęp jest przez TCP (a nie przez bezpośredni dostęp do socketa) nie ma znaczenia, czy będzie to localhost, czy IP. do komunikacji użyty będzie protokół sieciowy, niezależnie z jakiego źródła (localhost = 127.0.0.1). Wybierając inne IP droga routingu wewnętrznego będzie podobna co w przypadku localhost, zapytanie -> interfejs -> zwrot. Porownaj pingi localhost z adresem zewn (ale na serwerze). Ofc mowie tu o sytuacji gdzie maszyna z zewnetrznym IP to ta sama, co z localhost (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
zorobabel
post
Post #6





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 3.05.2014

Ostrzeżenie: (0%)
-----


Dokładnie o tak sytuację chodzi. Adres IP przypisany jest do jednego z interfejsów localhosta. Chodzi o to, żeby pakiety nie latały se do Hongkongu i z powrotem.

[edit]

Z ciekawości sprawdziłem pingi, dla localhost:
rtt min/avg/max/mdev = 0.039/0.053/0.077/0.017 ms

a dla IP
rtt min/avg/max/mdev = 0.033/0.041/0.046/0.005 ms

i jeszcze dla domeny hosta:
rtt min/avg/max/mdev = 0.026/0.035/0.046/0.010 ms

Z tego można by wysnuć wniosek, że połączenie przez IP powinno być szybsz niż przez localhost (IMG:style_emoticons/default/axesmiley.png)

Może spowodowane jest to tym, że po wywołaniu localhost na początku system przeszukuje plik hosts w celu odnalezienia IP a potem łączy się z 127.0.0.1 (IMG:style_emoticons/default/sciana.gif)

Może ktoś zna się na tym lepiej, więc niech się wypowie.

Ten post edytował zorobabel 7.05.2015, 15:32:56
Go to the top of the page
+Quote Post
salfunglandyare
post
Post #7





Grupa: Zarejestrowani
Postów: 150
Pomógł: 31
Dołączył: 10.01.2007
Skąd: Bydgoszcz/Inowrocław

Ostrzeżenie: (0%)
-----


To sa tak nieznaczne wartosci, ze mogly byc spowodowane chwilowym wzrostem obciazenia. Odpytujesz te sama maszyne, konwersja localhost > 127.0.0.1 raczej nie ma związku jest ona jednorazowa (tlumaczona na IP przed wykonaniem pinga), Trasę można sprawdzić i porównać:
traceroute 127.0.0.1

i

traceroute IP

w obydwu przypadkach dotyczy to tej samej maszyny i powinno zawierać tylko 1 pozycję

Jednak zanim zmienisz z localhost na IP w mysql musisz sprawdzić, jak wygląda sprawa z użytkownikiem w mysql, użytkownik@localhost != użytkownik@IP czy użytkownik@%!

Ten post edytował salfunglandyare 7.05.2015, 18:03:48
Go to the top of the page
+Quote Post
kartin
post
Post #8





Grupa: Zarejestrowani
Postów: 246
Pomógł: 79
Dołączył: 25.05.2010

Ostrzeżenie: (0%)
-----


Cytat(salfunglandyare @ 7.05.2015, 15:06:02 ) *
Szczerze powiedziawszy, to dla mysql, do którego dostęp jest przez TCP (a nie przez bezpośredni dostęp do socketa) nie ma znaczenia, czy będzie to localhost, czy IP. do komunikacji użyty będzie protokół sieciowy, niezależnie z jakiego źródła (localhost = 127.0.0.1).

Jeśli do serwera jest dostęp przez socket i przez TCP/IP to pod podaniu localhost połączenie idzie przez socket, a przy 127.0.0.1 przez TCP/IP.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 22:00