WN

WN (https://www.wn.se/forum/index.php)
-   Feedback (https://www.wn.se/forum/forumdisplay.php?f=20)
-   -   HostingSpeed.se - Hjälp mig samla data och utveckla! (https://www.wn.se/forum/showthread.php?t=1047210)

pelmered 2011-03-18 17:56

HostingSpeed.se - Ett communityprojekt här på WN!
 
Vad är detta?

Det här är ett open scource communityprojekt här på WN. Tanken är att vi tillsammans ska bygga ihop ett system för samla olika former av data och statistik ifrån olika hostinglevereantörer, framförallt webbhotell i Sverige till att börja med, och sedan presentera allt på webbsida så att man enkelt kan se och jämföra de olika leverantörerna. Tjänsten ska göra det lättare att välja webbhotell, för såväl experten, genom grundlig statistik och avancerade prestandatester, som för nybörjaren, genom lättillgänglig, lättöversiktlig och jämförbar information över de alternativ som finns.
Bakgrunden till det här initiativet kommer ifrån diskussionen i tråden "Mätetal för webbhotell" http://www.wn.se/t1047156.html och vi har valt att starta ett projekt för att lösa detta.

Projektet kommer vara helt öppet och vi kommer licensera systemet med någon GNU-likande open source-licens. Det är med andra ord inget projekt med något vinstsyfte utan bara för att det är kul och för att kunna erbjuda en bra tjänst som gör det lättare att välja en bra leverantör när det gäller webbhosting. Eventuella reklamintäkter, donationer eller dylikt kommer att gå oavkortat till drift och annat som är nödvändigt för att hålla systemet igång.

Status just nu.

Här kommer projektets status uppdateras löpande här i framtiden.

Vi ska precis dra igång det här projektet och vi letar nu personer som på något sätt kan bidra till utvecklingen och driften av det här systemet.
Det som behöver göras just nu är i det första skedet är att ta fram en mjukvarudesign av hur systemet ska fungera och någon enklare roadmap för utvecklingen initialt.

Repositoryt på github hittar ni här:
https://github.com/akelagercrantz/hostingspeed

Vad du kan bidra med

I nästa skede kommer vi behöva folk som kan bidra med:
  • Idéer! Både på nya funktioner och på hur saker ska fungera mer tekniskt.
  • utveckling av systemet. Klient-Server, till största delen i PHP.
  • Webbdesign för snygg presentationen av datan.
  • Hosting. Någon som kan sköta drift och administration av server samt stå för serverplats.
Skriv i tråden om du kan bidra med något av ovanstående.

Kontakt

Skriv här i tråden eller kontakta mig via PM om du har några funderingar eller har något annat att erbjuda som du tror skulle kunna vara bra för det här projektet.

pelmered 2011-03-18 17:59

De som vill bidra får gärna skriva egna testfunktioner på saker som ska testas.

Gör funktionerna enligt följande exempel:
PHP-kod:

function func_insert()
{
   global 
$dbl$dbName$tableName$numIter$randStrArr;
   
   
//Timer Start
   
$st microtime();    
   
   
//Perform test - INSERT
   
for ($i 0$i $numIter$i++)
   {
      
mysqli_query($dbl"INSERT INTO `$dbName`.`$tableName` (`id` ,`testcolumn`)VALUES ($i , '".$randStrArr[$i]['s']."' )");
   }
   
//test end

   //Get time and return exec time
   
return getTime($st);
}

function 
func_insert_pdo()
{
   global 
$dbh$dbName$tableName$numIter$randStrArr;
   
   
//Prepare test
   
$insertStmt$dbh->prepare("INSERT INTO results ( `id` ,`testcolumn` ) VALUES( :id, :teststr)");
   
   
//Timer Start
   
$st microtime();
   
   
//Perform test - INSERT PDO
   
for ($i 0$i $numIter$i++) {
      
$insertStmt->bindParam(':id'$iPDO::PARAM_INT);
      
$insertStmt->bindParam(':teststr'$randStrArr[$i]['s'], PDO::PARAM_STR$randStrArr[$i]['l']);

      
$insertStmt->execute( );
   }
   
//test end
    
    //Get time and return exec time
   
return getTime($st);


Kommentarer:
$dbl = Databasanslutning med MySQLi - http://php.net/manual/en/book.mysqli.php
$dbh = Databasanslutning med PDO - http://php.net/manual/en/book.pdo.php
$dbName = Databasnamn
$tableName = Testtabellnamn
$numIter = Antal iterationer (1000 kommer det nog vara, men vill ha möjligheten att ändra detta)
$randStrArr = En array med slumpade sängar och längden på dessa. Strängarna är siffror samt stora och små bokstäver med en slumpad längd mellan 5 och 15 tecken. Strängens längd finns också med i arrayen om man vill använda den. Antalet är givetvis lika många som antalet iterationer.
Arrayen är på följande form:
PHP-kod:

Array
(
    [
0] => Array
        (
            [
s] => 49MmVEQpabk
            
[l] => 11
        
)

    [
1] => Array
        (
            [
s] => Mex1IJoruZWVF
            
[l] => 13
        
)

    [
2] => Array
        (
            [
s] => dPvgE8KT3eOGYwR
            
[l] => 15
        
)

    [
3] => Array
        (
            [
s] => TmABc
            
[l] => 5
        
)
....
    [
999] => Array
        (
            [
s] => 2WQvegSDsh
            
[l] => 10
        
)



Några kommentarer på det upplägget?

akelagercrantz 2011-03-18 18:24

Om du vill att vi andra ska bygga på och förbättra kanske det kan vara en bra idé att slänga upp den på github eller liknande?

Jag försökte för länge sedan se om det fanns något intresse på WN för ett gemensamt open source projekt, men det saknades då en bra idé på vad vi kunde göra. Det här passar ju utmärkt.

pelmered 2011-03-18 18:28

Bra idé! Ja, jag skulle kunna slänga upp både klient och server på github om intresse finns för det!

Jag har dock aldrig använt det dock så jag ska kolla upp lite.

Om någon kan stå för hosting och så också i så fall vore det trevligt!

akelagercrantz 2011-03-18 18:53

Jag kan nog stå för hosting om det behövs.

Hur har du tänkt med upplägget klient / server?

Erik Stenman 2011-03-18 18:57

Grymt, jag har funderat på att göra något liknande ett antal gånger.
Det borde även implementeras någon slags mätning av svarstider via javascript tycker jag. Så att när en användare går in på hemsidan så mäts hur lång tid det tar att få svar, dvs. inte att ladda innehållet. Om man gör det på serversidan blir det ju färre geografiska platser man mäter från.

pelmered 2011-03-18 21:18

Vi kör det som ett 100% Open Source-projekt då :)

Citat:

Ursprungligen postat av akelagercrantz (Inlägg 20398427)
Jag kan nog stå för hosting om det behövs.

Okej, trevligt :)
Du får gärna fixa igång det. Jag kan skicka koden jag gjort hittills så kan du lägga in det och kanske även lägga upp på github.

Citat:

Ursprungligen postat av akelagercrantz (Inlägg 20398427)
Hur har du tänkt med upplägget klient / server?

Jag vet inte riktigt vad du är ute efter men nu funkar det så att klienten bara spottar ut en stäng med informationen i formatet testkey:värde|testkey:värde osv. Exempel:
insert:7937|insert_pdo:9434|select:35714|update:89 29|

Sedan hämtar serverskriptet det med CURL, parsar det och stoppar in det i en databas. Ganska simpelt, men det behöver inte vara svårare än så, eller?

Erik Stenman: Ja, det är också bra saker att fixa. Det är bara att koda på när vi har fått igång detta! :)

oderland 2011-03-18 21:41

ODERLAND Webbhotell, delad server:

http://magtest.hemsida.eu/test2/client/

Kontakt [email protected]

akelagercrantz 2011-03-18 23:23

Citat:

Ursprungligen postat av ITisGood.se (Inlägg 20398449)
Jag kan skicka koden jag gjort hittills så kan du lägga in det och kanske även lägga upp på github.

PM:ar dig min e-postadress så fixar jag det.

Citat:

Ursprungligen postat av ITisGood.se (Inlägg 20398449)
Jag vet inte riktigt vad du är ute efter men nu funkar det så att klienten bara spottar ut en stäng med informationen i formatet testkey:värde|testkey:värde osv. Exempel:
insert:7937|insert_pdo:9434|select:35714|update:89 29|

Sedan hämtar serverskriptet det med CURL, parsar det och stoppar in det i en databas. Ganska simpelt, men det behöver inte vara svårare än så, eller?

Är det kanske bättre att vända på det? Klienterna initierar anslutning till servern och skickar data med ett API av något slag.

En fördel blir att vem som helst kan slänga upp en ny klient på valfritt hotell/webserver utan att serverdelen behöver känna till adressen för att få data. En annan fördel är att personen som lägger upp klienten själv får välja testintervall (om det körs med ett cronjob t.ex.), samt vilka tester som utförs. Vi kan ju anta att projektet utökas med lite olika typer av tester. Alla kanske inte är relevanta för varje platform.

Vad tror ni om det?

pelmered 2011-03-18 23:54

Citat:

Ursprungligen postat av akelagercrantz (Inlägg 20398468)
PM:ar dig min e-postadress så fixar jag det.

Jag har skickar koden till din mail nu.

Citat:

Ursprungligen postat av akelagercrantz (Inlägg 20398468)
Är det kanske bättre att vända på det? Klienterna initierar anslutning till servern och skickar data med ett API av något slag.

En fördel blir att vem som helst kan slänga upp en ny klient på valfritt hotell/webserver utan att serverdelen behöver känna till adressen för att få data. En annan fördel är att personen som lägger upp klienten själv får välja testintervall (om det körs med ett cronjob t.ex.), samt vilka tester som utförs. Vi kan ju anta att projektet utökas med lite olika typer av tester. Alla kanske inte är relevanta för varje platform.

Vad tror ni om det?

Mjo, det beror ju lite på vad man vill ha ut av datan dock.
Vill man kunna jämföra på ett bra sätt underlättar det ju om intervall och andra inställningar är lika på alla ställen. Det är ju även enklare att sätta upp om man inte behöver sätta upp crons och så. Tänkte mig att man kunde registers sig på sidan så att data hämtas och det kunde ju vara öppet för alla att registrera där.
Men det finns ju fördelar med ditt förslag också.

Ett problem som jag funderat på är hur man verifierar att datan är korrket. Det är ju lätt att fejka datan som skickas så att man kan få webbhotellet hur snabbt eller långsamt man vill.
En fundering jag fick här att att man försöker få så många källor som möjligt på varje webbhotell och sedan plockar bort de värden som avviker mest och tar ett snitt på resten. Utifrån den datan skulle man då även kunna gradera tillförlitligheten automatiskt.


Alla tider är GMT +2. Klockan är nu 13:30.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson