• Tidak ada hasil yang ditemukan

Analisis Kinerja IoT Middleware Berbasis Event-Driven pada Raspberry Pi Zero dan Raspberry Pi 2

N/A
N/A
Protected

Academic year: 2018

Membagikan "Analisis Kinerja IoT Middleware Berbasis Event-Driven pada Raspberry Pi Zero dan Raspberry Pi 2"

Copied!
7
0
0

Teks penuh

(1)

Fakultas Ilmu Komputer

Universitas Brawijaya

3451

Analisis Kinerja IoT

Middleware

Berbasis Event-Driven pada Raspberry Pi

Zero dan Raspberry Pi 2

Ula Auliya Ilham Irsahnda1, Eko Sakti Pramukantoro2, Reza Andria Siregar3

Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya Email: 1iersanilham@gmail.com, 2ekosakti@ub.ac.id, 3reza@ub.ac.id

Abstrak

IoT middleware telah dikembangkan untuk mengatasi masalah syntactical interoperability dengan menggunakan gateway multiprotokol yaitu MQTT, CoAP, dan Websocket. Dengan beragamnya perangkat yang dapat digunakan sebagai host untuk middleware timbul pertanyaan bagaimana spesifikasi minimal untuk perangkat yang dapat digunakan sebagai host untuk middleware sehingga pada penelitian ini host yang digunakan untuk middleware adalah raspberry pi zero dengan mempertimbangkan karakteristik raspberry pi zero yang lebih sederhana untuk mengetahui bagaimana kinerja dari IoT middleware jika dihadapkan pada perangkat yang lebih sederhana dan untuk mengetahui batasan bawah kebutuhan perangkat untuk IoT middleware ini. Hasil dari pengujian menunjukkan bahwa rata-rata penggunaan CPU oleh middleware sebesar 1,25% dan penggunaan memori sekitar 13%.

Delay yang dibutuhkan dari publisher hingga sampai ke aplikasi sebesar 0,868 detik untuk protokol MQTT dan 0,962 detik untuk protokol CoAP. Dari segi skalabilitas, middleware mampu menangani hingga 81 pesan per detik untuk protokol MQTT, 41 pesan per detik untuk protokol CoAP dengan jumlah publisher sebanyak 100. Sedangkan pada protokol Websocket jumlah subscriber yang dapat ditangani meningkat seiring dengan bertambahnya jumlah klien hingga mencapai 54 pesan per detik. Secara keseluruhan dapat disimpulkan bahwa kinerja dari middleware pada raspberry pi 2 lebih baik daripada kinerja middleware pada raspberry pi zero.

Kata kunci: kinerja, skalablitas, MQTT, CoAP, WebSocket, middleware

Abstract

IoT middleware has been developed to overcome the problem of syntactical interoperability by using multiprotocol gateway that is MQTT, CoAP, and Websocket. With a variety of devices that can be used as hosts for middleware arise the question of how the minimum specifications for devices can be used as hosts for middleware so in this research the host used for middleware is raspberry pi zero by considering raspberry pi zero characteristics which is simpler to find out how the performance of IoT middleware if faced with a simpler device and to find out the limits under the device requirements for this middleware IoT. The results of the test show that the average use of CPU by middleware is 1.25% and memory usage is about 13%. The required delay from the publisher to the application is 0.868 seconds for the MQTT protocol and 0.962 seconds for the CoAP protocol. In terms of scalability, middleware is capable of handling up to 81 messages per second for MQTT protocols, 41 messages per second for CoAP protocols with 100 publisher counters. Overall, it can be concluded that the performance of middleware on raspberry pi 2 is better than middleware performance on raspberry pi zero.

Keywords: performance, scalability, MQTT, CoAP, Websocket, middleware

1. PENDAHULUAN

Desai (2015) menguraikan masalah interoperabilitas menjadi tiga kategori yakni

network interoperability, syntactical interoperability, dan semantic interoperability.

Network interoperability mengacu pada berbagai macam protokol komunikasi pada IoT, khususnya pada protokol daya rendah seperti Zigbee, Zwave, dan BLE (bluetooth low energy).

(2)

interoperability mengacu kepada konten dan konteks transmisi data. Pada penelitian

