Anda di halaman 1dari 17

Optimalisasi Server Website Menggunakan Redis Untuk

Meningkatkan Kecepatan Akses Pada Suatu Webite

Dosen Pengampu :

Dr. Sri Yulianto Joko Prasetyo, S.Si., M.Kom.

Disusun Oleh :

Deva Arif Qomarudin

672016116

Program Studi S1 Teknik Informatika

Fakultas Teknologi Informasi Universitas Kristen Satya Wacna

Salatiga

2019
1. Judul

Optimalisasi Server Website Menggunakan Redis Untuk


Meningkatkan Kecepatan Akses Pada Suatu Webite

2. Latar Belakang
Aplikasi web dan jejaring social saat ini melayani miliaran pengguna
di seluruh dunia. Pengguna ini menghasilkan miliaran pencarian kata kunci
dan jutaan pembaruan objek data per detik[1]. Untuk mengurangi beban
backend diperlukan layanan tambahan seperti Redis yang menggunakan
algoritma chaching tidak fleksibel, tetapi kebutuhan setiap aplikasi
bervariasi dan keuntungan kinerja yang signifikan dapat dicapai dengan
strategi yang disesuaikan[2].
Redis mendukung berbagai jenis data dan mudah untuk menerapkan
system penandaan menggunakan SET dan HASH object. Redis juga
mendukung penyimpanan pada disk dan replikasi master / slave. Ini adalah
fitur yang sangat popular. Dengan menyiapkan replikasi, anda dapat
menghindati satu titik kegagalan dan mencapai penyimpanan dengan
ketersediaan yang tinggi.
Redis juga mendukung banyak basis data yang menggunakan
instace server yang sama sehingga dapat menggunakan database yang
berbeda untuk Cache, FPC dan Session tanpa memulai proses Listening
pada port yang berbeda[3][4].
Dari sudut pandang pengguna dalam menyebutkan model data.
Berbeda dengan sistem perusahaan, di mana model data relatif terdefinisi
dengan baik, dalam komputasi awan kami bertemu lebih banyak model data,
mis. untuk data terstruktur dan tidak terstruktur, multimedia dan metadata,
apalagi kita bisa berurusan dengan berbagai model yang berasal dari sumber
data digunakan untuk suatu aplikasi. Arsitektur komputasi awan harus
menyediakan kemungkinan untuk menggabungkan model-model ini.
Masalah terkait pengguna lainnya termasuk keamanan dan enkripsi,
interoperabilitas dan konsistensi dijamin dengan menggunakan transaksi.
Kami akan membahas beberapa dari isu-isu basis data[4][5].
Dalam beberapa tahun terakhir sejumlah sistem baru telah dirancang
untuk memberikan skalabilitas horizontal yang baik untuk operasi database
baca / tulis sederhana yang didistribusikan banyak server[6][7].
Beberapa kelemahan ada saat menggunakan spasial basis data.
Pertama, kecepatan rendah akses disk membatasi kinerja. Satu permintaan
akan menelan biaya sekitar puluhan milidetik dan sulit bagi komputer
pribadi yang normal untuk merespon ratusan permintaan dalam satu detik.
Kedua, untuk mencapai Properti ACID, database tradisional
biasanya menggunakan tabel kunci level, yang menurunkan kinerja ketika
multi pengguna mencoba mengedit fitur dari satu tabel.
Ketiga, SQL singkat Kalimat dapat merangkum banyak pemrosesan
kompleks, yang membuat Query atau memperbarui kalimat menjadi lebih
mudah. Tapi di sisi lain jenis bahasa SQL sederhana ini membuatnya sulit
untuk memperkirakan waktu pelaksanaan Query atau operasi pembaruan,
terutama ketika banyak kali akses disk dimasukkan. Sehingga sulit untuk
menetapkan tugas ke beberapa node dalam distribusi lingkungan Hidup.
Oleh karena itu, dibatasi oleh kinerja rendah, database spasial tidak
cocok untuk akses data berkinerja tinggi, meskipun demikian mendukung
beberapa sifat transaksional. Kita butuh yang lebih tinggi sistem
kinerja[1][8][9].
3. Rumusan Masalah
Rumusan Masalah
1) Bagaimana membuat website yang memiliki system load source
yang efisien?
2) Bagaimana mengimplementasikan redis untuk optimalilasi website?
4. Tujuan Penelitian
1) Mengetahui bagaimana suatu website bisa ringan dalam load source
filenya.
2) Mengetahui bagaimana redis bekerja mempercepat akses sebuah
website.
5. Manfaat Penelitian
1) Memberikan sebuah informasi tentang pembuatan website yang
menerapkan optimalisasi caching source
2) Memberikan sebuah informasi tentang penggunaan redis dalam
optimalisasi website
6. Tinjauan Pustaka
1) Penelitian Terdahulu
 Keren Ouaknine dkk (2017). Optimization of RocksDB for Redis
