Zna ktoś może na to lepszy sposób? Od tygodnia choruję i może moje władze umysłowe są przytępione (a może to nie od tygodnia a od czego innego)...
Potrzebowałem uruchomić #Sphinx'a przez nieuprzywilejowanego użytkownika, jednak instalacja z repozytoriów #Debian'a powoduje, że tenże gości na prawach root'a. Pozmieniałem co trzeba żeby uruchomił się jako ja, ale pozostawał problem uruchamiania go przy starcie systemu -- gdyby do takiego doszło straciłbym możliwość rotacji indeksami, a to byłby niejaki ból. Pomajstrowałem więc przy skrypcie /etc/init.d/sphinxsearch i tam okazało się, że demon startuje przy użyciu start-stop-daemon, która to ma opcję --chuid, z której można skorzystać do zmiany użytkownika, na którego prawach aplikacja będzie uruchamiana. Działa, ale szczerze mówiąc bardziej mi się podoba rozwiązanie, które ma w sobie ot choćby #MySQL -- ustawianie użytkownika w configu. Tego Sphinx nie ma. Ale może ma jakieś ładniejsze rozwiązanie -- ktoś zna?
Potrzebowałem uruchomić #Sphinx'a przez nieuprzywilejowanego użytkownika, jednak instalacja z repozytoriów #Debian'a powoduje, że tenże gości na prawach root'a. Pozmieniałem co trzeba żeby uruchomił się jako ja, ale pozostawał problem uruchamiania go przy starcie systemu -- gdyby do takiego doszło straciłbym możliwość rotacji indeksami, a to byłby niejaki ból. Pomajstrowałem więc przy skrypcie /etc/init.d/sphinxsearch i tam okazało się, że demon startuje przy użyciu start-stop-daemon, która to ma opcję --chuid, z której można skorzystać do zmiany użytkownika, na którego prawach aplikacja będzie uruchamiana. Działa, ale szczerze mówiąc bardziej mi się podoba rozwiązanie, które ma w sobie ot choćby #MySQL -- ustawianie użytkownika w configu. Tego Sphinx nie ma. Ale może ma jakieś ładniejsze rozwiązanie -- ktoś zna?
- dodaj komentarz
-
oceń wpis
- link
-
wsl dodałem tego flaka do historyjki:Marysia i Sfinks
I tym samym przejście na #Sphinx'a uznaję za zakończone...
Dobra rada -- gdy w MySQL zwykle trzeba uważać na dependent subqueries tak w przypadku, gdy któraś pobiera dane ze Sphinx'a, trzeba uważać x10. Po zmianie zapytania z formy MySQLowej (w uproszczeniu):
SELECT id FROM tablica WHERE id IN (SELECT id2 FROM tablica_ft WHERE MATCH (...) AGAINST (...)) ORDER BY id DESC LIMIT 500
która wykonywała się średnio od pół do paru sekund na podobną tylko, że SphinxSE, serwer po prostu odmówił współpracy. Przejście na formę JOIN z sortowaniem po stronie Sphinxa dało wynik 0.7 sekundy, który był dalej koszmarnie za wysoki. Dopiero dopracowanie tego zapytania pozwoliło zejść do wyników nie wykraczających poza 0.03 ze średnią ok. 0.01 sekundy.
Szkoda tylko, że nie znam żadnego repozytorium z gotowym dobrym MySQL'em z XtraDB i Sphinx'em pod Debian'a.
Dobra rada -- gdy w MySQL zwykle trzeba uważać na dependent subqueries tak w przypadku, gdy któraś pobiera dane ze Sphinx'a, trzeba uważać x10. Po zmianie zapytania z formy MySQLowej (w uproszczeniu):
SELECT id FROM tablica WHERE id IN (SELECT id2 FROM tablica_ft WHERE MATCH (...) AGAINST (...)) ORDER BY id DESC LIMIT 500
która wykonywała się średnio od pół do paru sekund na podobną tylko, że SphinxSE, serwer po prostu odmówił współpracy. Przejście na formę JOIN z sortowaniem po stronie Sphinxa dało wynik 0.7 sekundy, który był dalej koszmarnie za wysoki. Dopiero dopracowanie tego zapytania pozwoliło zejść do wyników nie wykraczających poza 0.03 ze średnią ok. 0.01 sekundy.
Szkoda tylko, że nie znam żadnego repozytorium z gotowym dobrym MySQL'em z XtraDB i Sphinx'em pod Debian'a.
- dodaj komentarz
-
oceń wpis
- link
-
ahilles107 lol!
-
wsl @mlen - no, coś czuję, że następnym krokiem będzie przepisanie systemu z Perla na C++. [odpowiedz]
-
wsl @mlen - mnie Perl też -- jestem w stanie udźwignąć od 40 do 120 zapytań na sekundę (#FastCGI to cud). Jednak myślę o przyszłości żeby sobie podłubać w wolnej chwili. [odpowiedz]
-
az @wsl a dopracowana forma zapytania to...? :-) [odpowiedz]
-
wsl SELECT ... FROM (SELECT ... FROM sphinx WHERE query="fraza;limit=500;sort=extended:@id DESC") spx LEFT JOIN mysql ON spx.id=mysql.id WHERE [warunki mysql] LIMIT 500 [odpowiedz]
-
wsl Szefu zawsze był zainteresowany ;) [odpowiedz]
-
wsl Może... Ale on mnie czasem podgląda. Wiesz, taki flakerowy free consulting ;) [odpowiedz]
-
wsl dodałem tego flaka do historyjki:Marysia i Sfinks
Od trzech dni robię jedną rzecz -- kompiluję SphinxSE do już zainstalowanych z repo #Debian'a serwerów #MySQL i #Sphinx. To jest nieprawdopodobne, ale ilekroć uda mi się zrobić krok do przodu, znów tkwię na jakiejś przeszkodzie kilka godzin. Do tego stopnia skończyły mi się opcje, że już przeszedłem na #MariaDB na swoim produkcyjnym serwerze z nadzieją, że skompilowany moduł zadziała pod nią -- niestety. Został mi ostatni krok -- skompilować całą Marię z #OurDelta ze SphinxSE od podstaw (mając nadzieję, że zadziała!) i zarządzać to w ten sposób za każdym razem, gdy wyjdzie nowa wersja. #Wyraz mnie trafi, ale co tam. Zostanę mistrzem wklepywania configure-make-make-install...
- dodaj komentarz
-
oceń wpis
- link
-
anakh komentarz usunięty [odpowiedz]
-
wsl komentarz usunięty [odpowiedz]
-
anakh @wsl - ok dasz radę [odpowiedz]
-
wsl Ja dam, ale czy serwer da :> [odpowiedz]
-
anakh @wsl - kto nie próbuje ten nie wie , trzeba czasem zaryzykować:> [odpowiedz]
-
wsl Taa... Po zmianie bazy danych okazało się, że pół systemu mi nie działa... Jak nie urok to srrr... ebrne wesele. [odpowiedz]
-
anakh @wsl - nic to #wiosna [odpowiedz]
-
wsl dodałem tego flaka do historyjki:Marysia i Sfinks
Ładuję...