sebelumnya yang berjudul “Pengembangan IoT Middleware Berbasis Event-based dengan Protokol Komunikasi CoAP, MQTT, dan Websocket”oleh Anwari (2017) dikembangkan sebuah middleware yang mampu mendukung interoperabilitas berbagai macam perangkat atau sensor. Dari hasil pengujian middleware yang diusulkan mampu mengatasi masalah syntatic interoperability dengan menyediakan gateway

untuk berkomunikasi dengan perangkat sensor IoT menggunakan protokol MQTT dan CoAP, serta mampu berkomunikasi dengan aplikasi lain menggunakan protokol Websocket. Pada implementasinya, sistem yang digunakan pada penelitian tersebut adalah nodeMCU sebagai node sensor, raspberry pi 2 sebagai gateway dan sebagai host untuk IoT middleware tersebut.

Terdapat banyak perangkat yang dapat digunakan sebagai host untuk IoT middleware, seperti raspberry pi zero dan raspberry pi 2. Secara perbandingan raspberry pi zero dilengkapi dengan 1GHz single-core CPU, 512MB RAM, Mini-HDMI port, Micro-USB OTG port, Micro-USB power, dan memiliki ukuran yang sangat kecil yaitu 65 mm x 20 mm dengan ketebalan 5 mm. Sedangkan untuk raspberry pi 2 memiliki spesifikasi lebih baik yaitu, 900MHz quad-core ARM Cortex-A7 CPU, 1GB RAM, 4 USB port, Full-HDMI port, 40 GPIO pins, Ethernet port, dan memiliki ukuran 85,60 mm x 56 mm dengan ketebalan 21 mm. Jika kedua perangkat tesebut digunakan sebagai host hasil dari kinerja IoT middleware

pasti berbeda. Pada penelitian sebelumnya

dengan judul “Analisis Performa dan

Skalabilitas pada Event-based Middleware” oleh

Rozi (2017) menunjukkan kinerja middleware

pada raspberry pi 2 dari segi kinerja dengan rata-rata penggunaan CPU sebesar 1,21% dan memori 10,15%-12,63% dan dari segi skalabilitas dengan mengalami peningkatan

concurrent seiring dengan meningkatnya jumlah klien. Sehingga pada penelitian ini peneliti ingin mengetahui bagaimana kinerja IoT middleware

dari segi kinerja dan skalabilitas jika host yang digunakan adalah raspberry pi zero dengan mempertimbangkan karakteristik raspberry pi zero yang lebih sederhana dengan tujuan untuk mengetahui sejauh mana kinerja middleware jika dihadapkan pada perangkat yang lebih sederhana dan untuk mengetahui batasan bawah kebutuhan perangkat untuk IoT middleware ini.

2. LANDASAN KEPUSTAKAAN

2.1 IoT Middleware

Pada penelitian sebelumnya telah dikembangkan sebuah middleware yang mampu menangani masalah syntactical interoperability. Sistem middleware yang dibangun terdiri dari satu sensor dengan protokol MQTT dan satu sensor dengan protokol CoAP yang mengirimkan data ke middleware. Oleh

middleware data akan diteruskan ke web-app dan data yang dikirim dapat dimonotoring secara real-time melalui web-app. Middleware yang dibangun memiliki dua fungsi utama yaitu menyediakan gateway multi-protokol untuk pengiriman data sensor melalui protokol CoAP dan MQTT dan juga menyediakan gateway

untuk mengirim data yang diterima oleh

middleware ke web-app melalui protokol websocket.

Gambar 1. Arsitektur Middleware

Middleware yang dikembangkan menggunakan pola publish-subscribe dan memiliki tiga komponen utama yaitu sensor gateway, service unit, dan application gateway. Sensor gateway menyediakan interface untuk sensor mengirim data ke middleware melalui protokol CoAP atau MQTT. Komponen service unit menyediakan tiga fungsi utama yakni data management, service delivery, dan interface definition. Sedangkan application gateway

menyediakan interface bagi aplikasi untuk terhubung ke middleware dan membaca data yang dikirimkan melalui protokol websocket.

2.2 Kinerja Middleware

Pada penelitian sebelumnya, telah dilakukan pengujian terhadap middleware

dengan menggunakan raspberry pi 2 sebagai

