Latensi jaringan: 100Mbit vs. 1Gbit

11

Saya memiliki server web dengan koneksi 100Mbit saat ini dan penyedia saya menawarkan peningkatan ke 1Gbit. Saya mengerti bahwa ini mengacu pada throughput tetapi semakin besar paket, semakin cepat mereka dapat ditransmisikan juga, jadi saya akan mengharapkan sedikit penurunan dalam waktu respon (misalnya ping). Apakah ada yang pernah membandingkan ini?

Contoh (server 100mbit ke 100mbit) dengan beban 30 byte:

> ping server -i0.05 -c200 -s30
[...]
200 packets transmitted, 200 received, 0% packet loss, time 9948ms
rtt min/avg/max/mdev = 0.093/0.164/0.960/0.093 ms

Contoh (server 100mbit ke 100mbit) dengan beban 300 byte (yang di bawah MTU):

> ping server -i0.05 -c200 -s300
[...]
200 packets transmitted, 200 received, 0% packet loss, time 10037ms
rtt min/avg/max/mdev = 0.235/0.395/0.841/0.078 ms

Jadi dari 30 hingga 300 rata-rata. latensi meningkat dari 0,164 ke 0,395 - Saya berharap ini akan menjadi peningkatan yang lebih lambat untuk koneksi 1gibt ke 1gbit. Saya bahkan berharap 100mbit ke 1gbit menjadi lebih cepat, jika koneksi melalui switch yang pertama menunggu hingga menerima seluruh paket.

Pembaruan: Harap baca komentar untuk jawaban dengan cermat! Koneksi tidak jenuh, dan saya tidak berpikir bahwa peningkatan kecepatan ini akan menjadi masalah bagi manusia untuk satu permintaan, tetapi ini tentang banyak permintaan yang bertambah (Redis, Database, dll.).

Mengenai jawaban dari @LatinSuD :

> ping server -i0.05 -c200 -s1400
200 packets transmitted, 200 received, 0% packet loss, time 9958ms
rtt min/avg/max/mdev = 0.662/0.866/1.557/0.110 ms
Andreas Richter
sumber
Juga ada pengkodean yang berbeda (10b / 12b?) Dengan kartu ethernet dan kabel gbit baru sehingga dapat memiliki kinerja% 25 lebih tinggi di atas 10x (saat jenuh) vs 100Mbit mungkin?
huseyin tugrul buyukisik

Jawaban:

15

Satu-satunya cara latensi akan menurun adalah jika tautan 100Mbit saat ini jenuh. Jika tidak jenuh, Anda mungkin tidak akan melihat adanya perubahan.

Selain itu, asumsi Anda bahwa tautan 1Gbit akan dapat mendukung paket yang lebih besar salah. Ukuran paket maks ditentukan oleh MTU dari berbagai perangkat di sepanjang jalur yang diambil paket - dimulai dengan NIC di server Anda, hingga MTU komputer pelanggan Anda. Dalam aplikasi LAN internal (ketika Anda memiliki kontrol atas semua perangkat di sepanjang jalan), kadang-kadang mungkin untuk meningkatkan MTU, tetapi dalam situasi ini, Anda cukup banyak terjebak dengan MTU default 1500. Jika Anda mengirim paket lebih besar dari bahwa, mereka pada akhirnya akan terfragmentasi, dengan demikian sebenarnya menurunkan kinerja.

