środa, 14 stycznia 2009

Zmniejszamy obciążenie serwera

Mając własną stronę WWW, na której wykonywane są skrypty php, może zajść potrzeba zredukowania obciążenia serwera. Jest to istotne w momentach, kiedy otrzymujemy maile od Naszego hostingodawcy, z informacją że zużywamy za dużo zasobów, bądź posiadamy własny serwer dedykowany, gdzie zamieszczona została strona z dużą liczbą użytkowników.

Zbędne roboty

Jedną z najczęstszych przyczyn, zbyt dużego wykorzystania zasobów serwera, są częste odwiedziny robotów. Niektóre z nich są zbędne i bez konkretnego powodu, zjadają nam transfer i nazbyt często wykonują skrypty php, które prowadzą do przeciążania CPU serwera. W związku z tym zablokujmy je, a właściwie przekierujmy w jakieś inne miejsce. Aby to zrobić, wystarczy na początku każdej z podstron i strony głównej wkleić poniższy kod, lub stworzyć osobny plik .php i includować go :



<?$ua = $_SERVER[HTTP_USER_AGENT];
$ip = $_SERVER[REMOTE_ADDR];
$ur = $_SERVER[REQUEST_URI];

if (
eregi("wget", $ua)
|| eregi("askjeeves", $ua)
|| eregi("city4you", $ua)
|| eregi("converacrawler", $ua)
|| eregi("deltascan", $ua)
|| eregi("emeraldshield", $ua)
|| eregi("ia_archiver", $ua)
|| eregi("ichiro", $ua)
|| eregi("jyxobot", $ua)
|| eregi("linkwalker", $ua)
|| eregi("netexperts", $ua)
|| eregi("omniexplorer", $ua)
|| eregi("psbot", $ua)
|| eregi("shim-crawler", $ua)
|| eregi("societyrobot", $ua)
|| eregi("surveybot", $ua)
|| eregi("szook", $ua)
|| eregi("turingos", $ua)
|| eregi("wanadoo", $ua)
|| eregi("zongbot", $ua)
|| eregi("zoomspider", $ua)
|| eregi("zyborg", $ua)

// blokada po url
|| eregi("zoom_highlight", $ur)




// blokowanie zakresow IP
// omniexplorer
|| blozakres("64.71.131",$ip)
|| blozakres("65.19.134",$ip)
|| blozakres("65.19.150",$ip)
|| blozakres("65.19.169",$ip)
|| blozakres("66.246",$ip)
|| blozakres("72.36.254",$ip)



// niechciane IP

|| $ip == "65.19.150.241"
|| $ip == "65.214.44.54"
|| $ip == "65.75.166.200"
|| $ip == "69.57.132.54"
|| $ip == "72.36.254.178"
|| $ip == "80.51.198.186"
|| $ip == "81.190.43.231"
|| $ip == "209.123.8.173"
|| $ip == "220.181.26.69"
|| $ip == "211.120.209.3"



) {
// wysylam podejrzanego robota w kosmos np. za pomoca header("location: http:// odchlankosmosu.commm");
// lub poprzez $ip do nich samych...
header("HTTP/1.1 301 Moved Permanently");
header("location: http://inny-blog.blogspot.com/");
header("Connection: close");
exit;
}
function blozakres($zakres,$ip_,$zakresdo=""){
$ip_od = explode(".",$zakres);
$ip_we = explode(".",$ip_);
if (!$zakresdo) {
$zakresdo = $zakres;
}
$ip_do = explode(".",$zakresdo);

for( $x = 0; $x < 4; $x++ ){
$ip_od[$x] = sprintf("%03d",$ip_od[$x]);
$ip_we[$x] = sprintf("%03d",$ip_we[$x]);
if (!$ip_do[$x]) {
$ip_do[$x]=255;
}
$ip_do[$x] = sprintf("%03d",$ip_do[$x]);
}
$zakres = implode("",$ip_od) + 0;
$ip_ = implode("",$ip_we) + 0;
$zakresdo = implode("",$ip_do) + 0;
return (($ip_ >= $zakres) && ($ip_ <= $zakresdo));
}?>
Źródło PiO

