HHVM

From mediawiki.org
This page is a translated version of the page HHVM and the translation is 82% complete.
Outdated translations are marked like this.
Daha kısa bir açıklama için HHVM/Hakkında ve Aralık 2014 blog gönderisini HHVM, "Vikipedi'yi iki kat daha hızlı düzenlemeyi nasıl yaptığı", faydaları ve dağıtım çalışmalarına bir bakış.
Eylül 2017'de Facebook, HHVM'nin gelecekte PHP uyumluluğu hedeflemeyeceğini duyurdu.[1] Tartışma sonrası[2] WMF, WMF üretim kümesini PHP 7'ye geçirmek için bir plan kabul etti. HHVM desteği MediaWiki'den düşürüldü. görev T176209 ve görev T192166 sayfalarına bakın.

HHVM, 2014 yılında Wikimedia sunucularında dağıtılan bir PHP yorumlama aracıdır (somut olarak PHP bayt kodunu çalışma zamanında yerel talimatlarla derleyen sanal bir makinedir) ve yükleme süresini azaltır: oturum açtığınızda görüntülediğiniz tüm sayfaları ve oturum açmış olsanız da olmasanız da düzenlediğiniz sayfaları kaydetmek için.

Yol haritası

HHVM web sitelerinin MediaWiki (PHP ile yazılmış) çalıştırması için yeni bir yoldur. Bazen tam adı HipHop Sanal Makinesi ile bilinir ve tam zamanında bir derleyiciye (JIT) sahiptir. HHVM, oturum açmış kullanıcılar için sayfa görüntülemeyi hızlandırmalı ve ayrıca düzenlenmiş sayfaların tüm kullanıcılar için kaydedilmesini hızlandırmalıdır.

Bu sayfa MediaWiki'de WikHop destekli HipHop desteği ve Wikimedia üretim vikilerine konuşlandırılmasıyla ilgili.

Tarihsel olarak, HipHop derleyicisi Facebook tarafından dili hızlandırmak amacıyla PHP kodunu C++ derlemeyi içeren bir projeydi. Facebook o zamandan beri bu projeyi terk etti ve şimdi geliştirme çabaları bunun yerine HHVM'nin kendisine odaklanıyor.

İşte 2014 yılında HHVM'yi üretim kümesine dağıtmanın genel planı:

  • Beta Kümesine dağıtım (şu anda devam eden çalışma, diğer çalışmalara paralel olarak) Yes Yapıldı
  • 21 Temmuz Haftası: üretimde birkaç işçiye dağıtım Yes Yapıldı
  • test.wikipedia.org uygulama sunucusuna konuşlandırma Yes Yapıldı
  • Uygulama sunucularının bir kısmına kısmi dağıtım sağlayan Varnish modülünü konuşlandırın Yes Yapıldı
  • Az sayıda uygulama sunucusuna sınırlı dağıtım Yes Yapıldı
  • Çoğu sunucu HHVM kullanana kadar dağıtımı daha fazla uygulama sunucusuna hızlandırın Yes Yapıldı
  • Hizmetlerin geri kalanına dağıtım Yes Yapıldı

HHVM çalışması

Phabricator: Açık görevler, Tüm görevler.

Gerekçe

Yanıt süresindeki küçük gecikmelerin (örneğin saniyenin yarısının) bile web kullanıcısının tutulmasında keskin düşüşlere neden olabileceği iyi çalışılmış bir olgudur.[3][4][5][6] Sonuç olarak, Google ve Facebook gibi popüler web siteleri, site performans girişimlerine büyük ölçüde yatırım yapar ve sonuç olarak kısmen popüler kalır. Eskiden popüler siteler (Friendster gibi) bu konulara dikkat edilmemesinden dolayı acı çekti.[7][8] Vikipedi ve kardeş projeleri, hareketin misyonunu sürdürmesi için kullanılabilir ve duyarlı kalmalıdır.

Facebook, büyük bir PHP kullanıcısı olarak bu sorunu fark etti ve bir çözüme büyük miktarda [9] yatırım yaptı: HHVM, PHP bayt kodunu çalışma zamanında yerel talimatlara derleyen sanal bir makine, Java ve C# tarafından hız avantajlarını elde etmek için kullanılan strateji. Bunun sitelerimizde de büyük performans iyileştirmeleri sağlayacağından eminiz.

HipHop son kullanıcılarımız için ne yapıyor?

MediaWiki, çalışma zamanında yorumlanmış bir dil olan PHP'de yazılmıştır. Birisi bir sayfayı her görüntülediğinde bu PHP kodunu çalıştırmanın yükü, bu PHP'yi çalıştırarak oluşturulan HTML'yi önbelleğe alan Varnish gibi bir yazılım çalıştıran önbellek sunucularının kullanımını gerektirir. Bir sayfanın her görüntülendiğinde PHP'nin çalışması gerekmez. Bu önbellekler yalnızca oturum açmamış kullanıcılara sunulur.[10][11] Önbellekten etkilenmeyen ve bu nedenle PHP kodunun çalışma süresinden etkilenen eylemler şunları içerir:

  • Giriş yaparken görüntülediğiniz tüm sayfalar.
  • Giriş yapmış olsanız da olmasanız da düzenlediğiniz sayfaları kaydetme.