EEAA
sumber
2
"Dihormati" adalah kata kunci di sini. Saya baru saja memeriksa dua server dengan perangkat keras yang identik dan beban jaringan yang rendah, tetapi dengan kecepatan ethernet yang berbeda. Waktu ping rata-rata (lokal, dengan sumber ping pada subnet yang sama) turun dari 0,21 milidetik menjadi 0,17 milidetik. Ping server yang sama dari rumah, masing-masing memiliki waktu 53 milidetik. Ada terlalu banyak faktor di luar kendali penyedia Anda untuk menjadikannya peningkatan yang berharga.
Mike Renfro
1
+1 Secara teknis ada perbedaan, namun sepenuhnya tidak dapat dihargai kecuali aplikasi tertentu sangat sensitif terhadap latensi.
Chris S
Terima kasih untuk ujiannya! Dari 0,21 ke 0,17 adalah peningkatan 20%, yang sangat bagus. Saya tidak khawatir dengan ping dari rumah (50 ms) tetapi waktu permintaan tetap di penyedia. Kami men-tweak semua pemrosesan (CPU) dan non drive-IO (RAM / Cache / dll.) Ke max, jadi sekarang saya mempertanyakan berapa kecepatan jaringan antara server yang ditambahkan ke seluruh latensi sebagai total. Misalnya kita membuat ~ 20 Redis-Permintaan untuk satu server-permintaan. @ MikeRenfro: dapatkah Anda melakukan tes yang sama dengan loadsize yang lebih tinggi? Ping normal adalah 30byte, rata-rata. Redis sekitar 250. Saya harapkan perbedaannya tumbuh.
Andreas Richter
2
@Andreas; Saya pikir Anda benar-benar merindukan inti dari komentar itu. Itu peningkatan 40 nanodetik. Jumlah yang benar-benar tidak dapat digerakkan untuk manusia . Dan itu bukan angka kumulatif, tidak seperti setiap permintaan membutuhkan waktu 40 nanodetik lebih lama; hanya saja yang pertama akan jauh lebih cepat, jadi yang kedua akan berbaris tepat di belakangnya.
Chris S
1
@ Chris: pertanyaannya bukan tentang kelayakan - itu adalah pertanyaan jika seseorang pernah mengujinya dan Mike melakukannya. Ini juga bukan 40 nano-detik, ini mikro-detik , jadi Anda kehilangan poin dengan faktor 1000 ... pujian. Percayalah, bahwa saya tahu apa yang saya lakukan ... 20% akan cukup untuk membenarkan biaya tambahan.
Andreas Richter
12

YA gbit memiliki latensi lebih rendah, karena:

  • jumlah byte yang sama dapat ditransfer dalam waktu yang lebih cepat

TETAPI peningkatan hanya dapat diterima jika paket memiliki ukuran tertentu:

  • Paket 56 byte => hampir tidak ada transfer yang lebih cepat
  • Paket 1000 byte => transfer 20% lebih cepat
  • Paket 20000 byte => transfer 80% lebih cepat

Jadi jika Anda memiliki aplikasi yang sangat sensitif terhadap latensi (4ms vs 0.8ms, pulang pergi untuk 20kb) dan memerlukan paket yang lebih besar untuk ditransfer, daripada beralih dari 100mbit ke gbit dapat memberi Anda pengurangan latensi, meskipun Anda menggunakan jauh lebih sedikit daripada rata-rata 100mbit / s (= tautan tidak jenuh secara permanen).

Server (100mbit) -> Ganti (gbit) -> Server (100mbit):

size: 56 :: rtt min/avg/max/mdev = 0.124/0.176/0.627/0.052 ms
size: 100 :: rtt min/avg/max/mdev = 0.131/0.380/1.165/0.073 ms
size: 300 :: rtt min/avg/max/mdev = 0.311/0.463/2.387/0.115 ms
size: 800 :: rtt min/avg/max/mdev = 0.511/0.665/1.012/0.055 ms
size: 1000 :: rtt min/avg/max/mdev = 0.560/0.747/1.393/0.058 ms
size: 1200 :: rtt min/avg/max/mdev = 0.640/0.830/2.478/0.104 ms
size: 1492 :: rtt min/avg/max/mdev = 0.717/0.782/1.514/0.055 ms
size: 1800 :: rtt min/avg/max/mdev = 0.831/0.953/1.363/0.055 ms
size: 5000 :: rtt min/avg/max/mdev = 1.352/1.458/2.269/0.073 ms
size: 20000 :: rtt min/avg/max/mdev = 3.856/3.974/5.058/0.123 ms

Server (gbit) -> Ganti (gbit) -> Server (gbit):

size: 56 :: rtt min/avg/max/mdev = 0.073/0.144/0.267/0.038 ms
size: 100 :: rtt min/avg/max/mdev = 0.129/0.501/0.630/0.074 ms
size: 300 :: rtt min/avg/max/mdev = 0.185/0.514/0.650/0.072 ms
size: 800 :: rtt min/avg/max/mdev = 0.201/0.583/0.792/0.079 ms
size: 1000 :: rtt min/avg/max/mdev = 0.204/0.609/0.748/0.078 ms
size: 1200 :: rtt min/avg/max/mdev = 0.220/0.621/0.746/0.080 ms
size: 1492 :: rtt min/avg/max/mdev = 0.256/0.343/0.487/0.043 ms
size: 1800 :: rtt min/avg/max/mdev = 0.311/0.672/0.815/0.079 ms
size: 5000 :: rtt min/avg/max/mdev = 0.347/0.556/0.803/0.048 ms
size: 20000 :: rtt min/avg/max/mdev = 0.620/0.813/1.222/0.122 ms

= rata-rata pada beberapa server, pengurangan latensi 80% untuk ping 20kb

(Jika hanya salah satu tautannya adalah gbit, Anda masih akan memiliki pengurangan latensi 5% untuk ping 20kb.)

Andreas Richter
sumber
1
Dengan sebagian besar peralatan jaringan disimpan dan diteruskan, sebuah paket harus sepenuhnya diterima oleh switch / router sebelum diteruskan. Koneksi yang lebih cepat mengurangi waktu ini yang juga mengurangi latensi (selama koneksi tidak mendapatkan kecepatan dari beberapa tautan paralel).
Brian
1
Karena penjelasannya, jawaban ini adalah yang terbaik di halaman. Yang lain tampaknya ingin menjelaskan fakta ini dengan mengasumsikan kasus khusus - kinerja jaringan jarak jauh / banyak switch. Itu penting untuk dipertimbangkan, terutama mempertimbangkan keprihatinan OP (server web), tetapi jawaban ini juga menunjukkan seberapa besar perbedaan kecepatan switch dapat membuat dalam satu hop.
Tyler
3

Saya pikir Anda memiliki kesalahpahaman mendasar tentang latensi bandwidth dan "kecepatan". Kecepatan adalah fungsi bandwidth dan latensi. Sebagai contoh, pertimbangkan pengiriman data pada DVD yang dikirim ke seluruh negeri membutuhkan waktu 3 hari untuk sampai. Bandingkan dengan mengirim data melalui internet. Internet memiliki koneksi latensi yang jauh lebih rendah, tetapi untuk mencocokkan "kecepatan" koneksi dengan kiriman Anda harus menerima pada 9,6MB per detik ( contoh referensi dari sumber ini ).

Dalam kasus Anda meningkatkan ke bandwidth yang lebih tinggi akan memungkinkan Anda untuk melayani lebih banyak pengguna secara bersamaan tetapi tidak meningkatkan latensi untuk setiap pengguna.

Jim B
sumber
Itu salah - cukup bandingkan ping dengan payload berbeda yang di bawah MTU saat ini: server ping -i0.05 -c200 -s30 vs server ping -i0.05 -c200 -s300 ... Atau berbicara dalam contoh Anda: truk dengan 1 juta DVD akan melaju lebih lambat, karena lebih berat daripada yang memiliki 1 DVD.
Andreas Richter
2
@danreas waktu ping bukan keseluruhan cerita - jadi mari kita ambil demi argumen bahwa paket lebih rendah dari MTU tiba lebih cepat daripada paket di MTU penuh. Perbedaannya adalah Anda tidak memiliki semua data yang dimiliki 1 paket dengan kecepatan penuh dalam jumlah waktu yang sama dengan 2 paket yang diperlukan untuk tiba. Latensi adalah waktu yang diperlukan untuk semua data untuk tiba. untuk kembali ke analogi truk, bahkan jika itu membutuhkan truk dengan 1 Cd untuk tiba di separuh waktu karena truk yang membawa 500 cds masih membutuhkan truk 500 perjalanan untuk mengirimkan data (750 hari vs 3).
Jim B
@ JimB: ya, seperti yang disebutkan pertanyaan saya bukan tentang loadsize, tetapi tentang kecepatan: truk penuh perlu 10 jam untuk dipindai oleh bea cukai, yang kecil hanya 1 jam. 100mbit / s juga berarti, bahwa paket 100bit membutuhkan minimum teoritis 0,000954ms dan paket 1000bit minimum teoritis 0,00954ms. Tentu saja waktu pemrosesan / dll. pada kartu jaringan / switch / dll. buat potongan yang lebih tinggi dari seluruh latensi, tapi saya juga berharap ini lebih cepat dalam saklar 1gbit, dll. Silakan lihat komentar oleh @MikeRenfro, dia benar-benar mengujinya dan mengalami peningkatan 20%.
Andreas Richter
@andreas - 20% pada subnet yang sama yang tidak sesuai dengan pertanyaan Anda
Jim B
1
@danreas 20% dari ping sub-milidetik masih merupakan ping sub-milidetik. Bahkan 150% dari ping sub-milidetik, seperti dalam pengujian Anda, tidak akan berarti di dunia nyata. Apakah Anda benar-benar memiliki aplikasi yang penting apakah data Anda sampai di sana dalam 0,0003 detik, bukan 0,0002 detik ?
Shane Madden
2