W moim przypadku na serwerach prohost.pl, powyżej przedstawiony kod zredukował obciążenie CPU serwera z 15,73% do 8,07%. Zmniejszyło się też zużycie transferu.

Cache w php

Jak widać, powyższa porada mimo, że jest skuteczna, nie rozwiązuje całego problemu. Jednak mimo tego możemy dalej walczyć ze zbyt dużym wykorzystaniem zasobów serwera, poprzez cachowanie całych podstron. Nie zagłębiając się zbytnio w szczegóły, przedstawię jak szybko wstawić na podstrony ich cachowanie. Dzięki temu skrypty php nie będą wykonywały się zbyt często, zaś wcześniej wykonany skrypt, zostanie w swym całym ujęciu zapamiętany jako statyczna strona HTML, na czas przez Nas zdefiniowany.

Na początku stwórzmy plik o nazwie cacheclass.php i skopiujmy do niego poniższe funkcje :


<?function czytcache($plik,$czas)
{
$plik='cache/'.$plik.'.cache';
if (file_exists($plik))
if(time() > $czas + filemtime($plik))
return false;
else
return readfile($plik);
else
return false;
}

function wyscashe($plik){
$plik='cache/'.$plik.'.cache';
$nowyCashe=fopen($plik,'w+');
fwrite($nowyCashe, ob_get_contents());
fclose($nowyCashe);
ob_end_flush();
}
?>


Powyżej przedstawione funkcje, będą tworzyły nam pliki cache, w których będzie zapamiętywana Nasza strona, przez czas jaki za chwilę zdefiniujemy. Mając powyższe funkcje, możemy includować plik cacheclass.php.

Skoro mamy już gotowe funkcje, to na każda z podstron możemy zamieścić kod, który będzie je aktywował.



<? include "cacheclass.php";
if (!czytcache('index',86400)) { ob_start();?>
// Tu znajduje się kod naszej strony
// Za znacznikiem zamykającym HTML wstawiamy :
<? wyscashe('index-'.$id_str);} ?>



Powyżej domyślnie jako nazwę pliku podałem index. Jednak dla każdej podstrony, nazwa ta powinna być unikatowa. W innym przypadku będzie wyświetlana cały czas ta strona, która jako pierwsza została zapamiętana w pliku index.cache. Dlatego jako unikalną nazwę, proponuję dopisywać do niej jakieś paramerty, przekazywane metodą GET lub POST. Przykładowo plik może mieć taką nazwę ‘index-’.$_GET[‘zmienna1].’-‘.$_GET[‘zmienna2’]. Aby skrypt działał poprawnie, należy jeszcze na serwerze utworzyć katalog CACHE/. Nazwę i dostęp do tego katalogu możemy konfigurować w funkcjach znajdujących się w cacheclass.php. Powyżej przedstawiony kod domyślnie cache’uje stronę na 24 godziny (86400, czyli 60 sek * 60 min * 24 godz). Parametr ten możemy zmieniać według własnego uznania i własnych potrzeb.

Wyniki

Tak jak już pisałem, przekierowanie niechcianych robotów, zmniejszyło obciążenie CPU serwera z 15,73% na 8,07%. Po zastosowaniu cache’wania obciążenie CPU zmniejszyło się do 4,75%, co w porównaniu do stanu początkowego jest bardzo dobrym wynikiem.

wtorek, 13 stycznia 2009

Seks poradniki

Masz jakiś wstydliwy problem, nie wiesz jak się do tego zabrać, a może po prostu szukasz jakiś poradników, które urozmaicą Twój seks ? Nie będę pytał dlaczego czytasz post „Seks poradniki” i nie będę też dociekał szczegółów. Jak sama nazwa artykułu, mówi – znajdziesz tutaj seks poradniki. Nie owijając w bawełnę, przedstawię kilka ciekawych pozycji.

