• 22-11-2015, 20:10:06
    #10
    Sizin hpc sistemleri araştırmanız gerek,

    windows hpc
    https://technet.microsoft.com/en-us/...=ws.10%29.aspx
    veya
    https://technet.microsoft.com/en-us/library/cc514029
  • 23-11-2015, 01:35:52
    #11
    Eğer oyun web tabanlıysa node.js veya Angular.js + Websocket ile çok çok çok rahat ve çok az kaynak kullanarak yazıp yayınlayabileceğiniz bir iş için Microsoft gibi saçma bir şirketin çağdışı altapısını kullanmanıza gerek yok bana göre. Şu an bunları konuşuyor olmamızın tüm nedeni Microtost'un yaptığı her işte kendi standartlarını getirmeye çalışmak gibi fantazileri olmasıdır.

    Mesela: https://github.com/huytd/agar.io-clone

    Emin olun microtost teknolojilerini adam etmeye çalışmaktan daha az enerji harcayacaksınız. Örnek:
    https://www.youtube.com/watch?v=kYcNJQ3Y6Sg
  • 23-11-2015, 14:35:12
    #12
    victories adlı üyeden alıntı: mesajı görüntüle
    iptables adlı üyeden alıntı: mesajı görüntüle
    Eğer oyun web tabanlıysa node.js veya Angular.js + Websocket ile çok çok çok rahat ve çok az kaynak kullanarak yazıp yayınlayabileceğiniz bir iş için Microsoft gibi saçma bir şirketin çağdışı altapısını kullanmanıza gerek yok bana göre. Şu an bunları konuşuyor olmamızın tüm nedeni Microtost'un yaptığı her işte kendi standartlarını getirmeye çalışmak gibi fantazileri olmasıdır.

    Mesela: https://github.com/huytd/agar.io-clone

    Emin olun microtost teknolojilerini adam etmeye çalışmaktan daha az enerji harcayacaksınız. Örnek:
    https://www.youtube.com/watch?v=kYcNJQ3Y6Sg
    Merhabalar,

    HPC araştırdım fakat pek birşey anladığım söylenemez.

    Oyun web tabanlı değil, ios&android için geliştiriyorum. Microsoft hakkında söylediklerinize katılıyorum ayrıca.

    Node.JS olmayacak, daha doğrusu .js kullanmayacağım. Kendi sistemimde test ettiğimde 20k dan sonra tcp port hatası veriiyor. Benimde anlık en az 10k-100k tcp bağlantısı kaldıracak sisteme ihtiyacım var.

    Supercell sorunu bu şekil çözmüş;

    aws.amazon.com/solutions/case-studies/supercell/

    Bu sistem türkiyede yokmu ? Hiç gerekmiyormu ?

    Dediğim gibi kolaya kaçsam her server 10k kişi kaldıracak şekilde yapardım 10 sunucu kiralardım, güzel de çalışırdı ama bu şekilde istemiyorum ve çok sorun çıkartır bu şekilde.
  • 23-11-2015, 21:09:56
    #13
    çok güzel bir hata almışsın aslında sana bir fikir vermeli o aldığın hata. tcp header'ında sadece 16bit'lik port alanı vardır. bu da seni bir nic üzerinde en fazla 64k port kullanabilirsine kısıtlar. oyun sunucun tek port dinleyecek ama arkadaki child'larla bağlantıları kaç tane nic kullanarak yapacaksın ? network temelini anlatmak için en kolay yöntem borudur, bildiğin su borusu. sen istiyorsun ki benim büyük bir haznem olsun, tek şebeke su borusu ona bağlansın, ben arkada istediğim kadarı ufak boru çıkartayım. haznen tamamen su dolduğunda ne olacak, yeni su alamayacaksın.

    öncelikle işletim sistemini iyi konfigure etmen lazım. kernel'in onlarca parametreleri vardır. her tcp için ayırdığı ram miktarından tut da, askıda kalan paketin ne kadar süre sonra düşeceğine kadar. çıkış için farklı portlar kullanılıyorsa, port aralığının belirlenmesi, gerekiyorsa daha fazla ethernet kartı eklemen mesela. aynı zamanda ethernet kartlarının kernel parametrelerini daha iyi düzenlemen gerekir. böyle bir uygulama için kullanman gereken diller sıralamasıyla c++ > go objective c > c > boo > js > lua ....... > java

    dikkat edersen en baştakiler programlama dilleri, sonrakiler scripting. java'nın bir halt olduğunu hala sanmıyorum. gereksiz.

    HPC senin için uygun değildir.

    örnek verdiğin sistemi yapanın dünyanın en değerli ilk 15 markasından biri olduğunun farkındasındır umarım. yanlış anlama ama seninki biraz şuna benzedi. "2 kişi garajında bir site kurmuş, dünyaları götürüyor, yok mu bunu türkiye'de yapan."
  • 24-11-2015, 03:34:15
    #14
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Agar bu işi şu şekilde ayarlamış sanırım.

    birden fazla sunucu var ve bu sunucuların load durumunu belirten bir web servis yazılımı çalışıyor.http://ip/status gibi düşün.
    Client ilk defa bir request gönderdiğinde m.agar.io loadı düşük olan bir sunucunun ip adresi dönderiliyor ve client o sunucuya bağlanıyor.

    Önerilerim:
    Eğer transaction bir olay yoksa RDBMS kullanmak delilik olur.
    Data tipine göre redis yada mongo kullanılabilinir çare nosql de aranmalı.
    bknz redis için https://github.com/twitter/twemproxy

    Dil olarak yazabildiğim için değil kullanıp memnun kaldığım için nodejs yada go önereceğim.
    golang öğrenme süreci zor fakat öğrenip yazdıkça farkı anlıyorsunuz.concurrency olayı çok iyi.channel ile haberleşmek çok kolay.
    bknz: http://marcio.io/2015/07/handling-1-...e-with-golang/
    nodejs de uygulamayı çalıştırdığınızda single thread sıkıntısı var cluster ile çözmelisiniz.bknz: "node js cpu intensive tasks"
    websocket kullanacaksınız socketcluster'a bakabilirsiniz.
    Ezbere çözüm olmuyor bu tür işlerde.Sürekli tcp bağlantısı yerine websocket kullanılabilinir mesajlaşma pub/sub olabilir vs vs..
    Aşağıdaki videoyu mutlaka izleyin scability üzerine çok güzel bir konuşma.
    sysctl.conf ve limits.conf kernel tuning için gerekli.

    Bahsettiğiniz bağlantı sayısında tüm uygulamaların ayarlarının optimize edilmesi gerekir.


    https://www.youtube.com/watch?v=of2NL2csEEo

    https://www.google.com.tr/webhp?sour...#q=sysctl.conf
  • 24-11-2015, 10:25:17
    #15
    foo adlı üyeden alıntı: mesajı görüntüle
    çok güzel bir hata almışsın aslında sana bir fikir vermeli o aldığın hata. tcp header'ında sadece 16bit'lik port alanı vardır. bu da seni bir nic üzerinde en fazla 64k port kullanabilirsine kısıtlar. oyun sunucun tek port dinleyecek ama arkadaki child'larla bağlantıları kaç tane nic kullanarak yapacaksın ? network temelini anlatmak için en kolay yöntem borudur, bildiğin su borusu. sen istiyorsun ki benim büyük bir haznem olsun, tek şebeke su borusu ona bağlansın, ben arkada istediğim kadarı ufak boru çıkartayım. haznen tamamen su dolduğunda ne olacak, yeni su alamayacaksın.

    öncelikle işletim sistemini iyi konfigure etmen lazım. kernel'in onlarca parametreleri vardır. her tcp için ayırdığı ram miktarından tut da, askıda kalan paketin ne kadar süre sonra düşeceğine kadar. çıkış için farklı portlar kullanılıyorsa, port aralığının belirlenmesi, gerekiyorsa daha fazla ethernet kartı eklemen mesela. aynı zamanda ethernet kartlarının kernel parametrelerini daha iyi düzenlemen gerekir. böyle bir uygulama için kullanman gereken diller sıralamasıyla c++ > go objective c > c > boo > js > lua ....... > java

    dikkat edersen en baştakiler programlama dilleri, sonrakiler scripting. java'nın bir halt olduğunu hala sanmıyorum. gereksiz.

    HPC senin için uygun değildir.

    örnek verdiğin sistemi yapanın dünyanın en değerli ilk 15 markasından biri olduğunun farkındasındır umarım. yanlış anlama ama seninki biraz şuna benzedi. "2 kişi garajında bir site kurmuş, dünyaları götürüyor, yok mu bunu türkiye'de yapan."
    Hocam çok güzel anlatmışsınız tebrik ediyorum, fakat son cümleye katılmıyorum. Adamlar işin mantığı çözmüş ve günlük min $6m kazanan bir şirket. Ve sunuculara istediği kadar yatırım yapabilirler ki, AWS kullanıyorlarmış. Nasıl olduğu bilsem bende aynı amazon'dan o sistemi kullanmak isterim. Ayrıca kıskandığım dan da değil, Supercell'in değerli bir marka olduğunu sanmıyorum, blizzard, ubi gibi üstadlar varken. Onlar hazır sistemi kullanmışsa ben de kullanıp yapabilirim. Onlar Java ile yazıp 30ms ping varsa ben C# ile yazarım 40ms olur, turn based olmasaydı C++'da yazardım kesinlikle veya Go öğrenirdim. WebTekno oyunları Go ile yazılıyormuş UDP tabanlı. Ben TCP kullanıyorum.

    Hiç olmadı user limit getiririm, oyuna girmek için sıraya atar artık bu şekilde çözülür ama kolay'a kaçmak istemiyorum açıkcası. Sizlerde R10 üyeleri işinde çok prof. olmuş kişilersiniz, dediğiniz her terimi anlayamıyorum maalesef. Tekrardan teşekkürler değerli yorumlarınız için...

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 10:25:17 -->-> Daha önceki mesaj 10:22:10 --

    S4l1h adlı üyeden alıntı: mesajı görüntüle
    Agar bu işi şu şekilde ayarlamış sanırım.

    birden fazla sunucu var ve bu sunucuların load durumunu belirten bir web servis yazılımı çalışıyor.http://ip/status gibi düşün.
    Client ilk defa bir request gönderdiğinde m.agar.io loadı düşük olan bir sunucunun ip adresi dönderiliyor ve client o sunucuya bağlanıyor.

    Önerilerim:
    Eğer transaction bir olay yoksa RDBMS kullanmak delilik olur.
    Data tipine göre redis yada mongo kullanılabilinir çare nosql de aranmalı.
    bknz redis için https://github.com/twitter/twemproxy

    Dil olarak yazabildiğim için değil kullanıp memnun kaldığım için nodejs yada go önereceğim.
    golang öğrenme süreci zor fakat öğrenip yazdıkça farkı anlıyorsunuz.concurrency olayı çok iyi.channel ile haberleşmek çok kolay.
    bknz: http://marcio.io/2015/07/handling-1-...e-with-golang/
    nodejs de uygulamayı çalıştırdığınızda single thread sıkıntısı var cluster ile çözmelisiniz.bknz: "node js cpu intensive tasks"
    websocket kullanacaksınız socketcluster'a bakabilirsiniz.
    Ezbere çözüm olmuyor bu tür işlerde.Sürekli tcp bağlantısı yerine websocket kullanılabilinir mesajlaşma pub/sub olabilir vs vs..
    Aşağıdaki videoyu mutlaka izleyin scability üzerine çok güzel bir konuşma.
    sysctl.conf ve limits.conf kernel tuning için gerekli.

    Bahsettiğiniz bağlantı sayısında tüm uygulamaların ayarlarının optimize edilmesi gerekir.


    https://www.youtube.com/watch?v=of2NL2csEEo

    https://www.google.com.tr/webhp?sour...#q=sysctl.conf
    Merhabalar,

    Go dilinin google tarafından yazıldığını, UDP ile real-time olarak çok iyi bir performans verdiğini duymuştum. WebSocket kullanmak istemiyorum, web tabanlı olmayacak. Web tabanlı olsa C++ 'da basit UDP server yapardım. JavaScript kullanarak server yazmak mantıklı gelmiyor nedense. Birçok agar.io serveri .js servere sahip ama gerçek agar.io sunucuları C++ ile çalışmakta ve performans ortada. (:

    Bazı terimleri anlayamadığımdan çok birşey yazamıyorum, dediklerinizi araştırıyorum yavaştan. Teşekkürler...