Anda melihat dunia melalui lubang jarum. Tes valid perbedaan latensi pada kecepatan yang berbeda akan antara dua NIC identik terhubung dengan kabel cross-connect. Atur kecepatan NIC untuk matematika 10mb, 100mb, dan 1000mb. Ini akan menunjukkan bahwa hampir tidak ada perbedaan dalam latensi pada kecepatan yang berbeda. Semua paket berjalan dengan kecepatan kabel yang sama terlepas dari bandwidth maksimum yang digunakan. Setelah Anda menambahkan sakelar dengan simpan dan teruskan tembolok semua perubahan. Pengujian latensi melalui sakelar harus dilakukan hanya dengan dua koneksi sakelar. Lalu lintas lain apa pun dapat memengaruhi latensi pengujian Anda. Bahkan kemudian saklar dapat roll-over log, menyesuaikan penghitung tipe paket, memperbarui jam internal, dll. Semuanya dapat mempengaruhi latensi.

Ya, beralih dari 100mb ke 1gb mungkin lebih cepat (latensi lebih rendah) karena perubahan perangkat keras, NIC berbeda, saklar berbeda, driver berbeda. Saya telah melihat perubahan yang lebih besar dalam latensi ping dari perbedaan driver daripada perubahan lainnya; bandwidth, switch, offloading NIC, dll.

Switch akan menjadi perubahan terbesar berikutnya dengan cut-through yang secara signifikan lebih cepat daripada store and forward untuk tes transmisi tunggal. Namun, toko yang dirancang dengan baik dan sakelar maju dapat melampaui sakelar cut-through dalam kinerja keseluruhan di bawah beban tinggi. Pada hari-hari awal gigabit saya telah melihat 10MB switch backplane kinerja tinggi dengan latensi lebih rendah daripada switch gigabit murah.

Tes Ping praktis tidak relevan untuk analisis kinerja saat menggunakan Internet. Mereka adalah tes cepat untuk mendapatkan gambaran kasar tentang apa yang terjadi pada transportasi pada saat tes. Pengujian kinerja produksi jauh lebih rumit dari sekadar ping. Switch berperforma tinggi adalah komputer dan di bawah beban tinggi berperilaku berbeda - perubahan latensi.

Memiliki NIC yang lebih lambat, atau NIC yang diatur ke kecepatan yang lebih lambat, sebenarnya dapat membantu server dengan semburan bersamaan dengan membatasi input ke server menggunakan cache switch. Pengiriman ulang tunggal dapat meniadakan penurunan latensi. Biasanya tingkat lalu lintas sedang hingga tinggi penting, bukan tes ping tunggal. mis. Sun Ultrasparc lama yang lambat (latensi lebih tinggi untuk satu ping) mengungguli desktop gigabit murah baru yang digunakan sebagai server dev ketika beban bandwidth di bawah 70% 100mb. Desktop memiliki gb NIC yang lebih cepat, koneksi gb-gb yang lebih cepat, memori yang lebih cepat, memori yang lebih banyak, disk yang lebih cepat, dan prosesor yang lebih cepat tetapi tidak berfungsi sebaik perangkat keras / lunak kelas server yang disetel. Ini bukan untuk mengatakan bahwa server yang disetel saat ini yang menjalankan gb-gb tidak lebih cepat dari perangkat keras lama, bahkan dapat menangani beban throughput yang lebih besar. Ada lebih banyak kompleksitas pada pertanyaan "

Cari tahu apakah penyedia Anda menggunakan sakelar yang berbeda untuk koneksi 100mb vs. 1gb. Jika mereka menggunakan saklar backplane yang sama dari saya hanya akan membayar kenaikan jika tingkat lalu lintas melebihi bandwidth yang lebih rendah. Kalau tidak, Anda mungkin menemukan bahwa dalam waktu singkat banyak pengguna lain akan beralih ke gigabit dan beberapa pengguna yang tersisa di sakelar lama sekarang memiliki kinerja lebih tinggi - latensi lebih rendah, selama beban tinggi pada sakelar (beban sakelar keseluruhan, tidak hanya ke server Anda ).