Seksualny klucz do kobiecych emocji to jeden z najstarszych poradników, dostępnym na rynku. Z książki dowiesz się jak uwiedź kobietę i zachęcić ją do seksu. Całość sprowadza się do wykorzystania kobiecej psychiki (czytaj słabości). Mimo, że poradnik został napisany parę lat temu, to wszelkie sztuczki i kruczki w nim opisane, dalej się sprawdzają.

Odważnie o seksie. Czy zastanawiałeś się kiedyś, jakie błędy możesz popełniać podczas seksu ? Większość mężczyzn powie, że w łóżku są doskonali, ale niestety nie jest to prawda, bo zawsze można robić to jeszcze lepiej. O tym jak być idealnym kochankiem, dowiesz się z poradnika odważnie o seksie.

69 gorących zabaw dla par. Czytając ten poradnik, będzie Ci naprawdę gorąco. Dowiedz się co robić, aby Wasz stosunek dostarczał Wam maksimum rozkoszy i by Twoja druga połowa, chciała jeszcze raz. Zgłębiając tajniki tego poradnika i wykorzystując zdobytą wiedzę w praktyce pokonacie rutynę w seksie i na nowo odszukacie w sobie zwierzęce instynkty.

Wymieniłem tylko te najciekawsze poradniki, co nie oznacza że nie ma ich więcej. Zatem pozostaje mi tylko życzyć miłej lektury, no i dużo seksu.

poniedziałek, 12 stycznia 2009

Szybka i efektywna nauka

Jakiś czas temu korzystając z dotacji Unii Europejskiej, zapisałem się na kurs grafika komputerowa – tworzenie stron WWW. Było za darmo, więc dlaczego miałbym nie skorzystać. W sumie cały kurs trwał jeden miesiąc i praktycznie mówiąc sam bym mógł go prowadzić, oprócz jednego przedmiotu. Przedmiot ten zwał się Corel Draw, którego niestety nie znałem. Zadziwiające jest to, że prowadzący sam przyznał się do tego, że jak do tego czasu stworzył w Corelu tylko jeden plan ewakuacyjny budynku i nic więcej. A mimo wszystko potrafił poprowadzić zajęcia w takiej formie, aby nauka Corela była szybka i efektywna. Jak to osiągnął ? Otóż prowadzący zajęcia utrzymywał kontakt z jednym z wykładowców Uniwersytetu Zielonogórskiego, który prowadził zajęcia z grafiki komputerowej. Do zajęć był zawsze przygotowany i na każde spotkanie przygotowywał materiał w formie filmowej. Prowadzący posiadając w swoich zasobach te materiały, wyświetlał je na kursie. Dzięki temu każdy uczestnik kursu mógł w praktyce zobaczyć co i jak wygląda.

Po obejrzeniu materiałów filmowych, każdy kursant przystępował do zajęć praktycznych, wykonując wcześniej zlecone polecenia. W przypadku gdy któraś osoba nie mogła sobie z czymś poradzić, prowadzący podchodził i tłumaczył. Muszę powiedzieć, że taka forma nauki była (przynajmniej dla mnie) bardzo szybka i co najważniejsze efektywna. Dzięki temu dziś nie mam problemu z obsługą programu Corel i sam potrafię tworzyć efektywne loga i inne cuda.

Nim uzyskałem stały dostęp do Internetu, moja nauka programowania C++ polegała na czytaniu czasopism i książek. Samo czytanie zajmowało dość sporo czasu, a do tego jeszcze dochodziła praktyka. Czy taka nauka była efektywna ? Tak była, ale na pewno nie była szybka. Dlatego chcąc rozwijać swoją wiedzę o języku skryptowym php, zainteresowałem się pewnymi materiałami filmowymi. Na aukcji allegro znalazłem dwie części kursu php, gdzie do każdej z nich została przygotowana wersja demonstracyjna. Każdy filmik demonstracyjny został wykonany w wysokiej jakości i całość była ładnie podkreślona dźwiękiem (mową) i praktycznymi przykładami. Pamiętając jak nauczyłem się Corela, bez zastanowienia kupiłem w jedno paku te kursy, a ponieważ zamawiając więcej kursów, nie płacę dwukrotnie kosztów wysyłki, postanowiłem do tego zakupić jeszcze kurs Joomola, z którą jeszcze nie miałem okazji pracować. W sumie za całość zapłaciłem 85,50 PLN i nie żałuję tej decyzji, ponieważ jestem tego zdania, że wiedza jest po to, aby na niej zarabiać. Jeśli zakupione kursy spełnią moje oczekiwania, to mam w planach wykupić jeszcze wszystkie części kursu Photoshopa.