host-nya. Parameter pertama pengujian adalah parameter pengujian yang meliputi penggunaan CPU dan memori, delay dari sensor ke

(3)

kinerja dengan rata-rata penggunaan CPU sebesar 1,21% dan memori 10,15%-12,63% dan dari segi skalabilitas dengan mengalami peningkatan concurrent seiring dengan meningkatnya jumlah klien.

3. METODE PENELITIAN

3.1. Topologi Jaringan

Agar sistem dapat berjalan sesuai dengan harapan, maka perlu dibuat topologi jaringan antar komponen dalam sistem. Topologi jaringan ini menggambarkan bagaimana sensor dapat terhubung dan mengirimkan data ke

middleware kemudian diteruskan ke web-app. Topologi jaringan dapat dilihat pada Gambar 2.

Gambar 2. Topologi Jaringan

Raspberry pi zero berperan sebagai

middleware antara sensor dan web-app dan juga sebagai accesspoint. Diperlukan wireless

adapter yang difungsikan sebagi accesspoint dan juga USB to LAN sehingga raspi zero memiliki 2 buah interface yaitu wlan0 dengan IP 192.168.43.1 dan eth0 yang terhubung dengan jaringan LAN dengan IP 10.34.8.20. Semua sensor akan berkomunikasi dengan middleware

melalui interface wlan0. Middleware yang dikembangkan menggunakan tiga port: 3000 untuk websocket, 5683 untuk CoAP, dan 1883 untuk MQTT.

Subscriber yang digunakan dalam penelitian ini yaitu sebuah aplikasi web. Aplikasi ini dijalankan pada server dengan IP 10.34.0.35 yang terhubung dengan interface eth0 pada

middleware. Kemudian aplikasi web dapat diakses oleh browser dengan alamat http://10.34.0.35:8000. Untuk pengiriman data, sensor MQTT mengirimkan data dengan topik home/barrack dengan melakukan publish ke alamat middleware mqtt://192.168.43.1:1883. Sedangkan sensor CoAP mengirimkan data dengan topik home/kitchen dengan melakukan POST request ke alamat coap://192.168.42.1:5683/r/home/kitchen. Aplikasi web sebagai subscriber menerima data dari middleware melalui protokol websocket dengan alamat ws://192.168.43.1:3000.

3.2. Pengujian

Terdapat tiga macam pengujian pada penelitian ini, pengujian penggunaan CPU dan memori, pengujian delay dan data transfer, dan pengujian skalabilitas.

Pada pengujian penggunaan CPU dan memori, data diperoleh dari penggunaan CPU dan memori middleware selama 3 jam dengan menjalankan sebuah program yang mencatat log penggunaan CPU dan memori berdasarkan PID dari middleware setiap 15 detik sekali. Untuk mendapatkan nilai delay dan data transfer dari tiap sensor dan middleware digunakan tool Wireshark. Nilai delay didapatkan dengan cara mengurangi waktu paket saat diterima dengan waktu paket saat dikirimkan. Untuk mendapatkan nilai end-to-end delay adalah dengan menjumlahkan delay dari NodeMCU ke

middleware dan delay dari middleware ke aplikasi. Data transfer adalah seberapa banyak data yang berhasil dikirim ke middleware oleh

publisher.

Pengujian skalabilitas dilakukan untuk mengetahui seberapa besar kapasitas sistem untuk menangani berbagai proses ketika dilakukan perubahan menjadi lebih besar dari sebelumnya. Pada pengujian skalabilitas digunakan package async dari npm yang dapat menjalankan program secara asynchronous. Pada pengujian ini ditentukan jumlah publisher

dan subscriber dengan variasi 100, 500, 1000.

4. HASIL DAN PEMBAHASAN

4.1 Penggunaan CPU dan Memori

Gambar 3. CPU Usage

(4)

Gambar 4. Memory Usage

Dari hasil pengujian diperoleh range

penggunaan memori ketika menggunakan nodeMCU MQTT sekitar 10,10%-10,37% dan ketika menggunakan nodeMCU CoAP sekitar 9,63%-9,89% sedangkan saat nodeMCU MQTT dan CoAP dijalankan bersamaan penggunaan memori mengalami peningkatan menjadi 12,58%-12,99%.

4.2 Delay dan Data Transfer