Contoh apel dan jeruk: ISP lokal menyediakan switch baru untuk layanan paket, DSL, dan telepon. Awalnya pengguna melihat peningkatan kinerja. Sistem sudah oversold. Sekarang pengguna yang tetap menggunakan sakelar lama memiliki kinerja konsisten yang lebih tinggi. Pada larut malam, pengguna pada sistem baru lebih cepat. Di malam hari di bawah beban tinggi, klien switch lama jelas mengungguli sistem kelebihan beban baru.

Latensi yang lebih rendah tidak selalu berkorelasi dengan pengiriman yang lebih cepat. Anda menyebutkan MySQl dalam 20 permintaan untuk melayani satu halaman. Lalu lintas itu seharusnya tidak berada di NIC yang sama dengan permintaan halaman. Memindahkan semua lalu lintas internal ke jaringan internal akan mengurangi tabrakan dan jumlah paket total pada NIC keluar dan memberikan keuntungan yang lebih besar daripada kenaikan latensi 0,04 ms dari satu paket. Kurangi jumlah permintaan per halaman untuk mengurangi latensi pemuatan halaman. Kompres halaman, html, css, javascript, gambar untuk mengurangi waktu pemuatan halaman. Ketiga perubahan ini akan memberikan keuntungan keseluruhan yang lebih besar daripada membayar bandwidth yang tidak digunakan untuk mendapatkan pengurangan latensi 0,04 ms. Ping perlu menjalankan 24 jam dan dirata-rata untuk melihat perubahan latensi nyata. Smart switch sekarang melakukan throttling tipe RTSP adaptif dengan peningkatan bandwidth awal kecil dan transfer besar dibatasi. Bergantung pada ukuran halaman Anda (grafik, html / css / javascript besar), Anda mungkin melihat latensi / bandwidth koneksi awal jauh lebih rendah / lebih tinggi daripada halaman besar atau transfer halaman penuh. Jika bagian dari halaman Anda mengalir, Anda mungkin melihat kinerja yang sangat berbeda antara halaman dan aliran.

joe
sumber
Terima kasih atas semua masukan yang luar biasa: 1.) Ini saklar yang sama, 2.) NIC kedua untuk suara internal / eksternal beresonansi dan patut dicoba - walaupun misalnya MySQL / dll. semuanya bi-directional, jadi tabrakan akan "hanya" dikurangi menjadi setengah, 3.) Tes dunia nyata lebih baik daripada hanya Nic-Nic, Mike telah melakukannya dengan subnet, dan mendapatkan apa yang Anda harapkan reg. perangkat keras: "56 byte = peningkatan 19%, 200 byte = 27%, 1000 byte = 59%! Jadi semakin besar paket, semakin penting. Dan Gigabit hanya meningkat dari 0,17 ms (56 byte) menjadi 0,23 ms (1000 byte) ) => 35%, sementara 100 Mbit meningkat dari 0,21 menjadi 0,56 => 166% ".
Andreas Richter
1

Mari kita asumsikan paket 300 byte (jika Anda menggunakannya -s 300akan lebih besar karena header).

300 bytes = 2400 bits
2400 bits / 100Mbit/sec = 0.024ms

0,024ms kira-kira waktu aktual yang diperlukan untuk mengirim bingkai (tidak termasuk waktu akses menengah atau tajuk).

Dalam urutan ping-pong itu akan memakan waktu dua kali lipat (0,048 ms), ditambah waktu bagi OS untuk memproses kueri.

Itu berarti bagi saya bahwa latensi Anda disebabkan oleh 90% dari beberapa faktor overhead. Saya tidak yakin apakah Anda akan melihat banyak perbedaan dengan Gb. Perbedaan yang mungkin kurang dari 1 ms tidak akan terlihat sebagai server web.

Lagi pula bisakah Anda mencoba dengan paket yang sangat besar seperti 1400 byte?

