![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 10.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Zainstalowałem sobie specjalnie do tego celu Windowsa 7, bo wiem, że znacznie lepiej radzi sobie z obsługą wielu rdzeni (względem np. XP). Komputer wyposażony jest w 4 rdzeniowy procesor (Intel Core i5) i jak już wspomniałem Windows 7. Korzystam z najnowszej wersji MySQL Community Server 5.1.48. Jednak wykonując wiele złożonych operacji na bazie (całkiem sporej), proces mysqld wykorzystuje jedynie 25% CPU (jeden rdzeń). W jaki sposób zmusić MySQL'a aby korzystał ze wszystkich rdzeni? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 10.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Na podstawie ostatniego posta można dojść do wniosku, że głównym problemem jest tu jednak system operacyjny (Windows).
Pytanie jednak czy przejście na Linuxa rozwiąże problem, czy jednak ten fragment "Connection to the DB (and most PHP programs only make ONE!) can only use one CPU core. " dotyczy obu systemów, a przeszkodą jest samo PHP? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 309 Pomógł: 20 Dołączył: 13.02.2010 Skąd: Kęty Ostrzeżenie: (0%) ![]() ![]() |
Z tego co wiem, to serwery o wiele lepiej jest stawiać na Linuxie. A już tym bardziej jeżeli jest to baza danych. Jak wiadomo Windows nie jest zawsze stabilny, o ile w ogóle jest ... Mój znajomy już się przejechał na win. Dobrze, że dzień wcześniej zrobił kopie danych (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
Przeszkodą nie jest samo PHP, tylko to, że zazwyczaj aplikację PHP pisze się w taki sposób, żeby otwierała tylko jedno połączenie (czyli tylko raz wywoływane jest mysql_connect()/mysqli_connect()), a to z kolei wynika ze specyfiki aplikacji webowych (shared hosting itp)
Jak chcesz z aplikacji PHP wywoływać asynchronicznie zapytania to masz takie coś do dyspozycji: http://www.php.net/manual/en/mysqli.reap-async-query.php (jednak aplikacja musi wtedy nawiązać więcej niż jedno połączenie) Gdzieś na tym forum jest wątek, w którym wstawiłem przykładowy kod, gdzie widać jak dwa zapytania asynchroniczne zwracają wynik dwa razy szybciej niż dwa wywołane jedno po drugim (puszczane na Win Vista). P.S. Opiekuję się serwerkiem z Win Serrver 2008 i jakoś nie mam lęków po nocach (IMG:style_emoticons/default/smile.gif) Inna sprawa, że backup automatycznie robi się dwa razy dziennie, ale to nie dlatego, że serwer windowsowy, bo na każdym innym też bym tak robił. Ten post edytował Mchl 10.07.2010, 13:17:09 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 07:06 |