Hasil yang diperoleh dari pengujian dengan menggunakan 5 nodeMCU MQTT dan 5 nodeMCU CoAP menunjukkan bahwa pengiriman data dengan menggunakan protokol MQTT dan CoAP memiliki tingkat kesuksesan 100% dimana setiap node berhasil mengirimkan sebanyak 120 data dengan rata-rata delay

sebesar 0,373 detik untuk MQTT dan 0,467 detik untuk CoAP. Nilai delay yang diperoleh relatif kecil untuk masing-masing protokol karena ukuran paket yang dikirimkan oleh nodeMCU MQTT dan nodeMCU CoAP kurang dari 1 Kb (269 bytes untuk MQTT dan 287 bytes untuk CoAP).

Tabel 1. MQTT Delivery Ratio

Tabel 2. CoAP Delivery Ratio

Tabel 3. Websocket Delivery Ratio

Tabel 4. End-to-end Delay

Pada sisi subscriber, data yang diterima sesuai dengan data yang dikirimkan oleh

publisher dan tidak terjadi overhead. Rata-rata waktu yang dibutuhkan middleware untuk mengirim data ke datacenter sebesar 0,495 detik. Jadi waktu yang dibutuhkan oleh nodeMCU MQTT untuk mengirim data ke datacenter adalah 0,868 detik sedangkan untuk nodeMCU CoAP 0,962 detik.

4.3 Skalabilitas

Gambar 5. ConcurrentPublish

Gambar 5 menunjukkan rata-rata publisher

yang dapat ditangani oleh middleware dalam satu detik. Jumlah maksimal pesan per detik untuk protokol MQTT adalah 81 dan 41 untuk protokol CoAP. Standar deviasi untuk protokol CoAP menurun seiring dengan bertambahnya jumlah klien. Dalam menangani 100 klien, standar deviasi untuk protokol MQTT adalah 41,96 dan 12,94 untuk CoAP. Ketika jumlah klien meningkat menjadi 500, standar deviasi dari MQTT menurun menjadi 10,55 dan untuk CoAP menjadi 4,99. Sedangkan untuk 1000 klien standar deviasi MQTT adalah 13,10 dan CoAP 4,25. Jika dibandingkan dengan CoAP, protokol MQTT lebih baik dengan rata-rata pesan per detik sekitar 50 pesan.

Gambar 6. TimePublish

(5)

dibutuhkan untuk menyelesaikan querypublish

berbanding lurus dengan banyaknya jumlah klien. Semakin banyak jumlah klien semakin banyak pula waktu yang dibutuhkan untuk menyelesaikan query publish. Dari sisi klien, protokol MQTT lebih cepat daripada protokol CoAP dalam pengiriman pesan.

Gambar 7. ConcurrentSubscribe

Pada Gambar 7 menunjukkan rata-rata

subscriber yang dapat ditangani oleh

middleware dalam satu detik. Jumlah subscriber

yang dapat ditangani tiap detik meningkat seiring dengan meningkatnya jumlah klien dikarenakan mekanisme kerja dari webscoket dalam hal ini adalah dengan membuat sejumlah koneksi yang sama dengan jumlah subscriber

dimana biasanya websocket melakukan satu koneksi saja untuk bertukar banyak pesan. Standar deviasi websocket secara berurutan adalah 22,30, 18,28, 15,23. Standar deviasi menurun seiring dengan meningkatnya jumlah klien yang berarti data semakin dekat ke rata-rata nilai sampel. Maksimal jumlah subscriber yang dapat ditangani oleh middleware dalam satu detik adalah 54.

Gambar 8. TimeSubscribe

Gambar 10 menunjukkan waktu yang dibutuhkan oleh middleware untuk menyelesaikan query subscribe untuk masing-masing variasi jumlah subscribe. Waktu yang dibutuhkan untuk menyelesaikan query subscribe berbanding lurus dengan banyaknya jumlah subscriber. Semakin banyak jumlah

subscriber semakin banyak pula waktu yang dibutuhkan untuk menyelesaikan query subscribe.

4.4 Perbandingan Hasil Raspberry Pi Zero dengan Raspberry Pi 2

A. Penggunaan CPU dan Memori

Gambar 9. CPU UsageComparison

