mboost-dp1

Facebook

Facebook optimerer PHP med op til 50 %

- Via Facebook - , redigeret af Emil , indsendt af arne_v

I arbejdet på at minimere belastningen på deres servere har man hos Facebook arbejdet på at optimere PHP til at anvende færre ressourcer. Det er blevet til projektet HipHop for PHP, der kraftigt kan reducere ressourceforbruget.

Projektet har været undervejs i over to år, og Facebook har selv benyttet teknologien de seneste seks måneder. HipHop for PHP konverterer PHP-koden til C++, der er meget mere effektiv.

Udvikler Haiping Zhao fra Facebook fortæller på sin blog, at projektet i gennemsnit har reduceret CPU-forbruget på deres servere med 50 %.

Haiping Zhao, udvikler hos Facebook skrev:
With HipHop we’ve reduced the CPU usage on our Web servers on average by about fifty percent, depending on the page. [..] We are proud to say that at this point, we are serving over 90% of our Web traffic using HipHop, all only six months after deployment.

Du kan læse meget mere om projektet ved at følge linket til kilden.





Gå til bund
Gravatar #51 - arne_v
7. feb. 2010 21:11
Windcape (22) skrev:

Derudover så behøver jeg vel ikke sige mere hvis de bruger MySQL. Det er ikke en database som synes at skalere til det formål.


Windcape (32) skrev:

MySQL er generelt en dårlig performance database. Til en løsning some facebook ville Oracle eller DB2 være mere passende. Måske PgSQL fordi at PHP har ikke har ordenlige bindings til Oracle/DB2.

Men det er desværre et typisk valg for en løsning man aldrig forventer vil skalere.


Sludder.

MySQL er langt den mest brugte database til det formål som FaceBook bruger den til.

Oracle og DB2 er ganske rigtigt gode til store databaser.

Men deres styrke er til store transaktions databaser. Med fokus på ACID.

FaceBook har nogle helt andre behov. De bruger MySQL til data storage. Men de er ikke transaktionsorienteret overhovedet.

Jeg kan f.eks. ikke se nogen grund til at FaceBook ikke skulle kunne køre med read uncommitted isolation level.

Et e-business site som Amazon, EBay etc. har derimod behov for seriøs transaktions styring.
Gravatar #52 - arne_v
7. feb. 2010 21:17
Windcape (32) skrev:
Og Google bruger ikke MySQL, det er en vandrehistorie.


Sludder.

Google er kunde hos MySQL.

http://www.mysql.com/customers/view/?id=555

De bruger naturligvis ikke MySQL til indekseringen af WWW.

Men de bruger MySQL til Adwords, som faktisk er der hvor Google får pengene ind.

Windcape (32) skrev:

Hvis de har specielle behov, kan de jo altid selv rette i MySQL's kildekode, og tilpasse det til deres specifikke server farm.
Den lader vi lige stå lidt.

De få folk der har kompetancer til det er typisk ansat hos et firma som udvikler databaser. Nej, at MySQL er open source har minimal betydning for dens business value.


Ja - lad den endelig stå, fordi det er jo rigtigt.

#36 har allerede givet et link.
Gravatar #53 - arne_v
7. feb. 2010 21:23
Windcape (39) skrev:

Jeg mangler ihvertfald tålmodighed til at klare de 5-10 sekunder længere tid JEE kan være om at deploy og opdatere (hvis der ikke er cache bugs som f.eks. i defualt Tomcat).

Og for specielt PHP udviklere vil det føles utrolig langsomt at skulle arbejde med JEE.


Jeg skal ikke kunne afvise, at der er nogle PHP udviklere som er utålmodige i de sekunder en app reload tager.

Men når de får et arbejde ude i den virkelige verden, så opdager de at det er et aldeles ligegyldigt problem.
Gravatar #54 - arne_v
7. feb. 2010 21:40
Windcape (43) skrev:
Modsat til myplacedk har jeg faktisk arbejdet med de teknologier jeg beskriver (i længere perioder end 2 timers hobbyarbejde), og giver dem kritik ud fra mine personlige erfaringer.


Windcape (45) skrev:
Men hvad jeg siger at du ikke har nok erfaring til at kunne sammenligne det med de andre teknologier, og derfor skulle lade være med at brokke sig over at os som HAR arbejdet i årevis med .NET/PHP/etc. giver kritik af J2EE.


Hmm.

1) Så vidt vides er du datamatiker studerende. Det er der ikke noget galt i. Men de mange års erfaring lyder måske lidt hult. Din erfaring må vel være skole opgaver, hygge opgaver og evt. freelance opgaver.

