VMware i procesory HT

Niedawno zrobiliśmy migrację dużego serwera z kilkudziesięcioma całkiem sporymi serwisami z maszyny fizycznej do VMware 2.0 beta. I kiedy tylko ruch wzrósł do normalnego poziomu pojawiły się problemy. Długi czas startu ładowania strony, potem już burstem wsio się błyskiem ładowało, ale po kliknięciu znów trzeba było czekać. Zrywane połączenia IMAP, po SSH nie dawało się pracować – maszyna zachowywała się, jakby była bardzo mocno obciążona, na reakcję systemu trzeba było czekać czasem nawet kilkadziesiąt sekund. Maszyna fizyczna również strasznie dostawała w kość.

Paweł znalazł rozwiązanie – maszynie wirtualnej był przydzielony jeden wirtualny procesor. W związku z tym, że Linux widzi procesory HT jako dwa rdzenie, de facto dla klienta była przydzielana połowa procesora – nawet nie cały rdzeń, bo w starszych Xeonach jest tylko jeden, za to zoptymalizowany pod wielowątkowość. Pojawiały się problemy wydajnościowe związane z ciągłym przeładowywaniem cache przy przełączaniu zadań, które teoretycznie powinny się wykonać fizycznie równolegle na 2 osobnych rdzeniach.

Wystarczyło wirtualnej maszynie dać 2 procesory i problemy zniknęły jak za dotknięciem magicznej różdżki.

To link or not to link

Poczytałem sobie dziś Antyweb poprzez góglowego Readera. Fajna akcja, ale – jak zwykle – zmontowana dosłownie na kolanie. Strona Linkujmy! wygląda prawie jak niesławna NoAdBlock. Zjedzone polskie znaki w podpisach, w lynx-ie podpisów w ogóle nie widać… ;P

Ok, linkowanie jest _dobre_. Ale widzę w tym jeden problem. IMHO jedną z najbardziej irytujących rzeczy w sieci (zaraz za reklamami zasłaniającymi treść ;D) są linki, które nie działają. Niestety, sieć, w przeciwieństwie do materiałów wydanych na papierze – jest bardzo ulotna. Dziś ciekawy artykuł jest, jutro go nie ma. Nawet duże portale informacyjne nie są solidnym oparciem do linkowania – polecam pogrzebać w starszych postach – połowa linków prowadzi w truskawki.

Wniosek – linkować – tak, ale cytując najważniejsze fragmenty, do których się odnosimy. Zapewnimy czytelnikowi pogląd na źródło, z którego korzystamy.

PHP Prefixowanie w nazwach metod

Pojawił się dziś pomysł na realizację prostych wrapperów na metody (np do pomiaru czasu czy debugowania) nie poprzez zewnętrzne funkcje czy dekoratory tylko poprzez dodawanie prefixów w nazwach metod.
Rozwiązanie oparte jest na magicznej metodzie __call i zawiera się w dosłownie kilku liniach kodu. Szczegóły w pełnym artykule.

PHPowy wieczór

Wczorajszy wieczór był dość owocny, jeśli chodzi o kodowanie ;D

Popełniłem 2 małe projekty, które właściwie są narazie bardziej koncepcjami niż produktami nadającymi się do pełnego wykorzystania, ale powiedzmy, że działają.

Pierwszy z projektów to próba zaimplementowania pseudowątków w PHP. Działa wolno, ale skutecznie. Na podstronie kod i przykład wykorzystania.

Drugi, to implementacja prostego mechanizmu RPC pośredniczącego w korzystaniu ze zdalnych obiektów umieszczonych np na innych serwerach. Może się przydać do pobierania niedużych ilości danych, sterowania procesami czy zdalnej autoryzacji. Dużą zaletą jest prostota korzystania. Obiekt po zdefiniowaniu korzysta ze zdalnej maszyny w sposób całkowicie przezroczysty. Na podstronie kod i przykład wykorzystania.

Upgrade WordPressa

Wypadało w końcu uaktualnić WordPressa. Ściągnąłem najnowszą, rozpakowałem nadpisując starą (backup zrobiłem!). Login do admina – informuje, że trzeba upgrade bazy zrobić – no to niech robi. Zrobił. Wygląda, że wszystko działa.

Permalinks

W końcu działają!

Nie wiem, o co biegało na poprzedniej maszynie, ale modrewrite nie chciało działać.

Przeniosłem stronę, skonfigurowałem bazę, włączyłem permalinks i działają.