Gambar 9 menunjukkan penggunaan CPU oleh middleware pada raspberry pi zero mengalami peningkatan jika dibandingkan dengan raspberry pi 2. Penggunaan CPU untuk protokol MQTT pada raspberry pi zero mengalami peningkatan sebesar 0,26%. Untuk protokol CoAP penggunaan CPU meningkat sebesar 0,20%. Sedangkan untuk protokol MQTT+CoAP terjadi peningkatan penggunaan CPU sebesar 0,04%. Peningkatan penggunaan CPU pada raspberry pi zero dikarenakan sumber daya raspberry pi zero lebih kecil jika dibandingkan dengan raspberry pi 2, dimana raspberry pi 2 menggunakan quad-core ARM Cortex-A7 CPU sedangkan raspberry pi zero hanya menggunakan single-core CPU.

Gambar 10. Memory UsageComparison

(6)

raspberry pi 2 yaitu 512MB.

B. Delay

Tabel 5. Delay Comparison

Delay MQTT dan CoAP pada raspberry pi zero meningkat menjadi 0.373 dan 0.467 detik. Sedangkan delay websocket menurun menjadi 0.495 detik. Nilai dari end-to-end delay pada MQTT – Websocket mengalami peningkatan menjadi 0,868 detik dan pada CoAP – Websocket meningkat menjadi 0,962 detik.

C. Skalabilitas

Pada raspberry pi 2 jumlah

publisher

yang dapat ditangani berbanding lurus

dengan peningkatan jumlah klien. Semakin

banyak jumlah klien semakin banyak pula

jumlah

publisher

yang dapat ditangani.

Berbeda halnya dengan raspberry pi zero,

dimana dapat menangani secara maksimal

hanya ketika jumlah klien adalah 100.

Ketika jumlah klien meningkat pada

raspberry pi zero, maka jumlah

publisher

yang dapat ditangani mengalami penurunan.

Hal ini dikarenakan perbedaan sumber daya

pada raspberry pi 2 dan raspberry pi zero.

Gambar 11. ConcurrentPublishComparison

Gambar 12. TimePublishComparison

Waktu yang dibutuhkan oleh kedua host

untuk menyelesaikan query publish berbanding lurus dengan banyaknya jumlah klien. Semakin banyak jumlah klien semakin banyak pula waktu

yang dibutuhkan untuk menyelesaikan query publish. Jika dibandingkan secara keseluruhan

middleware dengan host raspberry pi 2 lebih cepat dalam menyelesaikan query publish. Hal ini dikarenakan sumber daya pada raspberry pi 2 lebih baik dari sumber daya di raspberry pi zero.

Gambar 13. ConcurrentSubscribeComparison

Gambar 13 menunjukkan perbandingan kemampuan middleware dalam mengelola

subscriber per detik antara raspberry pi zero dan raspberry pi 2. Secara keseluruhan memang

middleware pada raspberry pi 2 dapat mengelola lebih banyak subscriber daripada middleware

pada raspberry pi zero namun pada raspberry pi zero dengan jumlah 100 klien jumlah subscriber

yang dapat dikelola lebih baik daripada raspberry pi 2 dengan perbedaan 5 subscriber.

Gambar 14. TimeSubscribeComparison

Pada Gambar 14 menunjukkan perbedaan waktu yang dibutuhkan oleh middleware untuk menyelesaikan querysubscribe antara raspberry pi zero dan raspberry pi 2. Waktu yang dibutuhkan oleh kedua host berbanding lurus dengan banyaknya jumlah klien. Semakin banyak jumlah klien semakin banyak pula waktu yang dibutuhkan untuk menyelesaikan query subscribe. Dalam hal ini middleware dengan

host raspberry pi zero lebih cepat dalam menangani query subscribe jika dibandingkan dengan middleware pada raspberry pi 2.

5. KESIMPULAN

Dari hasil pengujian yang telah dilakukan dapat disimpulkan bahwa kinerja middleware

dengan raspberry pi zero sebagai host-nya menunjukkan hasil delay yang yang baik yaitu 0,868 detik untuk protokol MQTT dan 0,962

Host MQTT CoAP Websocket MQTT -> Websocket CoAP -> Websocket

Pi 2 0.33 0.358 0.506 0.836 0.864

(7)