on Flash. Penelitian ini ditujukan untuk menganalisis RockDB
dalam konteks stress testing RocksDB. Pengoptimalan tumpukan
kasus penggunaan penuh pada dunia nyata dengan RocksDB
menjadi salah satu mesin garis bawah. Mirip dengan Redis pada
Flash, beberapa ekstensi Redis lainnya menggunakan flash drive
untuk memperluas kemampuan Redis. Redis Naive-Disk-Store
(NDS) menggunakan LMDB untuk mengelola nilai drive lokal.
Data secara berkala, jadi jika terjadi kerusakan, pengguna hanya
kehilangan pembaruan yang terjadi sejak flush terakhir[10].
 E. Wahyu dkk (2017). Optimalisasi Server SIMAK Menggunakan
Memcached dan Mirror Server Untuk Meningkatkan Kecepatan
Akses Layanan Akademik Universitas Siliwangi.Pada penelitian
yang di lakukan Wahyu dkk bertujuan untuk meningkatkan
kecepatan akses pada web SIMAK dengan menggunakan cache
pada server yang dimana lebih cepat load datanya dari pada load
langsung pada database. Dalam teknik seperti ini akses database
dari website yang bersifat dinamis dengan caching data dan objek
dalam memory. Penggunaan cache pada suatu website sangat
berperan pada kecepatan akses suatu website[11].

Kedua penelitian tersebut menggunakan cache sebagai acuan


dalam melakukan cache yang pada pembahasan ini saya
menggunakan Redis sebagai framework. Redis mendukung banyak
fitur yang dapat diimplementasikan pada pengolahan resource suatu
website[3].
2) Landasan Teori
 Redis (Remote Dictionary Server)
Redis adalah penyimpanan data nilai utama di dalam memori
super cepat dengan sumber terbuka untuk digunakan sebagai
database, cache, broker pesan, dan antrean. Redis memberikan
respons dalam waktu di bawah satu milidetik yang
memungkinkan jutaan permintaan per detik untuk aplikasi real-
time[12]. Redis adalah single-threaded, ini menangani perintah
dari hanya satu klien pada satu waktu di atas proses utama. Tidak
seperti itu sistem KV tradisional di mana kunci adalah tipe data
sederhana (biasanya string), kunci di Redis dapat berfungsi
sebagai tipe data yang kompleks seperti hash, daftar, set, dan set
diurutkan. Selanjutnya, Redis memungkinkan operasi atom yang
kompleks pada tipe data ini (mis., enqueuing dan dequeuing dari
daftar, memasukkan nilai baru dengan diberi skor ke set yang
diurutkan, dll.).[10][13].
 Cache
Cache pada browser sebenarnya merupakan penyimpanan
sementara yang terdapat di komputer untuk menampung berbagai
macam file yang didownload oleh browser secara otomatis. File-
file yang didownload secara otomatis tersebut biasanya adalah
elemen-elemen penting yang akan membentuk sebuah website
seperti file html, CSS style sheets, Javascript, gambar, dan lain
sebagainya[14][15].
FUNC u.access( f) // user u accessing file f
1: if ( f ∈Cache. fileSet) then
2: return CACHED DATA;
3: else
4: return CACHE MISS;
5: end if FUNC cache(u, f) // cache file f for user u
6: while (Cache.availableSize < f.size) do
7: u1 = users.getUserWithLargestAlloc();
8: f1 = u1.getFileToEvict();
9: if (u1 == u and
10: u.getPriority( f1) > u.getPriority( f)) then
11: return CACHE ABORT;
12: end if
13: Cache. fileSet.remove( f1);
14: Cache.availableSize += f1.size;
15: u.allocSize -= f1.size;
16: end while
17: Cache. fileSet.add( f)
18: Cache.availableSize -= f.size;
19: u.allocSize += f.size;
20: return CACHE SUCCEED;
Pseudocode for accessing and cahing
a file under max-min fairness[16].
 Replikasi
