Dwarf Fortress adalah gim legendaris yang mensimulasikan dunia fantasi secara detail, dan pemain (dalam salah satu mode) dapat membangun dan mengelola penyelesaian (benteng) gnome (kurcaci). Sudah cukup banyak yang ditulis tentang permainan, jadi saya tidak akan menjelaskan lebih lanjut. Adalah penting bahwa karena ukuran besar dunia game dan detail simulasi yang tinggi, game ini cukup menuntut sumber daya - baik prosesor dan memori / cache. Permainan ini mendukung ketiga sistem operasi utama.
Ada proyek DFHack untuk gim, yang bergerak dalam rekayasa balik struktur data gim dan memungkinkan Anda membuat plugin dan skrip di C ++, Lua atau Ruby.
Saya adalah penulis aplikasi dan kode server yang menyertainya yang sepenuhnya mengimplementasikan antarmuka pengguna game pada perangkat iOS. Artinya, pengguna menempatkan game asli, plug-in dan aplikasi, dan dapat bermain dari jarak jauh dari perangkat seluler dengan segala fasilitasnya.
Server dapat diinstal di rumah dan disewa dari salah satu penyedia cloud. Dan lahirlah gagasan penelitian ini - pertama, untuk mengetahui layanan cloud mana yang lebih cocok dan dapat direkomendasikan kepada pengguna, dan kedua, benar-benar membandingkan kinerja server menggunakan sesuatu yang berbeda dari server web dan utilitas khusus .
Untuk pengujian, versi Dwarf Fortress / DFHack 0.43.03-r1 digunakan. Saya memiliki gambar publik untuk Docker, termasuk gim itu sendiri dan versi minimum DFHack (serta kode server itu sendiri untuk gim jarak jauh, tetapi dalam kasus ini tidak digunakan). Sebuah skrip ditulis dalam Lua untuk menjalankan tes dan mengirimkan hasilnya ke server web. Juga untuk otomatisasi, skrip berikut digunakan, ditentukan dalam data pengguna saat mengkonfigurasi server. Artinya, Anda hanya perlu membuat server, tunggu sampai hasilnya tiba dan hapus.
Penyedia berikut diuji: Digital Ocean, Amazon Lightsail, Amazon EC2, Vultr, Linode, Google Compute Engine, dan Macbook Pro Akhir 2013 2Ghz Core i7.
Jika layanan cloud mendukung pembuatan server dengan Docker dalam satu klik, maka fitur ini digunakan, jika tidak, maka versi Ubuntu 16.04 dipilih. Dengan demikian, hanya Vultr yang tidak menggunakan Ubuntu, tetapi CentOS 7. Untuk server dengan memori lebih dari 2GB, file swap tidak digunakan. Untuk Google Compute Engine mikro dan kecil, drive SSD dipilih.
Opsi server termurah dipilih, pertama, karena lebih menarik bagi mereka yang akan menggunakannya untuk permainan, dan kedua, karena Dwarf Fortress masih menggunakan hanya satu inti prosesor untuk simulasi dan (dalam versi yang ditentukan) Aplikasi 32 bit.
Tes
Proses bermain Dwarf Fortress terdiri dari dua bagian - generasi dunia dan cerita awal, di mana Anda dapat menentukan ukuran dunia dan panjang cerita (dan parameter lainnya), dan proses permainan itu sendiri. Secara konsisten, tanpa memulai ulang game, tes berikut dilakukan:
- Menghasilkan dunia dengan ukuran yang sangat kecil dengan sejarah yang sangat panjang.
- Menghasilkan dunia ukuran besar dengan sejarah singkat.
- Gameplay. Digunakan salah satu dari "grup" (ketika banyak orang bermain pada gilirannya) menyimpan - glovedloved (Anethadefíni, 254). Pilihannya tidak begitu penting, selama ada benteng yang cukup besar, dan tidak ada yang secara otomatis menghentikan permainan tidak terjadi selama tes, yang berlangsung selama 20 hari dalam game.
Tes terakhir adalah yang paling penting, pertama, karena itu adalah gameplay itu sendiri, yang mana semuanya terjadi, dan kedua, itu kurang dipengaruhi oleh kebetulan daripada generasi dunia (di mana peradaban, pemukiman, lanskap, peristiwa dan sebagainya).
Hasil
Inilah jadwalnya. Waktu eksekusi dalam detik, masing-masing, lebih sedikit lebih baik. Harga bulanan dalam dolar AS.

Penyebaran yang tidak wajar dalam hasil tes pertama segera terlihat, saya tidak tahu persis apa yang terhubung dengan ini. Saya percaya, sebagian dengan caching, sebagian dengan kinerja yang buruk dari server yang baru dibuat karena beberapa alasan. Oleh karena itu, hasil diurutkan berdasarkan tes terakhir, yang, seperti disebutkan, adalah yang paling penting. Tes kedua juga umumnya berkorelasi dengan hasil tes ketiga.
Terlepas dari tempat pertama yang diharapkan pada server EC2 c4.large, yang terkait dengan kinerja yang dioptimalkan tipe C4, Amazon Lightsail ternyata yang tercepat, yang, mengingat harganya, merupakan kejutan yang cukup menyenangkan. Ini diikuti oleh hasil yang hampir sama dari server prosesor tunggal dan laptop Google. Lebih jauh, Vultr yang sebelumnya tidak dikenal, Linode, yang saya harapkan lebih banyak, ternyata baik. Audience Award diberikan ke Digital Ocean - lebih lambat, tetapi yang termudah dan tercepat untuk digunakan. Server EC2 m3.medium yang agak mahal ternyata lambat, dan server GCE termurah benar-benar buruk bahkan dengan SSD, saya tidak mendapatkan hasil pengujian server ukuran mikro.
Secara terpisah, harus dikatakan tentang contoh EC2 tipe T2. Fitur mereka adalah bahwa dengan server sederhana menerima kredit prosesor (hingga batas tertentu), yang dihabiskan di bawah beban. Membelanjakan pinjaman, server berjalan pada kapasitas penuh, ketika mereka kehabisan - kinerja turun menjadi 20%. Di satu sisi, itu sangat cocok untuk keperluan kita - orang-orang, terutama dari perangkat seluler, tidak bermain terus menerus sepanjang hari, ditambah simulasi dalam permainan berhenti ketika seseorang melakukan sesuatu pada menu, dll., Jadi ini adalah pilihan yang baik untuk mendapatkan kinerja tinggi dengan sedikit uang. Di sisi lain, ini adalah kinerja "palsu", jadi saya tidak memasukkan contoh jenis ini dalam pengujian agar tidak membingungkan siapa pun. Dari pengalaman, selama ada pinjaman, mereka cukup cepat, ketika mereka kehabisan - sangat lambat.
Itu saja.