2) Nu fremgår det af anden tråd at myplacedk faktisk har arbejdet en del med PHP:

http://newz.dk/forum/programmering/datamatiker-og-...
http://newz.dk/forum/programmering/datamatiker-og-...

Hvilket du jo ville have vist hvis du deltog i den tråd.

http://newz.dk/forum/programmering/datamatiker-og-...
Gravatar #55 - Windcape
7. feb. 2010 22:50
arne_v (52) skrev:
Sludder.

Google er kunde hos MySQL.
Google benytter jo stort set alle teknologier der findes på markedet. Vandrehistorien er at de bruger den til deres søgemaskine.

Til søgemaskinen benytter de BigTable
Gravatar #56 - arne_v
7. feb. 2010 22:55
Windcape (55) skrev:
Google benytter jo stort set alle teknologier der findes.


Mange. Jeg kender dog ikke noget til at de bruger .NET eller Ruby.

Windcape (55) skrev:
Jeg tænkte mere på at google benytter BigTable og ikke MySQL til deres søgemaskine.


Jo. Men #31 bemærkede jo kun at Google brugte MySQL. Han påsted ikke at det var data bag search engine der var i MySQL.
Gravatar #57 - Windcape
7. feb. 2010 23:01
#54

Hvis du mener at man skal være mere end blot ansat som konsulent hos en virksomhed for at kunne danne sig en mening omkring en teknologi man har brugt 8 timer om dagen i 2-3 år, så ved jeg virkelig ikke hvad jeg skal sige.

Faktum er at jeg har arbejdet med PHP, Java og C# i årevis, og prøvet flere underliggende teknologier af inden for de sprog, end de fleste normale udviklere med en 8-17 arbejdsdag inden for det samme felt.

At alt erfaring ikke er dannet i en produktionsvirksomhed er ikke en dårlig ting, da man får bedre muligheder til at fordybe sig i teknologien når der ikke står en chef med en deadline over hovedet på en.

Jeg vil mene jeg har nok erfaring med J2EE, PHP, ASP.NET og andre web-relaterede teknologier til at have en seriøs mening.


Gravatar #58 - Windcape
7. feb. 2010 23:10
arne_v (56) skrev:
Mange. Jeg kender dog ikke noget til at de bruger .NET eller Ruby.
Jeg mener at huske at de har brugt Ruby on Rails til nogle mock ups.

Derudover har til APIs til både Ruby og .NET, så de har sikkert et par udviklere (*host* Jon Skeet *host*) som kan finde ud af .NET udvikling.

Jeg møder også utrolig få udviklere i dag som ikke har arbejdet med C# på et eller andet plan. Det er kun de mest anti-Microsoft fanatikere som nægter at stifte kendskab med sproget af religiøse årsager.

Det er sundt for alle udviklere at lære flere sprog, frameworks og teknologier. Så kan man jo danne sig et billede over hvilke teknologier man synes er bedst, og hvilke der er træls at arbejde med.

Jeg kan generelt ikke lide ideen i Java til webudvikling, jeg synes J2EE er langsomt at udvikle med og for meget konfiguration over konvention.

Det er et faktum at J2EE er langsommere at kompilere og deploy end ASP.NET og PHP, grundet hele konceptet i Applikations Servers og WAR pakker.

Det burde være næsten selvsigende at det at man overhovedet skal deploy (i stedet for at redigere direkte i test miljøet) er langsommere.

At myplacedk benægter dette, er mig fortsat en gåde.
Gravatar #59 - arne_v
8. feb. 2010 01:50
Windcape (57) skrev:

Hvis du mener at man skal være mere end blot ansat som konsulent hos en virksomhed for at kunne danne sig en mening omkring en teknologi man har brugt 8 timer om dagen i 2-3 år, så ved jeg virkelig ikke hvad jeg skal sige.

Faktum er at jeg har arbejdet med PHP, Java og C# i årevis, og prøvet flere underliggende teknologier af inden for de sprog, end de fleste normale udviklere med en 8-17 arbejdsdag inden for det samme felt.


8 timer om dagen i 2-3 år for 3 teknologier er 6-9 år ialt.

Windcape (57) skrev:
At alt erfaring ikke er dannet i en produktionsvirksomhed er ikke en dårlig ting, da man får bedre muligheder til at fordybe sig i teknologien når der ikke står en chef med en deadline over hovedet på en.


Det pulveriserende erhvervsliv er ikke som sådan et bedre sted at lære end uddannelse og DIY.

Men det er et anderledes sted at lære.