Replikasi adalah seperangkat teknologi untuk menyalin dan
mendistribusikan data dan objek basis data dari satu basis data ke
basis data lainnya dan kemudian menyinkronkan antara basis data
untuk mempertahankan konsistensi. Gunakan replikasi untuk
mendistribusikan data ke lokasi yang berbeda dan untuk
pengguna jarak jauh atau seluler melalui jaringan area lokal dan
luas, koneksi dial-up, koneksi nirkabel, dan Internet[17][18][19].
 Server
Server adalah program atau perangkat komputer yang
menyediakan layanan ke program komputer lain dan
penggunanya, juga dikenal sebagai klien. Di pusat data, komputer
fisik yang menjalankan program server juga sering disebut
sebagai server. Mesin itu mungkin merupakan server khusus atau
dapat digunakan untuk tujuan lain juga. Dalam model
pemrograman klien / server, program server menunggu dan
memenuhi permintaan dari program klien, yang mungkin berjalan
di komputer yang sama atau yang lain. Aplikasi yang diberikan
di komputer dapat berfungsi sebagai klien dengan permintaan
layanan dari program lain dan juga sebagai server permintaan dari
program lain[20][16].
 Database
Basis data adalah kumpulan informasi yang diatur sehingga dapat
dengan mudah diakses, dikelola, dan diperbarui. Data disusun
dalam baris, kolom, dan tabel, dan diindeks untuk memudahkan
menemukan informasi yang relevan. Biasanya, manajer basis data
memberikan pengguna kemampuan untuk mengontrol akses baca
/ tulis, menentukan pembuatan laporan dan menganalisis
penggunaan. Beberapa database menawarkan kepatuhan ACID
(atomicity, konsistensi, isolasi dan daya tahan) untuk menjamin
bahwa data konsisten dan bahwa transaksi selesai[21].
 LMDB (Lightning Memory-Mapped Database Manager)