Zainteresowanych tymi kursami odsyłam do sklepu sprzedającego – LINK. Może akurat ktoś znajdzie dla siebie coś interesującego. Po dostarczeniu i obejrzeniu materiałów dam znać jak przebiegała moja nauka, wraz z informacjami co do jej szybkości i efektywności.

niedziela, 11 stycznia 2009

Free economics

Internet przyzwyczaił Nas do sytuacji, że w sieci coś musi być za darmo. Kto z Nas nie oglądał za darmo filmów na YouTube, słuchał muzyki na wrzucie, nie słyszał o darmowej grze multiplayer Metin. I wszystko by było pięknie, gdyby nie fakt, że serwisy które udostępniają coś za darmo muszą zarabiać na swoje utrzymanie i właściciela.

Czy ktoś z Was zastanawiał się dlaczego wyszukiwarki udostępniają swe wyniki bezpłatnie, dlaczego korzystając z YouTube nie uronimy nawet złotówki ? Wszytko to ma sens, gdyż wcześniej czy później w serwisie, który udostępnia bezpłatnie różnej maści materiały, spotkamy się z reklamami. Mimo, że użytkownicy za reklamą nie przepadają, to niestety ale jest ona konieczna. Inaczej serwis udostępniający darmowy materiał przestał by istnieć.

Skoro darmowe rzeczy są tak popularne i pożądane, to dlaczego nie mielibyśmy czerpać z tego korzyści ? Przykładowo program partnerski złotych myśli, udostępnia swym partnerom i klientom, darmowe ebooki. I nie jest tak, że złote myśli nie mają w tym interesu, gdyż na końcu każdej darmowej publikacji znajdziemy informację o wydawnictwie i aktywny link do sklepu.

Darmoekonomia wydaje się być kolejnym krokiem ku zdobywaniu klientów, nowych odwiedzających i reklamodawców. W związku z tym, jeśli prowadzisz jakiś serwis internetowy, to warto pomyśleć, aby i na nim udostępnić możliwie dużo bezpłatnych materiałów, z których użytkownik nie tylko będzie miał pożytek, ale także zapewnią Nam bezpłatną reklamę internetową, bądź dodatkową przestrzeń reklamową.

sobota, 10 stycznia 2009

Wreszcie weekend

No i mamy weekend. Czas trochę odpocząć i zrobić porządki w domu, pokoju, mieszkaniu. Wielu z Nas oczekuje weekendu z utęsknieniem już od poniedziałku i każdy z Nas co tydzień mówi sobie – ale ten wolny czas szybko zleciał. Niestety tak to już jest, że jeśli na coś oczekujemy, to czas nam się dłuży.

I ja dziś po zrobieniu porządku w swoim pokoju, będę odpoczywał. W weekend zbieram siły na następny tydzień, snuję plany co trzeba będzie zrobić, spisuję je na kartce, albo kilkakrotnie sobie powtarzam, że w ten i tamten dzień muszę zrobić to i to. Może niektórzy powiedzą mi, że cały czas myślę o pracy, to niestety jest to konieczna konieczność, aby utrzymać się w interesie. W końcu muszę coś sprzedać przez Internet, aby mieć za co żyć.

Współczuję tym, którzy w weekendy muszą pracować, choć i ja sam niekiedy pracuję, ale tylko po to, aby móc w inny dzień zrobić sobie wolne. Kiedyś pracowałem 7 dni w tygodniu, po 8 - 10 godzin dziennie. I co ? Efekty były zadowalające, ale wysokim kosztem. Po dwóch takich tygodniach czułem się wypompowany, nie miałem ani sił, ani chęci do dalszej pracy. Musiałem zrobić sobie pięciodniowy urlop. Dlatego ważne jest, aby mimo wielu pomysłów jakie trzeba zrealizować, nie zapominać o czasie wolnym, który można spędzić z bliskimi. Zatem jeśli nie musisz, to nie pracuj w weekendy, a jeśli już musisz, to postaraj się ten dzień wolny znaleźć w tygodniu. Człowiek to nie maszyna, a i maszyna czasem też musi kiedyś odpocząć. O pracy w weekend możesz myśleć, by tworzyć plany, jednak ich realizację zostaw sobie na dni pracujące, bo jak to kiedyś ktoś powiedział – myślenie nie boli.

Zatem kończę na dziś pisanie tym krótkim postem, bo już najwyższy czas na odpoczynek.

piątek, 9 stycznia 2009

Hosting i zasoby CPU

Wczoraj otrzymałem informację od jednego z hostingodawców, że moje strony zużywają 14% CPU serwera, zaś dopuszczalny limit to 2%. Taki komunikat widzę już nie pierwszy raz i prawdę mówiąc zaczyna się to już robić męczące. Pytanie tylko dlaczego to zawsze klient jest winny, za zbyt duże wykorzystanie zasobów procesora serwera ? Czy nie jest czasem tak, że to właśnie hostingodawcy sami robią takie zamieszanie ?

Oferty usług hostingowych wyglądają pięknie, niemal wszystko bez limitów, albo limity ustawione na wysokim poziomie. Jakby nie patrzeć to taki marketing robi swoje i usługa zdaje się być dla nas interesująca. Jednak czy aby na pewno jesteśmy w stanie wykorzystać zadeklarowane w ofercie parametry ? Zdecydowanie nie, bo wcześniej czy później otrzymamy komunikat „Zużywasz za dużo zasobów CPU. Zrób coś z tym, albo zablokujemy Ci konto”. Osobiście uważam, że jest to nieuczciwa taktyka, ze strony firm oferujących usługi hostingowe. Skoro zadeklarowali w ofercie, że mamy do wykorzystania tyle baz o takich rozmiarach, określonej przestrzeni dyskowej i limit transferu, to powinni się tego trzymać konsekwentnie, a nie straszyć obciążeniem CPU.

W takich przypadkach, gdy zgłaszamy swoje pretensje, hostingodawca odpowiada, że wszystko to zostało podane w regulaminie, który zaakceptowaliśmy. Pytanie tylko dlaczego w regulaminie, a nie ofercie ? Zwykle jest tak, że aby odszukać dopuszczalne obciążenie CPU, musimy kilkakrotnie przeczytać regulamin, aby znaleźć w nim kruczek mówiący o procentach CPU, który bardzo często jest gdzieś sprytnie umieszczony między paragrafami. Dodatkowo hostingodawcy nie udostępnią klientom statystyk odnośnie aktualnego wykorzystania procesora, więc klient nie ma nawet jak tego kontrolować. Gdyby takie dane były wyświetlane w panelu klienta, to można było by reagować zawczasu, a nie po fakcie.

Moim zdaniem, w tym kierunku w końcu coś się musi zmienić. Nie może być przecież tak, że to klient zawsze jest poszkodowany. Hostingodawca sam we własnym zakresie powinien robić wszystko, aby każda jednostka (klient) była usatysfakcjonowana z jego usług, a jeśli już wystąpią jakieś problemy ze zbyt dużym zużyciem zasobów, to powinien doradzić klientowi jakie zmiany powinien poczynić. Bo dziś nastawienie do klienta wygląda dosłownie tak „Zużyłeś za dużo CPU, więc blokujemy Ci konto i mamy to w dupie. Kasy nie zwrócimy, bo regulamin mówi tak i tak, blebleble … ”.

Zatem jeśli wybieramy jakieś usługi hostingowe, to nie rzucajmy się tam gdzie wszystkiego jest najwięcej, za najniższą cenę. Lepiej mieć więcej limitów i w razie czego dokupić dodatek do usługi, niż później szukać igły w stogu siana i zastanawiać się skąd nagle takie obciążenie, przecież dotychczas wszystko było w porządku ?

