Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wzdajność połączenia z bazą przez IP
Forum PHP.pl > Forum > Bazy danych
zorobabel
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".
Pyton_000
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.
zorobabel
Wolę unikać sztuacji z poprawianiem, bo to może być trochę zawodne rozwiązanie. Równie zawodne jak moja pamięć 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 smile.gif.
Pyton_000
Każde rozwiązanie nawet najbardziej debilne prowadzące do właściwego rozwiązania jest dobre (choć nie zawsze poprawne wink.gif )
salfunglandyare
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 smile.gif
zorobabel
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 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 sciana.gif

Może ktoś zna się na tym lepiej, więc niech się wypowie.
salfunglandyare
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@%!
kartin
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.