For uddannelses og DIY vil det normalt gælde at:
- projektet og kode mængden er lille
- det er udvikling fra scratch
- man har meget stor indflydelse på projektets indhold
- det er nyere teknologier

For erhverslivet vil det ofte gælde at:
- projektet og kode mængden er stor
- det er videreudvikling af noget eksisterende
- man har meget lille indflydelse på projektets indhold
- det indgår en masse ældre teknologier

Windcape (57) skrev:
Jeg vil mene jeg har nok erfaring med J2EE, PHP, ASP.NET og andre web-relaterede teknologier til at have en seriøs mening.


Du har absolut erfaring til at du kan komme med nogle seriøse betragtninger.

Ellers gad vi formentligt slet ikke svare dig!

Men der er lidt forskel på at have erfaring nok til at folk bør tage en seriøst og så have erfaring nok til at man ikke behøver tage andre seriøst fordi man har så meget mere erfaring end dem.


Gravatar #60 - arne_v
8. feb. 2010 01:54
Windcape (58) skrev:
Jeg mener at huske at de har brugt Ruby on Rails til nogle mock ups.

Derudover har til APIs til både Ruby og .NET, så de har sikkert et par udviklere (*host* Jon Skeet *host*) som kan finde ud af .NET udvikling.


Jeg er ikke det fjerneste i tvivl om at Google har folk der kan kode i hvad som helst. Men det store antal begavede hoveder de hyrer, så må det være sådan.

Windcape (58) skrev:
Jeg møder også utrolig få udviklere i dag som ikke har arbejdet med C# på et eller andet plan. Det er kun de mest anti-Microsoft fanatikere som nægter at stifte kendskab med sproget af religiøse årsager.


C# er et mainstream sprog idag. Et eller andet sted mellem 90 og 99% af yngre udviklere har prøvet det.

Gravatar #61 - arne_v
8. feb. 2010 01:56
Windcape (58) skrev:
Det er sundt for alle udviklere at lære flere sprog, frameworks og teknologier.


Jeg er helt enig i konklusionen.

Windcape (58) skrev:
Så kan man jo danne sig et billede over hvilke teknologier man synes er bedst, og hvilke der er træls at arbejde med.


Men jeg er ikke helt enig i begrundelsen.

I langt over 95% af tilfældene er sprog og teknologi givet ikke noget som skal vælges.

Men man kan lære meget af et sprog eller en teknologi som også i et vist omfang kan overføres til andre sprog og teknologier.

Gravatar #62 - arne_v
8. feb. 2010 02:03
Windcape (58) skrev:
Jeg kan generelt ikke lide ideen i Java til webudvikling, jeg synes J2EE er langsomt at udvikle med og for meget konfiguration over konvention.


Hvis vi taler om traditionelle Java web apps (Struts 1, JSF etc.), så er de ikke ligefrem kendt som værende letvægts framework.

Men der er mange alternativer.

Wicket

Grails

GWT (ikke helt sammenligneligt, men bruger man GWT server side også, så er det lidt en erstatning)

Windcape (58) skrev:

Det er et faktum at J2EE er langsommere at kompilere og deploy end ASP.NET og PHP, grundet hele konceptet i Applikations Servers og WAR pakker.

Det burde være næsten selvsigende at det at man overhovedet skal deploy (i stedet for at redigere direkte i test miljøet) er langsommere.


Nu kan du også i nogen tilfælde redigere direkte med Java EE - der er f.eks. en del web containere som autodetecter ændringer i JSP filer.

Men den rigtige måde er at builde sine arkiver og så deploye dem.

Det giver en separation mellem udvikling og forskellige server implementationer.

Engang hvor du har oceaner af tid kan du prøve at fordybe dig lidt i Java EE arkiver og deres deployment. Det er nemlig ikke kun .war filer men også -ejb.jar filer, .rar filer og .ear filer.
Gravatar #63 - arne_v
8. feb. 2010 03:29
arne_v (51) skrev:

MySQL er langt den mest brugte database til det formål som FaceBook bruger den til.

Oracle og DB2 er ganske rigtigt gode til store databaser.

Men deres styrke er til store transaktions databaser. Med fokus på ACID.

FaceBook har nogle helt andre behov. De bruger MySQL til data storage. Men de er ikke transaktionsorienteret overhovedet.

Jeg kan f.eks. ikke se nogen grund til at FaceBook ikke skulle kunne køre med read uncommitted isolation level.


Strengt taget bruger FaceBook slet ikke en MySQL database men derimod 900 MySQL databaser.

Det kan de gøre fordi data er så uafhængige.

Og nej - de bruger naturligvis ikke 2PC/XA.
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login