LMDB adalah pustaka manajemen basis data berbasis
Btree.Seluruh database terpapar dalam peta memori, dan semua
data mengambil kembali data langsung dari memori yang
dipetakan, sehingga tidak ada malloc atau memcpy terjadi selama
pengambilan data. Dengan demikian, pustaka ini sangat
sederhana karena tidak memerlukan lapisan caching halaman
sendiri, dan ini adalah kinerja yang sangat tinggi dan hemat
memori. Ini juga sepenuhnya transaksional dengan semantik
ACID penuh, dan ketika peta memori hanya-baca, integritas
database tidak dapat rusak oleh penulisan nyasar pointer dari kode
aplikasi[22].
7. Metodologi Penelitian
Gambar 1. Tahapan pelaksanaan penelitian
Tahap-tahap penelitian mengenai Optimalisasi Server Website
Menggunakan Redis Untuk Meningkatkan Kecepatan Akses Pada Suatu
Webite seperti yang ditunjukkan oleh gambar 1 adalah sebagai berikut :
A. IDENTIFIKASI PERMASALAHAN
Dalam tahap ini saya membagi website ke dalam 2 kategori yaitu
website yang menggunakan redis dan yang tidak menggunakan redis.
Disini saya akan memperlihatkan perbedaan-perbadaan yang menjadi
dasar dalam penelitian saya. Dalam segi konsep akan terlihat jelas yaitu
dalam struktur atau arsitektur website sampai ke servernya. Dalam
website yang tidak menggunakan redis, ketika membutuhkan data dari
database (baik yang sudah pernah di ambil atau belum) akan selalu
meng-load dari database secara langsung.
Kemudian untuk website yang menggunakan redis. Ketika
membutuhkan data dari database, data yang sudah pernah diambil akan
disimpan dalam cache RAM yang berada di server. Jadi ketika website
memuat data yang sudah pernah diambil akan dialihkan ke cache RAM
server. Hal ini memungkinkan suatu website akan lebih cepat dalam
memuat sebuah resource dari suatu database / server.
B. PENGINSTALAN
1) SERVER
Pada penginstalan untuk server. Disini saya memilih Linux
Ubuntu Server dikarenakan respon time dan Throughput yang ada
pada server ini terbilang lebih efisien daripada OS server
lainnya[23]. Dengan mengoptimalkan dari segi servernya juga dapat
meningkatkan kecepatan akses pada suatu website dan juga
diperlukan config-config tertentu demi mendukung optimalisasi
web servernya.
2) DATABASE
Pada penginstalan databasenya. Untuk mendukung database
yang berkorelasi dengan redis. Disini saya menggunakan
MONGODB. MONGODB adalah platform database yang
bertipekan No-SQL database. Database seperti ini yang nantinya
akan mendukung dalam pengaksesan data yang akan dilakukan oleh
redis[6].
3) REDIS
Penginstalan redis dalam server memerlukan beberapa
config khusus. Redis akan menyediakan banyak fitur. Redis sendiri
terbilang cocok dengan server linux dan memberikan performa yang
maksimal ketika redis terinstal dalam server linux[3].
4) WEBSITE
Dalam pembuatan websitenya, terdapat beberapa fungsi
yang dikhususkan untuk memuat redis. Dengan memanfaatkan fitur
redis dan juga server linux yang dioptimalkan pada penginstalan
akan di dapatkan sebuah website yang lebih efisien dan kecepatan
aksesnya lebih dari web pada umumnya dalam artian yang memuat
konten yang sama.
C. PENGUMPULAN DATA
Tahap ini adalah tahap dimana data-data akan dikumpulkan dengan
menggunakan bantuan tool dari PAESSLER dan juga nanti akan di
lakukan pengujian dengan tool dari penyedia lainnya. Yang nanti akan
digunakan untuk membandingkan kecepatan dan juga ketahanan
website dalam beberapa kategori :
1) PERFORMANCE-TEST
Objek penelitian Performance yang akan dianalisis yaitu
tingkat kestabilan web server (web server availability), kestabilan
akses, loading time web saat diakses dan pengaruh tindakan-
tindakan optimasi terhadap peningkatan loading time web.
2) LOAD-TEST
Load-Test adalah tes terencana untuk melakukan sejumlah
permintaan tertentu ke suatu sistem untuk menguji fungsionalitas
sistem di bawah tingkat spesifik permintaan simultan. Load-Test
memastikan bahwa sistem web mampu menangani volume lalu
lintas yang diharapkan, dan karenanya kadang-kadang disebut
sebagai Volume Testing.
Tujuan dari Load-Test adalah untuk membuktikan bahwa
suatu sistem dapat menangani volume yang diharapkan dengan
penurunan kinerja yang minimal hingga dapat diterima. Ambang
penurunan kinerja yang dapat diterima harus ditentukan oleh penguji
karena beberapa nilai dianggap dapat diterima oleh pengguna akhir
sehingga pengguna tidak akan terpental dari situs.
3) STRESS-TEST
Pengujuian stress website yang dilakukan untuk mengetahui
kemampuan perangkat lunak dalam memastikan aplikasi webyang
diluncurkan dapat menangani pengakses aplikasi tersebut sejumlah
yang ditargetkan.
D. ANALISA DATA DAN KESIMPULAN
Analisa data dilakukan dengan cara mengumpulkan hasil dari setiap
testing yang kemudian akan dibandingkan. Dengan hasil-hasil dari
setiap tool tersebut, nantinya akan menjadi suatu kesimpulan bagaimana
server website yang sudah dibuat itu optimal atau belum. Dan juga bisa
menjadi pembanding dengan website lainnya yang menggunakan
metode yang sama namun dengan platform yang berbeda.
E. JADWAL PENETILIAN
Tabel 1. Jadwal Penelitian
bulan
Kegiatan
1 2 3 4 5 6 7 8
Identifikasi Masalah
Penginstalan
Pengumpulan Data
Analisis Data Dan Kesimpulan
Pembuatan Laporan Penelitian
Pembuatan Jurnal
Tahap identifikasi masalah adalah tahap yang dilakukan untuk menentukan
objek permasalahan yang akan diteliti yaitu pengoptimalan server website
menggunakan redis. Tahap penginstalan adalah tahan yang dilakukan melakukan
seluruh proses pengoptimalan mulai dari server sampai ke website.

Tahap pengumpulan data adalah tahap dilakukannya pengetesan pada server


dan website yang telah dibuat untuk mendapatkan data-data. Tahap analisi data dan
kesimpulan adalah tahap mengolah data dari tahap sebelumnya dan menganalisa
yang kemudian akan ditarik kesimpulan dari analisa tersebut.
Tahap Pembuatan Laporan Penelitian adalah tahap yang dilakukan untuk
membuat laporan penelitian setelah penelitian selesai dilakukan. Tahap Pembuatan
Jurnal adalah tahap yang dilakukan untuk membuat jurnal setelah laporan penelitian
selesai dibuat.
DAFTAR PUSTAKA