Bu nedenle, MediaWiki'nin PHP kodu için harcanan süreyi azaltmak için yapabileceğimiz herhangi bir işlem, sitemizin oturum açma sürelerini, oturum açmış tüm kullanıcılarımız ve anonim olarak düzenleyen herkes için de azaltacaktır.

HipHop, mevcut yorumcumuzdan daha hızlı, daha verimli bir PHP tercümanı olarak yazılmıştır (Zend). Umudumuz, HipHop'u Zend'in yerine uygulayarak, kullanıcılarımızın sitelerimizin performansında somut bir artış fark edeceğini umuyoruz.

HipHop ile ilgili geliştirme çalışmalarımız MediaWiki geliştiricilerini nasıl etkiliyor?

İlk çalışma alanımızda, Mart 2014'ün sonunda bitirilmesi nedeniyle, herkesin Zend yerine Beta Kümesi'nde HipHop kullanmayı seçebilmesini umuyoruz. Bu, herhangi bir zamanda devre dışı bırakılabilecek tamamen katılım esasına göre olacaktır. Bu, MediaWiki Core ekibinin sadece teorik performans artışlarını tahmin etmek yerine, mevcut test altyapımızı kullanarak Hipend'in performansını Zend'in performansına göre ölçmesini sağlayacaktır. Ayrıca, HipHop'u MediaWiki ile uyumlu hale getirmek için ne kadar çalışma gerektiğini görmemize yardımcı olacak bir geliştirme ortamı yaratacak ve bu nedenle HipHop'un tam bir yedek olarak üretime geçmesinin ne kadar süreceğini tahmin edelim.

Diğer MediaWiki geliştiricileri için, HipHop'un bu şekilde konuşlandırılmasının sonucu, Beta Kümesini bir test ortamı olarak kullanıyorlarsa, yamalarının isterse Zend yerine HipHop kullanarak nasıl performans gösterdiğini test etmeyi önemsiz bulacaklarıdır. Ancak, çalışmamızın aksamasını en aza indirmek için, altyapının tercih edilen doğası, geliştiricilerin, istedikleri takdirde gelecekteki HipHop göçünden tamamen agnostik geliştirmeye devam edebilmelerini sağlayacaktır.

Ayrıca bakınız

Kaynakça ve dipnotlar

  1. Max Wang, "HHVM'nin geleceği"
  2. "HHVM ve Zend uyuşmazlığı" - wikitech-l
  3. [$radar "Bing ve Google Agree: Yavaş Sayfalar Kullanıcı Kaybediyor"] - Brady Forrest - O'Reilly Radar
  4. [$glinden Greg Linden's blog: "Marissa Mayer at Web 2.0"] - Marissa Mayer, Google'ın yanıt süresinde 0,4 saniyeden 0,9 saniyeye bir değişikliğin gelir ve trafikte% 20'lik bir düşüşe neden olduğunu belirtti.
  5. "Bing and Google Agree: Slow Pages Lose Users" - Brady Forrest - O'Reilly Radar
  6. Greg Linden's blog: "Marissa Mayer at Web 2.0" - Marissa Mayer pointed out that a change from 0.4 seconds to 0.9 seconds in response time from Google caused a 20% drop in revenue and traffic.
  7. "[$nytimes Wallflower at the Web Party]", New York Times, 15 Ekim 2006. Alıntı: "Kent Lindstrom, şimdi Friendster başkanı, kurulun şirketin bunalmış Web sitesinin yavaşlamasına neden olan teknik sorunları ele almadığını söyledi."
  8. "Wallflower at the Web Party", New York Times, October 15, 2006. Quote: "Kent Lindstrom, now president of Friendster, said the board failed to address technical issues that caused the company’s overwhelmed Web site to become slower."
  9. http://www.wired.com/wiredenterprise/2013/06/facebook-hhvm-saga/
  10. Tanımı gereği, oturum açmış olan kullanıcılara statik önbellekten sayfalar sunulamaz; çünkü kendilerine sunulan sayfa, sayfanın sağ üst kısmında kullanıcı adı gibi kullanıcıya özgü HTML içermelidir. Bu, maalesef, oturum açmanın sitelerimizin sizin için ne kadar iyi performans gösterdiği konusunda somut bir azalmaya neden olduğu bir durum yaratır.
  11. By definition, users that are logged in cannot be served pages from a static cache, as the page served to them must include user-specific HTML such as their username at the top right of the page. This, unfortunately, creates a situation where simply logging in causes a tangible decrease in how well our sites perform for you.