LatinSuD
sumber
Seseorang sudah menjalankan angka untuk server tertentu dan perbedaannya kembali pada 40 nanodetik. Perkiraan Anda tidak aktif dengan faktor 25 kali terlalu besar.
Chris S
@LatinSuD: terima kasih atas pendekatan konstruktif dan tidak menyalahkan bahwa saya tidak tahu apa yang saya lakukan. Saya akan memposting hasil dalam pertanyaan yang sebenarnya karena saya dapat melakukan formating di sana. Tapi btw. Saya juga berharap 90% overhead memiliki peningkatan kecepatan , karena prosesor dalam kartu jaringan, dll. Lebih cepat untuk GBit juga (mudah-mudahan). @ Chris: mikro-detik dan saya tidak mengerti apa yang Anda maksud dengan 25.
Andreas Richter
Maafkan saya karena mencampuradukkan mikro dan nano; dalam hal apa pun itu tidak bisa diraih. LatinSuD memperkirakan perbedaan 1 milidetik, yang 25 kali lebih banyak dari 40 mikrodetik yang ditemukan oleh Mike.
Chris S
@ Chris: jangan khawatir. 0,04ms untuk ping 38 byte, jika paket server-server rata-rata kami adalah sekitar 300 byte, perbedaannya bisa 0,4 ms. Jika kita sekarang membuat 20 permintaan untuk satu server-requst (Redis, MySQL, dll.), Ini akan mengarah pada peningkatan kecepatan 8ms yang akan menjadi peningkatan kecepatan 10% untuk permintaan web saat ini dan benar-benar akan membenarkan biaya tambahan. Saya tidak punya sumber daya di sini untuk menjalankan tes sendiri, tapi percayalah, bahwa bahkan jika itu tidak dapat dipahami oleh manusia, itu masih bisa relevan. Seperti listrik atau dewa.
Andreas Richter
1
@ Andreas, saya sangat meragukan itu akan bersisik seperti itu; baik paket 10x lebih besar menjadi 10x lebih sedikit latensi dan 20x karena banyak paket 20x lebih cepat. Jika berhasil, itu adalah pengurangan 10% dalam overhead jaringan, Anda masih harus memperhitungkan waktu yang dihabiskan dalam aplikasi, yang kemungkinan satu atau beberapa urutan besarnya lebih lama daripada komponen latensi jaringan. Saya harap ini bekerja dengan baik untuk Anda.
Chris S
1

Ini tergantung pada jenis sakelar yang Anda hubungkan. Pada beberapa vendor (seperti Crisco ... maksud saya Cisco), paket ICMP akan mengalir kembali ke CPU ( muntah ).

Anda mungkin menemukan tes yang lebih baik adalah melakukan tes host-ke-host menggunakan tautan 100Mbps dan 1Gbps (yaitu bukan tes host-to-switch atau host-to-router).

Pada akhir hari, latensi akan turun ke tingkat penerusan switch dan rincian arsitektur switch (di mana ASIC ditempatkan di papan, bagaimana penguncian ditangani antara kartu garis, dll). Semoga berhasil dengan pengujian Anda.

Sean
sumber
Terima kasih, saya hanya merujuk pada tes Host-Switch-Host dan saya tidak mengerti semua saklar internasional. Saya hanya ingin melihat, jika seseorang pernah melakukan benchmark: Host- (100mbit) -Switch- (100mbit) -Host, Host- (100mbit) -Switch- (1gbit) -Host dan Host- (1gbit) -Switch- (1gbit) ) -Host latensi untuk ukuran paket yang berbeda. Jika tidak ada yang melakukannya, saya akan melakukannya dan memposting jawabannya di sini.
Andreas Richter
1
Saya biasa menjual kembali switch gear. Cukuplah untuk mengatakan, temuan Anda menunjukkan kepada saya bahwa Anda terhubung ke switch Cisco. Ada alternatif lain yang menyediakan latensi lebih rendah. Seperti yang Anda tunjukkan dengan benar, lebih banyak bandwidth tidak diterjemahkan ke latensi yang lebih rendah (Comcast adalah penyebab utama membuat orang bodoh dalam hal ini). Mengingat Anda berada di lingkungan yang dihosting, Anda mungkin terjebak dengan perangkat keras mereka (dan karena di lingkungan yang dihosting, beberapa microsec tambahan tidak terlalu penting). Tunjukkan jutaan pps pada kondisi mapan dan saya akan tertarik untuk memberikan detail lebih lanjut. :)
Sean