detik untuk protokol CoAP. Rata-rata penggunaan CPU hanya 1,25% dan penggunaan memory sekitar 13%. Dari pengujian skalabilitas menunjukkan bahwa middleware dapat menangani concurrent publish secara maksimal ketika jumlah klien adalah 100 dengan maksimal 81 pesan per detik untuk MQTT dan 41 pesan per detik untuk CoAP. Sedangkan pada protokol Websocket jumlah subscriber yang dapat ditangani meningkat seiring dengan bertambahnya jumlah klien hingga mencapai 54 pesan per detik. Jika dibandingkan dengan

middleware yang menggunakan raspberry pi 2 sebagai host-nya pada raspberry pi zero menunjukkan peningkatan penggunaan CPU sebesar 0,04% dan penggunaan memori meningkat sebesar 0,16%. Dari segi skalabilitas pada raspberry pi zero dapat menangani

concurrent publish secara maksimal ketika jumlah klien adalah 100 berbeda dengan raspberry pi 2 yang mana concurrent publish

meningkat seiring dengan meningkatnya jumlah klien. Perbedaan hasil pengujian dikarenakan sumber daya yang dimiliki oleh raspberry pi zero lebih sederhana sehingga terjadi peningkatan kebutuhan sumber daya. Secara keseluruhan dapat disimpulkan bahwa kinerja dari

middleware pada raspberry pi 2 lebih baik daripada kinerja middleware pada raspberry pi zero.

Untuk penelitian selanjutnya dapat digunakan parameter pengujian dan arsitektur yang berbeda juga dapat melakukan perbandingan kinerja middleware pada penellitian ini dengan kinerja middleware pada penelitian yang lain.

6. DAFTAR PUSTAKA

Anwari, H., Pramukantoro, E., & Ichsan, M. Pengembangan Iot Middleware

Berbasis Event-Based Dengan Protokol Komunikasi CoAP, MQTT Dan Websocket. Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer, vol. 1, no. 12, p. 1560-1567, juli 2017. ISSN 2548-964X. Tersedia pada: <http://j-

ptiik.ub.ac.id/index.php/j-ptiik/article/view/541>.

Desai, P.A.S. (2015). Semantic Gateway as a

Service Architecture for IoT Interoperability. 2015 IEEE International Conference on Mobile Services, 313-319. doi:10.1109/MobServ.2015.51

Rozi, M., Pramukantoro, E., & Amron, K. Analisis Performansi dan Skalabilitas pada Event-Based IoT Middleware. Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer, vol. 1, no. 7, p. 593-601, juni 2017. ISSN 2548-964X. Tersedia pada: <http://j-

ptiik.ub.ac.id/index.php/j-ptiik/article/view/171>.

Gambar

Gambar 2. Topologi Jaringan
Gambar 4. Memory Usage
Gambar 10. Memory Usage Comparison
Gambar 13.  Concurrent Subscribe Comparison

Referensi

Dokumen terkait

Sebagai salah satu instasi pemerintah, Dinas Kependudukan dan Pencatatan Sipil Kota Pekanbaru adalah instansi yang bertanggung jawab memberikan pelayanan dalam bidang

Kondisi karakteristik perlintasan sebelum pembangunan flyover adalah adanya perlintasan sebidang antara jalan raya dengan rel kereta api dengan waktu tunggu setiap

tidak! Orang yang tidak benar itu dikasihi dengan pemberian hujan kepadanya tapi ketidakbenarannya sama sekali tidak disetujui oleh Tuhan. Jadi terlihat bahwa Tuhan

[r]

Berdasarkan uraian-uraian yang telah dikemukakan pada bab-bab sebelumnya, maka penulis menarik simpulan sebagai berikut: 1) Diksi yang digunakan dalam parikan sms

Perbedaan penurunan indeks plak antara yang mengunyah buah semangka dan mengunyah buah nenas pada responden di SDN Kecamatan Canduang Kabupaten Agam, perbedaan

mengidentifikasi waste pada produksi minuman teh dan Value Stream Analysis Tools (VALSAT) untuk memilih mapping tools yang digunakan berdasarkan hasil dari WAM.. Dari

Dengan kata lain, menganalisis puisi adalah usaha untuk menangkap dan memberi makna kepada teks sastra, sebab karya sastra merupakan sistem tanda yang memiliki makna dan