[1] V. Zakhary, D. Agrawal, and A. El Abbadi, “Caching at the Web Scale,”


Proc. 26th Int. Conf. World Wide Web Companion - WWW ’17
Companion, pp. 909–912, 2017.

[2] A. Blankstein, S. Sen, M. J. Freedman, A. Blankstein, S. Sen, and M. J.


Freedman, “Hyperbolic Caching : Flexible Caching for Web Applications,”
Atc ’17, 2017.

[3] Redis, “Using Redis as an LRU cache – Redis.”

[4] J. Pokorny, “NoSQL databases: A step to database scalability in web


environment,” Int. J. Web Inf. Syst., vol. 9, no. 1, pp. 69–82, 2013.

[5] K. Saur, T. Dumitraş, and M. Hicks, “Evolving NoSQL databases without


downtime,” Proc. - 2016 IEEE Int. Conf. Softw. Maint. Evol. ICSME 2016,
pp. 166–176, 2017.

[6] R. Cattell, “Scalable SQL and NoSQL data stores,” ACM SIGMOD Rec.,
vol. 39, no. 4, p. 12, 2011.

[7] C. Garrod et al., “Scalable query result caching for web applications,”
Proc. VLDB Endow., vol. 1, no. 1, pp. 550–561, 2008.

[8] Y. Mao, E. Kohler, and R. T. Morris, “Cache craftiness for fast multicore
key-value storage,” p. 183, 2012.

[9] H. Yu, Y. Liu, C. Tian, L. Liu, M. Liu, and Y. Gao, “A cache framework
for geographical feature store,” Proc. - 2012 20th Int. Conf.
Geoinformatics, Geoinformatics 2012, no. 20, 2012.

[10] K. Ouaknine, O. Agra, and Z. Guz, “Optimization of RocksDB for Redis


on Flash,” pp. 155–161, 2017.

[11] E. Wahyu and A. Rahmatulloh, “Optimasi Server SIMAK Menggunakan


Memcached dan Mirror Server Untuk Meningkatkan Kecepatan Akses
Layanan Akademik Universitas Siliwangi,” pp. 69–78.
[12] “What is Redis?,” https://aws.amazon.com/. [Online]. Available:
https://aws.amazon.com/redis/?nc1=h_ls.

[13] G. Pierre, “Analysis of Caching and Replication Strategies,” pp. 60–66,


2007.

[14] “Pengertian cache - apa itu cache?,” https://www.indoworx.com/. [Online].


Available: https://www.indoworx.com/apa-itu-cache-dan-cookies/.

[15] L. Shi, L. Wei, H. Q. Ye, and Y. Shi, “Measurements of web caching and
applications,” Proc. 2006 Int. Conf. Mach. Learn. Cybern., vol. 2006, no.
August, pp. 1587–1591, 2006.

[16] Q. Pu and H. Li, “This paper is included in the Proceedings of the 13th
USENIX Symposium on Networked Systems Design and Implementation
(NSDI ’16). FairRide: Near-Optimal, Fair Cache Sharing FairRide: Near-
Optimal, Fair Cache Sharing,” 2016.

[17] “SQL Server Replication,” https://docs.microsoft.com. [Online]. Available:


https://docs.microsoft.com/en-us/sql/relational-databases/replication/sql-
server-replication?view=sql-server-2017.

[18] V. Server et al., “PEMBANGUNAN BACKUP , REPLIKASI DAN


MONITORING SERVER SEBAGAI SOLUSI PENANGGULANGAN
BENCANA PADA INFORMATIKA PROVINSI JAWA BARAT,” 2016.

[19] M. Rabinovich and O. Spatscheck, “Web caching and replication,”


SIGMOD Rec., vol. 32, no. 4, p. 107, 2003.

[20] “server,” https://whatis.techtarget.com. [Online]. Available:


https://whatis.techtarget.com/definition/server.

[21] “database (DB),” https://searchsqlserver.techtarget.com. [Online].


Available: https://searchsqlserver.techtarget.com/definition/database.

[22] “Lightning Memory-Mapped Database Manager (LMDB),”


http://www.lmdb.tech. [Online]. Available: http://www.lmdb.tech/doc/.

[23] I. D. Andhica Yuli Intan, “Performa kinerja web server berbasis ubuntu
linux dan turnkey linux,” Penelit. Ilmu Komputer, Sist. Embed. Log., vol. 5,
no. 2, pp. 68–78, 2017.

Anda mungkin juga menyukai