czwartek, 8 stycznia 2009

Programy do pozycjonowania

Pozycjonowanie stron jest żmudnym zajęciem i wymaga wiele cierpliwości. Jeżeli pozycjonujemy tylko jedną stronę, na dodatek pod łatwe frazy, to nie będziemy potrzebowali żadnego wspomagacza do pozycjonowania. Problem pojawia się dopiero wtedy, gdy tych stron mamy kilka, a konkurencja za wszelką cenę próbuje Nam pokazać, kto jest lepszy. Dzisiaj opiszę niektóre z płatnych narzędzi do pozycjonowania stron. Jednak samo ich posiadanie nie sprawi, że od razu wypozycjonujemy co tylko chcemy. Posłużą nam one jako środek pomocny w pozycjonowaniu. Należy również pamiętać, że tak samo jak systemy SWL i te narzędzia należy używać z rozwagą.

Ping SEO Master – jak sama nazwa wskazuje, program ten służy do pingowania. Jest niezwykle przydatny jeśli posiadamy blog oparty o Wordpressa. W Ping SEO Master możemy zaimportować mapę strony, a następnie pobrać tytuły (TITLE) poszczególnych podstron. Program posiada możliwość działania w tle systemu Windows, dzięki czemu po uruchomieniu nie odczuwamy jego pracy.

Precel SEO Master – aplikacja tego samego autora, służąca do automatycznej rejestracji kont w katalogach Presell Page, generowania unikatowych artykułów i dodawania ich do wskazanych katalogów. Jest to obecnie najlepszy program do dodawania wpisów do precli. Dużym plusem Precel SEO Master jest to, że nie pozwala on na dodanie tego samego artykułu do kilku katalogów Precell Page.

Adder – chyba najbardziej znany skrypt do dodawania wpisów do katalogów stron. Obecna szósta wersja pozwala na zamieszczanie wpisów do katalogów Qlweb, CnCat, Mini oraz Mocne Linki i Presell Page. Skrypt w pełni automatyczny.

Sprytne Katalogowanie – według mnie lider wśród oprogramowania wspomagającego dodawanie wpisów do katalogu. Sprytne Katalogowanie nie jest pełnym automatem, a jedynie narzędziem wspomagającym dodawanie. Zamieszczanie wpisu do katalogu stron nie odbędzie się bez naszego udziału. Co za Nas zrobi Sprytne Katalogowanie ? Wskaże nam (zaznaczy) wcześniej zadeklarowane kategorie i podkategorie, wypełni formularze (oprócz tokena). Ten program warto posiadać, gdyż pozwala zaoszczędzić nam wiele czasu.

MaxPress – oskryptowanie wspomagające dodawanie pseudo unikalnych treści do Mocne Linki i Presell Page. MaxPress posiada również możliwość w pełni automatycznego dodawania wpisów do katalogów QlWeb, wyszukanych z bazy i wyszukiwarki Google.

MiniCat – skrypt do dodawania wpisów do katalogów Mini. Wyszukiwanie kategorii i podkategorii w bazie. Skrypt dodatkowo wyposażony jest w możliwość dodawania pseudo unikalnych opisów i mieszanych anchor textów. MiniCat jest oskryptowaniem w pełni automatycznym.

Scuttler – skrypt wspomagający indeksację stron. Skuttler sam wyszukuje podstrony i zgłasza je do katalogów Scuttle (bookmarków). Skuteczność tego skryptu ostatnio osłabła z uwagi na fakt, że pracownicy Google wzięli pod lupę katalogi Scuttle. Jednak według zapewnień autora, ma powstać nowa odmiana tego katalogu (może kiedyś się doczekamy).

I chyba na dziś wystarczy. Jeśli zainteresował Cię któryś z powyższych programów do pozycjonowania, to więcej informacji na jego temat uzyskasz w wyszukiwarce Google, po prostu wyszukaj go po nazwie. Nie ma sensu abym zamieszczał do każdego programu linki bezpośrednie, ponieważ przed zakupem warto zapoznać się z opiniami na forach.