SlideShare a Scribd company logo
1 of 51
1
Manajemen Infrastruktur TI:
MIT-03 Konsep Kinerja
(Performance Concepts)
Rumadi Hartawan, S.T., M.Kom.
Buku Acuan 1
IT Infrastructure Architecture
Infrastructure Building Blocks and Concepts
Third Edition
Sjaak Laan
Lulu Press Inc, 2017
https://s.id/itia3ed
http://www.sjaaklaan.com/
2
3. Konsep Kinerja
3.1 Pendahuluan
3.2 Kinerja yang dirasakan
3.3 Kinerja selama desain infrastruktur
3.4 Kinerja sistem yang sedang berjalan
3.5 Pola kinerja
3
3.1 Pendahuluan
 Performa adalah faktor kinerja
yang khas
 Tidak ada yang
mempermasalahkan sistem
berkinerja tinggi
 Tetapi ketika suatu sistem tidak
berkinerja cukup baik,
pengguna dengan cepat mulai
mengeluh
4
3.1 Pendahuluan
 Sebagai contoh, menurut Equation Research:
 78% pengunjung situs web telah mengunjungi situs pesaing karena
kinerja yang buruk selama waktu puncak
 88% lebih kecil kemungkinannya untuk kembali ke situs setelah
pengalaman pengguna yang buruk
 47% tersisa dengan persepsi yang kurang positif terhadap perusahaan
 Dalam investigasi serupa pada tahun 2010, Akamai dan PhoCusWright
menemukan bahwa 57% pembeli online akan menunggu tiga detik atau
kurang sebelum meninggalkan situs dan 65% remaja berusia 18 hingga
24 tahun mengharapkan situs dimuat dalam dua detik atau kurang.
5
3.2 Kinerja yang dirasakan
 Kinerja yang dirasakan (perceived performance) mengacu pada
seberapa cepat suatu sistem muncul untuk melakukan tugasnya
 Secara umum, orang cenderung melebih-lebihkan kesabarannya
sendiri
 Orang cenderung menghargai prediktabilitas dalam kinerja
 Ketika kinerja sistem berfluktuasi, pengguna mengingat
pengalaman buruk
 Bahkan jika fluktuasinya relatif jarang
6
3.2 Kinerja yang dirasakan
Beri tahu pengguna tentang berapa lama tugas akan berlangsung dengan
menggunakan
 Bilah kemajuan (progress bars)
 Layar percikan (splash screens)
7
3.3 Kinerja selama desain infrastruktur
3.3.1 Pembandingan (Benchmarking)
3.3.2 Menggunakan pengalaman penjual (vendor)
3.3.3 Pembuatan prototipe
3.3.4 Profil pengguna (User profiling)
8
3.3 Kinerja selama desain infrastruktur
 Solusi harus dirancang, diimplementasikan, dan didukung
untuk memenuhi persyaratan kinerja
 Bahkan di bawah beban yang meningkat
 Menghitung performansi suatu sistem pada tahap desain
adalah:
 Sangat sulit
 Sangat tidak bisa diandalkan
9
3.3 Kinerja selama desain infrastruktur
 Kinerja harus diperhatikan:
 Ketika sistem bekerja seperti
yang diharapkan
 Ketika sistem dalam keadaan
khusus, seperti:
 Bagian yang gagal
 Kondisi pemeliharaan
 Melakukan pencadangan
 Menjalankan pekerjaan batch
 Beberapa cara untuk
melakukannya adalah:
 Pembandingan (Benchmarking)
 Menggunakan pengalaman
vendor
 Prototipe
 Profil Pengguna
10
3.3.1 Pembandingan (Benchmarking)
 Tolok ukur (benchmarks) menggunakan program
pengujian khusus untuk menilai kinerja relatif dari
komponen infrastruktur
 Perbandingan tolok ukur:
 Kinerja berbagai subsistem
 Melintasi arsitektur sistem yang berbeda
11
3.3.1 Pembandingan (Benchmarking)
Tolok ukur membandingkan kecepatan bagian infrastruktur
 Misalnya perbedaan kecepatan antara berbagai prosesor atau
antara berbagai disk drive
 Tidak memperhitungkan penggunaan tipikal komponen tersebut
 Contoh:
 Operasi Titik Apung Per Detik – FLOPS (Floating Point Operations Per
Second)
 Jutaan Instruksi Per Detik – MIPS (Million Instructions Per Second)
12
3.3.2 Menggunakan pengalaman penjual
(vendor)
 Cara terbaik untuk menentukan kinerja sistem dalam fase desain:
gunakan pengalaman penjual (experience of vendor)
 Penjual (vendor) memiliki banyak pengalaman menjalankan
produk mereka di berbagai konfigurasi infrastruktur
 Vendor dapat menyediakan:
 Peralatan
 Angka-angka
 Praktik-praktik terbaik
13
3.3.3 Pembuatan prototipe
 Juga dikenal sebagai bukti konsep (proof of concept, PoC)
 Prototipe mengukur kinerja sistem pada tahap awal
 Membangun prototipe dengan cara:
 Meminjam peralatan dari pemasok
 Menggunakan kapasitas pusat data di lokasi vendor
 Menggunakan sumber daya komputasi awan
 Fokus pada bagian-bagian dari sistem yang menimbulkan risiko
tertinggi, sedini mungkin dalam proses desain
14
3.3.4 Profil pengguna (User profiling)
 Memprediksi beban yang akan ditimbulkan oleh sistem perangkat
lunak baru pada infrastruktur sebelum perangkat lunak benar-
benar dibangun
 Dapatkan indikasi yang baik tentang penggunaan sistem yang
diharapkan
 Langkah-langkahnya:
 Tentukan jumlah grup pengguna biasa (persona)
 Buat daftar tugas yang akan dilakukan persona di sistem baru
 Dekomposisi tugas menjadi tindakan infrastruktur
 Perkirakan beban per tindakan infrastruktur
 Hitung total beban
15
3.3.4 Profil pengguna (User profiling)
16
3.3.4 Profil pengguna (User profiling)
Beban infrastruktur
17
3.4 Kinerja sistem yang sedang berjalan
3.4.1 Mengelola kemacetan (bottlenecks)
3.4.2 Pengujian kinerja (Performance testing)
18
3.4.1 Mengelola kemacetan (bottlenecks)
 Kinerja sistem didasarkan pada:
 Kinerja semua komponennya
 Interoperabilitas berbagai komponen
 Komponen yang menyebabkan sistem mencapai batas tertentu
disebut sebagai hambatan (bottleneck) sistem
 Setiap sistem memiliki setidaknya satu hambatan yang
membatasi kinerjanya
 Jika hambatan tidak berpengaruh negatif terhadap kinerja sistem
lengkap di bawah beban tertinggi yang diharapkan, maka hal ini
tidak apa-apa
19
3.4.2 Pengujian kinerja
(Performance testing)
 Pengujian beban (load testing) - menunjukkan bagaimana
kinerja sistem di bawah beban yang diharapkan
 Pengujian tekanan (stress testing) - menunjukkan
bagaimana suatu sistem bereaksi ketika berada di bawah
beban yang ekstrim
 Pengujian daya tahan (Endurance testing) - menunjukkan
bagaimana suatu sistem berperilaku ketika digunakan pada
beban yang diharapkan untuk jangka waktu yang lama
20
3.4.2 Pengujian kinerja
(Performance testing) - Breakpoint
 Tingkatkan beban
 Mulai dengan sejumlah kecil
pengguna virtual
 Meningkatkan jumlah selama
periode waktu tertentu
 Hasil pengujian
menunjukkan bagaimana
kinerja bervariasi dengan
beban, yang diberikan
sebagai jumlah pengguna
versus waktu respons.
21
3.4.2 Pengujian kinerja
(Performance testing)
Perangkat lunak pengujian kinerja biasanya menggunakan:
 Satu atau lebih server untuk bertindak sebagai injektor
 Masing-masing meniru sejumlah pengguna
 Masing-masing menjalankan urutan interaksi
 Konduktor/koordinator pengujian
 Mengkoordinasikan tugas
 Mengumpulkan ukuran (metrics) dari masing-masing injektor
 Mengumpulkan data kinerja untuk tujuan pelaporan
22
3.4.2 Pengujian kinerja
(Performance testing)
 Pengujian kinerja harus dilakukan di lingkungan seperti
lingkungan produksi
 Pengujian kinerja dalam lingkungan pengembangan biasanya
mengarah pada hasil yang sangat tidak dapat diandalkan
 Bahkan ketika sistem pengujian kurang bertenaga berkinerja cukup
baik untuk mendapatkan hasil tes yang baik, sistem produksi yang
lebih cepat dapat menunjukkan masalah kinerja yang tidak terjadi
dalam tes
 Untuk mengurangi biaya:
 Gunakan lingkungan pengujian sementara (menyewa)
23
Quiz Interaktif
Jelaskan lima cara untuk meningkatkan kinerja sistem
infrastruktur TI.
24
Ada berbagai cara untuk meningkatkan
kinerja system:
 caching,
 scaling,
 load balancing,
 cluster kinerja tinggi,
 grid,
 desain untuk performa, dan
 manajemen kapasitas.
25
3.5 Pola kinerja
3.5.1 Meningkatkan kinerja pada
lapisan atas
3.5.2 Caching
3.5.3 Proksi web
3.5.4 Penyimpanan data
operasional
3.5.5 Server ujung depan
3.5.6 Basis data dalam memori
3.5.7 Skalabilitas
3.5.8 Penyeimbangan beban
3.5.9 Cluster berkinerja tinggi
3.5.10 Komputasi Grid
3.5.11 Desain untuk digunakan
3.5.12 Manajemen kapasitas
26
Quiz Interaktif
80% masalah kinerja disebabkan oleh aplikasi yang berperilaku
buruk
Jelaskan empat cara untuk meningkatkan kinerja aplikasi
27
3.5.1 Meningkatkan kinerja pada lapisan atas
 80% masalah kinerja disebabkan oleh aplikasi yang
berperilaku buruk
 Kinerja aplikasi dapat ditingkatkan dengan cara:
 Penyetelan basis data dan aplikasi
 Memprioritaskan tugas
 Bekerja dari memori sebanyak mungkin (berlawanan dengan bekerja
dengan data pada disk)
 Memanfaatkan antrian dan penjadwal dengan baik
 Biasanya tindakan ini lebih efektif daripada menambahkan
daya komputasi 28
3.5.2 Caching
 Disk adalah perangkat mekanis yang pada dasarnya lambat
 Caching dapat diimplementasikan pada:
 Disks
 Pengontrol disk
 Sistem operasi
 Semua memori yang tidak digunakan dalam sistem operasi digunakan untuk cache
disk
 Seiring waktu, semua memori diisi dengan permintaan disk yang disimpan sebelumnya
dan blok disk yang dipilih, hal ini mempercepat aplikasi.
 Memori cache:
 Menyimpan semua data yang baru dibaca dari disk
 Menyimpan beberapa blok disk mengikuti blok disk yang baru dibaca
29
3.5.2 Caching
30
3.5.3 Proksi web
 Saat pengguna menelusuri internet, data dapat di-cache pada
server proxy web
 Server Proxy Web adalah sejenis cache
 Data yang diakses lebih awal dapat diambil dari cache, bukan dari
internet
 Manfaat:
 Pengguna mendapatkan data dengan lebih cepat
 Semua pengguna lain diberikan lebih banyak bandwidth ke internet,
karena data tidak harus diunduh lagi
31
3.5.4 Penyimpanan data operasional
 Penyimpanan data operasional (Operational Data Store,
ODS) adalah replika hanya-membaca (read-only) dari bagian
dari database, untuk penggunaan khusus
 Informasi yang sering digunakan diambil dari database ODS
yang kecil
 Basis data utama digunakan lebih sedikit untuk mengambil informasi
 Kinerja basis data utama tidak terdegradasi
32
3.5.5 Server ujung depan
(Front-end server)
 Server front-end melayani permintaan data untuk pengguna
akhir
 Biasanya adalah server web
 Untuk meningkatkan kinerja, simpan data statis di server
front-end
 Gambar adalah kandidat yang baik
 Secara signifikan menurunkan jumlah lalu lintas ke sistem back-end
 Selain itu, proxy terbalik (reverse proxy) dapat digunakan
 Secara otomatis melakukan cache untuk data yang paling banyak
diminta 33
Pengertian Reverse Proxy
 Dalam ilmu jaringan komputer, ketika seseorang mulai mengakses website akan
terjadi proses pertukaran data dari seseorang atau disebut client ke server.
 Proses pertukaran data yang dimaksud adalah proses client mengirimkan request
untuk mengakses suatu website ke server. Kemudian server akan mengirimkan
balasan kepada client.
 Proses pertukaran data antara client dan server diharapkan bisa berjalan dengan
lancar tanpa ada kendala baik kendala teknis maupun non teknis misalnya load
website yang lama hingga terkena serangan.
 Nah dengan bantuan Reverse Proxy, proses pertukaran data antara client dan
server akan berjalan dengan lancar.
 Reverse Proxy berada diantara client dan server. Tidak hanya itu, selain menjamin
proses pertukaran data lancar, Reverse Proxy juga dapat mengamankan proses
pertukaran data dari serangan DDoS. Biasanya Reverse Proxy diterapkan pada
web server.
34
3.5.6 Basis data dalam memori
 Dalam keadaan khusus, seluruh basis data dapat dijalankan
dari memori alih-alih dari disk
 Basis data dalam memori digunakan dalam situasi di mana
kinerja sangat penting – misalnya sistem SCADA real-time
 Sistem pemrosesan transaksi online kinerja tinggi (OLTP)
 Sebagai contoh, pada tahun 2011 SAP AG memperkenalkan
HANA, basis data dalam memori untuk sistem SAP
 Pengaturan khusus harus dibuat untuk memastikan data tidak
hilang saat terjadi kegagalan daya listrik.
35
3.5.7 Skalabilitas
 Skalabilitas menunjukkan kemudahan dengan suatu sistem
dapat dimodifikasi, atau komponen dapat ditambahkan, untuk
menangani peningkatan beban
 Dua cara untuk men-skala suatu sistem:
 Penskalaan vertikal (penskalaan ke atas) - Menambahkan sumber
daya ke satu komponen tunggal
 Penskalaan horisontal (penskalaan ke luar) - Menambahkan lebih
banyak komponen untuk infrastruktur
36
3.5.7 Skalabilitas –
Penskalaan vertikal
 Menambahkan lebih banyak sumber daya, misalnya:
 Server: lebih banyak memori, CPU
 Saklar jaringgan (network switch): Menambahkan lebih banyak port
 Penyimpanan (storage): Ganti disk kecil dengan disk yang lebih
besar kapasitasnya
 Penskalaan vertikal mudah dilakukan
 Dengan cepat mencapai batas
 Komponen infrastruktur adalah "penuh"
37
3.5.7 Skalabilitas –
Penskalaan horizontal
 Menambahkan lebih banyak komponen ke infrastruktur, misalnya:
 Menambahkan server ke kumpulan server web (web server farm)
 Menambahkan disk ke sistem penyimpanan
 Secara teori, skala penskalaan horizontal jauh lebih baik
 Waspada/sadar akan munculnya bottleneck
 Menggandakan jumlah komponen tidak selalu menggandakan
kinerja
 Penskalaan horizontal adalah dasar untuk komputasi awan
 Aplikasi harus menyadari penskalaan komponen infrastruktur
38
3.5.7 Skalabilitas –
Penskalaan horizontal
39
Skalabilitas horizontal bekerja paling baik ketika sistem dipartisi.
Dengan cara ini, bagian dari sistem dapat menskala secara
independen dari bagian lain dari sistem.
Di bawah ini adalah contoh khas dari sistem yang dipartisi.
3.5.7 Skalabilitas –
Penskalaan horizontal
40
3.5.8 Penyeimbangan beban
(Load balancing)
 Penyeimbangan beban (Load Balancing) menggunakan
beberapa server yang melakukan tugas yang identic,
Contohnya:
 Kumpulan server web (web server farm)
 Kumpulan server surat (mail server Farm)
 FTP (File Transfer Protocol) Server Farm
 Penyeimbang beban menyebarkan beban pada mesin-mesin
komputer yang tersedia
 Periksa beban saat ini di setiap server di kumpulan server
 Kirimkan permintaan yang masuk ke server yang paling tidak sibuk 41
3.5.8 Penyeimbangan beban
(Load balancing)
42
3.5.8 Penyeimbangan beban
(Load balancing)
 Penyeimbang beban tingkat lanjut (advanced load balancers) dapat
menyebarkan beban berdasarkan:
 Jumlah koneksi yang dimiliki server
 Waktu tanggap yang diukur dari server
 Aplikasi yang berjalan pada sistem yang seimbang beban harus dapat
mengatasi fakta bahwa setiap permintaan dapat ditangani oleh server
yang berbeda
 Penyeimbang beban harus mengetahui keadaan aplikasi
 Mekanisme penyeimbang beban dapat mengatur bahwa sesi pengguna selalu
terhubung ke server yang sama
 Jika suatu server pada server farm mati, informasi sesi menjadi tidak dapat
diakses dan sesi hilang 43
3.5.8 Penyeimbangan beban
(Load balancing)
 Penyeimbang beban meningkatkan ketersediaan
 Ketika server di server farm tidak tersedia, penyeimbang beban
memperhatikan hal ini dan memastikan tidak ada permintaan
yang dikirim ke server yang tidak tersedia sampai kembali
online lagi
 Ketersediaan load balancer itu sendiri sangat penting
 Penyeimbang beban biasanya diatur dalam konfigurasi failover
44
3.5.8 Penyeimbangan beban
(Load balancing)
 Penyeimbangan beban jaringan:
 Menyebarkan beban jaringan melalui beberapa koneksi jaringan
 Sebagian besar sakelar (switch) jaringan mendukung trunking port
 Beberapa koneksi Ethernet digabungkan untuk mendapatkan koneksi
Ethernet virtual yang menyediakan throughput yang lebih tinggi
 Beban diseimbangkan melalui koneksi dengan sakelar jaringan
 Penyeimbangan beban penyimpanan:
 Menggunakan beberapa disk untuk menyebarkan beban baca dan
tulis
 Gunakan banyak koneksi antara server dan sistem penyimpanan
45
3.5.9 Cluster berkinerja tinggi
 Cluster berkinerja tinggi menyediakan sejumlah besar daya
komputasi dengan menggabungkan banyak sistem komputer
 Sejumlah besar server murah dapat membuat satu
superkomputer besar
 Digunakan untuk sistem perhitungan intensif, misalnya:
 Ramalan cuaca
 Riset Geologi
 Penelitian nuklir
 Riset Farmasi
 TOP500.org 46
3.5.9 Cluster berkinerja tinggi
47
3.5.10 Komputasi Grid
(Grid Computing)
 Komputasi Grid adalah klaster berkinerja tinggi yang terdiri
dari sistem yang tersebar secara geografis
 Bandwidth yang terbatas adalah hal yang menghambatan
 Contoh:
 SETI@HOME
 CERN LHC Computing Grid (140 pusat komputasi di 35 negara)
 Perusahaan pialang ada untuk eksploitasi komersial grid
 Keamanan menjadi perhatian saat komputer di jaringan (grid)
tidak terkendali
48
3.5.11 Desain untuk digunakan
 Aplikasi kinerja kritis harus dirancang sedemikian rupa
 Tips:
 Ketahui untuk apa sistem akan digunakan
 Gudang data yang besar membutuhkan desain infrastruktur yang
berbeda dari sistem pemrosesan transaksi online atau aplikasi web
 Sistem interaktif berbeda dari sistem berorientasi batch
 Jika memungkinkan, cobalah untuk menyebarkan beban sistem
selama waktu yang tersedia
49
3.5.11 Desain untuk digunakan
 Dalam beberapa kasus, produk khusus harus digunakan untuk sistem
tertentu
 Sistem operasi waktu nyata (real-time operating systems)
 Database dalam memori (in-memory databases)
 Sistem file yang dirancang khusus
 Gunakan rencana implementasi standar yang terbukti dalam praktik
 Ikuti implementasi yang direkomendasikan vendor
 Minta vendor memeriksa desain yang Anda buat
 Memindahkan data yang jarang digunakan dari sistem utama ke sistem lain
 Memindahkan data lama ke database historis yang besar dapat mempercepat database
berukuran lebih kecil
50
3.5.12 Manajemen kapasitas
 Manajemen kapasitas menjamin kinerja sistem yang tinggi
dalam jangka panjang
 Untuk memastikan kinerja tetap dalam batas yang dapat
diterima, kinerja harus dipantau
 Analisis tren dapat digunakan untuk memprediksi penurunan
kinerja
 Mengantisipasi perubahan bisnis (seperti kampanye
pemasaran yang akan datang)
51

More Related Content

Similar to M-MIT-03 Konsep Kinerja.pptx

kualitas source code dan pengujian program
kualitas source code dan pengujian programkualitas source code dan pengujian program
kualitas source code dan pengujian programRioKomando
 
Rpl 03 - proses proses perangkat lunak
Rpl   03 - proses proses perangkat lunakRpl   03 - proses proses perangkat lunak
Rpl 03 - proses proses perangkat lunakFebriyani Syafri
 
72238483-Perancangan-Basis-Data.ppt
72238483-Perancangan-Basis-Data.ppt72238483-Perancangan-Basis-Data.ppt
72238483-Perancangan-Basis-Data.pptmerisipahutar
 
Konsep dasar basis data terpusat,ppde
Konsep dasar basis data terpusat,ppdeKonsep dasar basis data terpusat,ppde
Konsep dasar basis data terpusat,ppdePT.Citra Mulia
 
Kerangka acuan kerja (kak) aplikasi pengajuan tugas akhir skripsi (1)
Kerangka acuan kerja (kak) aplikasi pengajuan tugas akhir skripsi (1)Kerangka acuan kerja (kak) aplikasi pengajuan tugas akhir skripsi (1)
Kerangka acuan kerja (kak) aplikasi pengajuan tugas akhir skripsi (1)Ganendra Afrasya
 
Sistem penyelesaian masalah IT
Sistem penyelesaian masalah ITSistem penyelesaian masalah IT
Sistem penyelesaian masalah ITMuhammadRyandaNM
 
Tugas sim, yenni nalam, yananto mihadi, pengembangan sistem informasi,, 2018
Tugas sim, yenni nalam, yananto mihadi, pengembangan sistem informasi,, 2018Tugas sim, yenni nalam, yananto mihadi, pengembangan sistem informasi,, 2018
Tugas sim, yenni nalam, yananto mihadi, pengembangan sistem informasi,, 2018ynsinaga
 
Sim p13, rizhul januar ramadhan, prof hapzi ali mm, sistem life cycle, univer...
Sim p13, rizhul januar ramadhan, prof hapzi ali mm, sistem life cycle, univer...Sim p13, rizhul januar ramadhan, prof hapzi ali mm, sistem life cycle, univer...
Sim p13, rizhul januar ramadhan, prof hapzi ali mm, sistem life cycle, univer...Rizhul Ramadhan
 
Strategi Pengujian Perangkat Lunak.ppt
Strategi Pengujian Perangkat Lunak.pptStrategi Pengujian Perangkat Lunak.ppt
Strategi Pengujian Perangkat Lunak.pptsmk methodist-8
 
Sim, nurul iqbal, hapzi ali, sumber daya komputasi dan komunikasi, universita...
Sim, nurul iqbal, hapzi ali, sumber daya komputasi dan komunikasi, universita...Sim, nurul iqbal, hapzi ali, sumber daya komputasi dan komunikasi, universita...
Sim, nurul iqbal, hapzi ali, sumber daya komputasi dan komunikasi, universita...nurul iqbal
 
Kerangka acuan kerja (kak) aplikasi pengajuan keluhan inspektorat
Kerangka acuan kerja (kak) aplikasi pengajuan keluhan inspektoratKerangka acuan kerja (kak) aplikasi pengajuan keluhan inspektorat
Kerangka acuan kerja (kak) aplikasi pengajuan keluhan inspektoratGanendra Afrasya
 
SIM, Titis Puspaningsih, Hapzi Ali, Sumber Daya Komputasi dan Komunikasi, Uni...
SIM, Titis Puspaningsih, Hapzi Ali, Sumber Daya Komputasi dan Komunikasi, Uni...SIM, Titis Puspaningsih, Hapzi Ali, Sumber Daya Komputasi dan Komunikasi, Uni...
SIM, Titis Puspaningsih, Hapzi Ali, Sumber Daya Komputasi dan Komunikasi, Uni...Titis Puspa
 

Similar to M-MIT-03 Konsep Kinerja.pptx (20)

ETS - KAK
ETS - KAKETS - KAK
ETS - KAK
 
kualitas source code dan pengujian program
kualitas source code dan pengujian programkualitas source code dan pengujian program
kualitas source code dan pengujian program
 
Kakets
KaketsKakets
Kakets
 
Rpl 03 - proses proses perangkat lunak
Rpl   03 - proses proses perangkat lunakRpl   03 - proses proses perangkat lunak
Rpl 03 - proses proses perangkat lunak
 
Ets mppl
Ets mpplEts mppl
Ets mppl
 
72238483-Perancangan-Basis-Data.ppt
72238483-Perancangan-Basis-Data.ppt72238483-Perancangan-Basis-Data.ppt
72238483-Perancangan-Basis-Data.ppt
 
Konsep dasar basis data terpusat,ppde
Konsep dasar basis data terpusat,ppdeKonsep dasar basis data terpusat,ppde
Konsep dasar basis data terpusat,ppde
 
Kerangka acuan kerja (kak) aplikasi pengajuan tugas akhir skripsi (1)
Kerangka acuan kerja (kak) aplikasi pengajuan tugas akhir skripsi (1)Kerangka acuan kerja (kak) aplikasi pengajuan tugas akhir skripsi (1)
Kerangka acuan kerja (kak) aplikasi pengajuan tugas akhir skripsi (1)
 
Sistem penyelesaian masalah IT
Sistem penyelesaian masalah ITSistem penyelesaian masalah IT
Sistem penyelesaian masalah IT
 
Tugas sim, yenni nalam, yananto mihadi, pengembangan sistem informasi,, 2018
Tugas sim, yenni nalam, yananto mihadi, pengembangan sistem informasi,, 2018Tugas sim, yenni nalam, yananto mihadi, pengembangan sistem informasi,, 2018
Tugas sim, yenni nalam, yananto mihadi, pengembangan sistem informasi,, 2018
 
Sim p13, rizhul januar ramadhan, prof hapzi ali mm, sistem life cycle, univer...
Sim p13, rizhul januar ramadhan, prof hapzi ali mm, sistem life cycle, univer...Sim p13, rizhul januar ramadhan, prof hapzi ali mm, sistem life cycle, univer...
Sim p13, rizhul januar ramadhan, prof hapzi ali mm, sistem life cycle, univer...
 
Strategi Pengujian Perangkat Lunak.ppt
Strategi Pengujian Perangkat Lunak.pptStrategi Pengujian Perangkat Lunak.ppt
Strategi Pengujian Perangkat Lunak.ppt
 
Sim, nurul iqbal, hapzi ali, sumber daya komputasi dan komunikasi, universita...
Sim, nurul iqbal, hapzi ali, sumber daya komputasi dan komunikasi, universita...Sim, nurul iqbal, hapzi ali, sumber daya komputasi dan komunikasi, universita...
Sim, nurul iqbal, hapzi ali, sumber daya komputasi dan komunikasi, universita...
 
Gamb umum so
Gamb umum soGamb umum so
Gamb umum so
 
Gamb umum so
Gamb umum soGamb umum so
Gamb umum so
 
ETS MPPL 2019
ETS MPPL 2019ETS MPPL 2019
ETS MPPL 2019
 
Kerangka acuan kerja (kak) aplikasi pengajuan keluhan inspektorat
Kerangka acuan kerja (kak) aplikasi pengajuan keluhan inspektoratKerangka acuan kerja (kak) aplikasi pengajuan keluhan inspektorat
Kerangka acuan kerja (kak) aplikasi pengajuan keluhan inspektorat
 
Apsi kel 4
Apsi kel 4Apsi kel 4
Apsi kel 4
 
COMPUTER SYSTEM ENGINEERING
COMPUTER SYSTEM ENGINEERINGCOMPUTER SYSTEM ENGINEERING
COMPUTER SYSTEM ENGINEERING
 
SIM, Titis Puspaningsih, Hapzi Ali, Sumber Daya Komputasi dan Komunikasi, Uni...
SIM, Titis Puspaningsih, Hapzi Ali, Sumber Daya Komputasi dan Komunikasi, Uni...SIM, Titis Puspaningsih, Hapzi Ali, Sumber Daya Komputasi dan Komunikasi, Uni...
SIM, Titis Puspaningsih, Hapzi Ali, Sumber Daya Komputasi dan Komunikasi, Uni...
 

M-MIT-03 Konsep Kinerja.pptx

  • 1. 1 Manajemen Infrastruktur TI: MIT-03 Konsep Kinerja (Performance Concepts) Rumadi Hartawan, S.T., M.Kom.
  • 2. Buku Acuan 1 IT Infrastructure Architecture Infrastructure Building Blocks and Concepts Third Edition Sjaak Laan Lulu Press Inc, 2017 https://s.id/itia3ed http://www.sjaaklaan.com/ 2
  • 3. 3. Konsep Kinerja 3.1 Pendahuluan 3.2 Kinerja yang dirasakan 3.3 Kinerja selama desain infrastruktur 3.4 Kinerja sistem yang sedang berjalan 3.5 Pola kinerja 3
  • 4. 3.1 Pendahuluan  Performa adalah faktor kinerja yang khas  Tidak ada yang mempermasalahkan sistem berkinerja tinggi  Tetapi ketika suatu sistem tidak berkinerja cukup baik, pengguna dengan cepat mulai mengeluh 4
  • 5. 3.1 Pendahuluan  Sebagai contoh, menurut Equation Research:  78% pengunjung situs web telah mengunjungi situs pesaing karena kinerja yang buruk selama waktu puncak  88% lebih kecil kemungkinannya untuk kembali ke situs setelah pengalaman pengguna yang buruk  47% tersisa dengan persepsi yang kurang positif terhadap perusahaan  Dalam investigasi serupa pada tahun 2010, Akamai dan PhoCusWright menemukan bahwa 57% pembeli online akan menunggu tiga detik atau kurang sebelum meninggalkan situs dan 65% remaja berusia 18 hingga 24 tahun mengharapkan situs dimuat dalam dua detik atau kurang. 5
  • 6. 3.2 Kinerja yang dirasakan  Kinerja yang dirasakan (perceived performance) mengacu pada seberapa cepat suatu sistem muncul untuk melakukan tugasnya  Secara umum, orang cenderung melebih-lebihkan kesabarannya sendiri  Orang cenderung menghargai prediktabilitas dalam kinerja  Ketika kinerja sistem berfluktuasi, pengguna mengingat pengalaman buruk  Bahkan jika fluktuasinya relatif jarang 6
  • 7. 3.2 Kinerja yang dirasakan Beri tahu pengguna tentang berapa lama tugas akan berlangsung dengan menggunakan  Bilah kemajuan (progress bars)  Layar percikan (splash screens) 7
  • 8. 3.3 Kinerja selama desain infrastruktur 3.3.1 Pembandingan (Benchmarking) 3.3.2 Menggunakan pengalaman penjual (vendor) 3.3.3 Pembuatan prototipe 3.3.4 Profil pengguna (User profiling) 8
  • 9. 3.3 Kinerja selama desain infrastruktur  Solusi harus dirancang, diimplementasikan, dan didukung untuk memenuhi persyaratan kinerja  Bahkan di bawah beban yang meningkat  Menghitung performansi suatu sistem pada tahap desain adalah:  Sangat sulit  Sangat tidak bisa diandalkan 9
  • 10. 3.3 Kinerja selama desain infrastruktur  Kinerja harus diperhatikan:  Ketika sistem bekerja seperti yang diharapkan  Ketika sistem dalam keadaan khusus, seperti:  Bagian yang gagal  Kondisi pemeliharaan  Melakukan pencadangan  Menjalankan pekerjaan batch  Beberapa cara untuk melakukannya adalah:  Pembandingan (Benchmarking)  Menggunakan pengalaman vendor  Prototipe  Profil Pengguna 10
  • 11. 3.3.1 Pembandingan (Benchmarking)  Tolok ukur (benchmarks) menggunakan program pengujian khusus untuk menilai kinerja relatif dari komponen infrastruktur  Perbandingan tolok ukur:  Kinerja berbagai subsistem  Melintasi arsitektur sistem yang berbeda 11
  • 12. 3.3.1 Pembandingan (Benchmarking) Tolok ukur membandingkan kecepatan bagian infrastruktur  Misalnya perbedaan kecepatan antara berbagai prosesor atau antara berbagai disk drive  Tidak memperhitungkan penggunaan tipikal komponen tersebut  Contoh:  Operasi Titik Apung Per Detik – FLOPS (Floating Point Operations Per Second)  Jutaan Instruksi Per Detik – MIPS (Million Instructions Per Second) 12
  • 13. 3.3.2 Menggunakan pengalaman penjual (vendor)  Cara terbaik untuk menentukan kinerja sistem dalam fase desain: gunakan pengalaman penjual (experience of vendor)  Penjual (vendor) memiliki banyak pengalaman menjalankan produk mereka di berbagai konfigurasi infrastruktur  Vendor dapat menyediakan:  Peralatan  Angka-angka  Praktik-praktik terbaik 13
  • 14. 3.3.3 Pembuatan prototipe  Juga dikenal sebagai bukti konsep (proof of concept, PoC)  Prototipe mengukur kinerja sistem pada tahap awal  Membangun prototipe dengan cara:  Meminjam peralatan dari pemasok  Menggunakan kapasitas pusat data di lokasi vendor  Menggunakan sumber daya komputasi awan  Fokus pada bagian-bagian dari sistem yang menimbulkan risiko tertinggi, sedini mungkin dalam proses desain 14
  • 15. 3.3.4 Profil pengguna (User profiling)  Memprediksi beban yang akan ditimbulkan oleh sistem perangkat lunak baru pada infrastruktur sebelum perangkat lunak benar- benar dibangun  Dapatkan indikasi yang baik tentang penggunaan sistem yang diharapkan  Langkah-langkahnya:  Tentukan jumlah grup pengguna biasa (persona)  Buat daftar tugas yang akan dilakukan persona di sistem baru  Dekomposisi tugas menjadi tindakan infrastruktur  Perkirakan beban per tindakan infrastruktur  Hitung total beban 15
  • 16. 3.3.4 Profil pengguna (User profiling) 16
  • 17. 3.3.4 Profil pengguna (User profiling) Beban infrastruktur 17
  • 18. 3.4 Kinerja sistem yang sedang berjalan 3.4.1 Mengelola kemacetan (bottlenecks) 3.4.2 Pengujian kinerja (Performance testing) 18
  • 19. 3.4.1 Mengelola kemacetan (bottlenecks)  Kinerja sistem didasarkan pada:  Kinerja semua komponennya  Interoperabilitas berbagai komponen  Komponen yang menyebabkan sistem mencapai batas tertentu disebut sebagai hambatan (bottleneck) sistem  Setiap sistem memiliki setidaknya satu hambatan yang membatasi kinerjanya  Jika hambatan tidak berpengaruh negatif terhadap kinerja sistem lengkap di bawah beban tertinggi yang diharapkan, maka hal ini tidak apa-apa 19
  • 20. 3.4.2 Pengujian kinerja (Performance testing)  Pengujian beban (load testing) - menunjukkan bagaimana kinerja sistem di bawah beban yang diharapkan  Pengujian tekanan (stress testing) - menunjukkan bagaimana suatu sistem bereaksi ketika berada di bawah beban yang ekstrim  Pengujian daya tahan (Endurance testing) - menunjukkan bagaimana suatu sistem berperilaku ketika digunakan pada beban yang diharapkan untuk jangka waktu yang lama 20
  • 21. 3.4.2 Pengujian kinerja (Performance testing) - Breakpoint  Tingkatkan beban  Mulai dengan sejumlah kecil pengguna virtual  Meningkatkan jumlah selama periode waktu tertentu  Hasil pengujian menunjukkan bagaimana kinerja bervariasi dengan beban, yang diberikan sebagai jumlah pengguna versus waktu respons. 21
  • 22. 3.4.2 Pengujian kinerja (Performance testing) Perangkat lunak pengujian kinerja biasanya menggunakan:  Satu atau lebih server untuk bertindak sebagai injektor  Masing-masing meniru sejumlah pengguna  Masing-masing menjalankan urutan interaksi  Konduktor/koordinator pengujian  Mengkoordinasikan tugas  Mengumpulkan ukuran (metrics) dari masing-masing injektor  Mengumpulkan data kinerja untuk tujuan pelaporan 22
  • 23. 3.4.2 Pengujian kinerja (Performance testing)  Pengujian kinerja harus dilakukan di lingkungan seperti lingkungan produksi  Pengujian kinerja dalam lingkungan pengembangan biasanya mengarah pada hasil yang sangat tidak dapat diandalkan  Bahkan ketika sistem pengujian kurang bertenaga berkinerja cukup baik untuk mendapatkan hasil tes yang baik, sistem produksi yang lebih cepat dapat menunjukkan masalah kinerja yang tidak terjadi dalam tes  Untuk mengurangi biaya:  Gunakan lingkungan pengujian sementara (menyewa) 23
  • 24. Quiz Interaktif Jelaskan lima cara untuk meningkatkan kinerja sistem infrastruktur TI. 24
  • 25. Ada berbagai cara untuk meningkatkan kinerja system:  caching,  scaling,  load balancing,  cluster kinerja tinggi,  grid,  desain untuk performa, dan  manajemen kapasitas. 25
  • 26. 3.5 Pola kinerja 3.5.1 Meningkatkan kinerja pada lapisan atas 3.5.2 Caching 3.5.3 Proksi web 3.5.4 Penyimpanan data operasional 3.5.5 Server ujung depan 3.5.6 Basis data dalam memori 3.5.7 Skalabilitas 3.5.8 Penyeimbangan beban 3.5.9 Cluster berkinerja tinggi 3.5.10 Komputasi Grid 3.5.11 Desain untuk digunakan 3.5.12 Manajemen kapasitas 26
  • 27. Quiz Interaktif 80% masalah kinerja disebabkan oleh aplikasi yang berperilaku buruk Jelaskan empat cara untuk meningkatkan kinerja aplikasi 27
  • 28. 3.5.1 Meningkatkan kinerja pada lapisan atas  80% masalah kinerja disebabkan oleh aplikasi yang berperilaku buruk  Kinerja aplikasi dapat ditingkatkan dengan cara:  Penyetelan basis data dan aplikasi  Memprioritaskan tugas  Bekerja dari memori sebanyak mungkin (berlawanan dengan bekerja dengan data pada disk)  Memanfaatkan antrian dan penjadwal dengan baik  Biasanya tindakan ini lebih efektif daripada menambahkan daya komputasi 28
  • 29. 3.5.2 Caching  Disk adalah perangkat mekanis yang pada dasarnya lambat  Caching dapat diimplementasikan pada:  Disks  Pengontrol disk  Sistem operasi  Semua memori yang tidak digunakan dalam sistem operasi digunakan untuk cache disk  Seiring waktu, semua memori diisi dengan permintaan disk yang disimpan sebelumnya dan blok disk yang dipilih, hal ini mempercepat aplikasi.  Memori cache:  Menyimpan semua data yang baru dibaca dari disk  Menyimpan beberapa blok disk mengikuti blok disk yang baru dibaca 29
  • 31. 3.5.3 Proksi web  Saat pengguna menelusuri internet, data dapat di-cache pada server proxy web  Server Proxy Web adalah sejenis cache  Data yang diakses lebih awal dapat diambil dari cache, bukan dari internet  Manfaat:  Pengguna mendapatkan data dengan lebih cepat  Semua pengguna lain diberikan lebih banyak bandwidth ke internet, karena data tidak harus diunduh lagi 31
  • 32. 3.5.4 Penyimpanan data operasional  Penyimpanan data operasional (Operational Data Store, ODS) adalah replika hanya-membaca (read-only) dari bagian dari database, untuk penggunaan khusus  Informasi yang sering digunakan diambil dari database ODS yang kecil  Basis data utama digunakan lebih sedikit untuk mengambil informasi  Kinerja basis data utama tidak terdegradasi 32
  • 33. 3.5.5 Server ujung depan (Front-end server)  Server front-end melayani permintaan data untuk pengguna akhir  Biasanya adalah server web  Untuk meningkatkan kinerja, simpan data statis di server front-end  Gambar adalah kandidat yang baik  Secara signifikan menurunkan jumlah lalu lintas ke sistem back-end  Selain itu, proxy terbalik (reverse proxy) dapat digunakan  Secara otomatis melakukan cache untuk data yang paling banyak diminta 33
  • 34. Pengertian Reverse Proxy  Dalam ilmu jaringan komputer, ketika seseorang mulai mengakses website akan terjadi proses pertukaran data dari seseorang atau disebut client ke server.  Proses pertukaran data yang dimaksud adalah proses client mengirimkan request untuk mengakses suatu website ke server. Kemudian server akan mengirimkan balasan kepada client.  Proses pertukaran data antara client dan server diharapkan bisa berjalan dengan lancar tanpa ada kendala baik kendala teknis maupun non teknis misalnya load website yang lama hingga terkena serangan.  Nah dengan bantuan Reverse Proxy, proses pertukaran data antara client dan server akan berjalan dengan lancar.  Reverse Proxy berada diantara client dan server. Tidak hanya itu, selain menjamin proses pertukaran data lancar, Reverse Proxy juga dapat mengamankan proses pertukaran data dari serangan DDoS. Biasanya Reverse Proxy diterapkan pada web server. 34
  • 35. 3.5.6 Basis data dalam memori  Dalam keadaan khusus, seluruh basis data dapat dijalankan dari memori alih-alih dari disk  Basis data dalam memori digunakan dalam situasi di mana kinerja sangat penting – misalnya sistem SCADA real-time  Sistem pemrosesan transaksi online kinerja tinggi (OLTP)  Sebagai contoh, pada tahun 2011 SAP AG memperkenalkan HANA, basis data dalam memori untuk sistem SAP  Pengaturan khusus harus dibuat untuk memastikan data tidak hilang saat terjadi kegagalan daya listrik. 35
  • 36. 3.5.7 Skalabilitas  Skalabilitas menunjukkan kemudahan dengan suatu sistem dapat dimodifikasi, atau komponen dapat ditambahkan, untuk menangani peningkatan beban  Dua cara untuk men-skala suatu sistem:  Penskalaan vertikal (penskalaan ke atas) - Menambahkan sumber daya ke satu komponen tunggal  Penskalaan horisontal (penskalaan ke luar) - Menambahkan lebih banyak komponen untuk infrastruktur 36
  • 37. 3.5.7 Skalabilitas – Penskalaan vertikal  Menambahkan lebih banyak sumber daya, misalnya:  Server: lebih banyak memori, CPU  Saklar jaringgan (network switch): Menambahkan lebih banyak port  Penyimpanan (storage): Ganti disk kecil dengan disk yang lebih besar kapasitasnya  Penskalaan vertikal mudah dilakukan  Dengan cepat mencapai batas  Komponen infrastruktur adalah "penuh" 37
  • 38. 3.5.7 Skalabilitas – Penskalaan horizontal  Menambahkan lebih banyak komponen ke infrastruktur, misalnya:  Menambahkan server ke kumpulan server web (web server farm)  Menambahkan disk ke sistem penyimpanan  Secara teori, skala penskalaan horizontal jauh lebih baik  Waspada/sadar akan munculnya bottleneck  Menggandakan jumlah komponen tidak selalu menggandakan kinerja  Penskalaan horizontal adalah dasar untuk komputasi awan  Aplikasi harus menyadari penskalaan komponen infrastruktur 38
  • 39. 3.5.7 Skalabilitas – Penskalaan horizontal 39 Skalabilitas horizontal bekerja paling baik ketika sistem dipartisi. Dengan cara ini, bagian dari sistem dapat menskala secara independen dari bagian lain dari sistem. Di bawah ini adalah contoh khas dari sistem yang dipartisi.
  • 41. 3.5.8 Penyeimbangan beban (Load balancing)  Penyeimbangan beban (Load Balancing) menggunakan beberapa server yang melakukan tugas yang identic, Contohnya:  Kumpulan server web (web server farm)  Kumpulan server surat (mail server Farm)  FTP (File Transfer Protocol) Server Farm  Penyeimbang beban menyebarkan beban pada mesin-mesin komputer yang tersedia  Periksa beban saat ini di setiap server di kumpulan server  Kirimkan permintaan yang masuk ke server yang paling tidak sibuk 41
  • 43. 3.5.8 Penyeimbangan beban (Load balancing)  Penyeimbang beban tingkat lanjut (advanced load balancers) dapat menyebarkan beban berdasarkan:  Jumlah koneksi yang dimiliki server  Waktu tanggap yang diukur dari server  Aplikasi yang berjalan pada sistem yang seimbang beban harus dapat mengatasi fakta bahwa setiap permintaan dapat ditangani oleh server yang berbeda  Penyeimbang beban harus mengetahui keadaan aplikasi  Mekanisme penyeimbang beban dapat mengatur bahwa sesi pengguna selalu terhubung ke server yang sama  Jika suatu server pada server farm mati, informasi sesi menjadi tidak dapat diakses dan sesi hilang 43
  • 44. 3.5.8 Penyeimbangan beban (Load balancing)  Penyeimbang beban meningkatkan ketersediaan  Ketika server di server farm tidak tersedia, penyeimbang beban memperhatikan hal ini dan memastikan tidak ada permintaan yang dikirim ke server yang tidak tersedia sampai kembali online lagi  Ketersediaan load balancer itu sendiri sangat penting  Penyeimbang beban biasanya diatur dalam konfigurasi failover 44
  • 45. 3.5.8 Penyeimbangan beban (Load balancing)  Penyeimbangan beban jaringan:  Menyebarkan beban jaringan melalui beberapa koneksi jaringan  Sebagian besar sakelar (switch) jaringan mendukung trunking port  Beberapa koneksi Ethernet digabungkan untuk mendapatkan koneksi Ethernet virtual yang menyediakan throughput yang lebih tinggi  Beban diseimbangkan melalui koneksi dengan sakelar jaringan  Penyeimbangan beban penyimpanan:  Menggunakan beberapa disk untuk menyebarkan beban baca dan tulis  Gunakan banyak koneksi antara server dan sistem penyimpanan 45
  • 46. 3.5.9 Cluster berkinerja tinggi  Cluster berkinerja tinggi menyediakan sejumlah besar daya komputasi dengan menggabungkan banyak sistem komputer  Sejumlah besar server murah dapat membuat satu superkomputer besar  Digunakan untuk sistem perhitungan intensif, misalnya:  Ramalan cuaca  Riset Geologi  Penelitian nuklir  Riset Farmasi  TOP500.org 46
  • 48. 3.5.10 Komputasi Grid (Grid Computing)  Komputasi Grid adalah klaster berkinerja tinggi yang terdiri dari sistem yang tersebar secara geografis  Bandwidth yang terbatas adalah hal yang menghambatan  Contoh:  SETI@HOME  CERN LHC Computing Grid (140 pusat komputasi di 35 negara)  Perusahaan pialang ada untuk eksploitasi komersial grid  Keamanan menjadi perhatian saat komputer di jaringan (grid) tidak terkendali 48
  • 49. 3.5.11 Desain untuk digunakan  Aplikasi kinerja kritis harus dirancang sedemikian rupa  Tips:  Ketahui untuk apa sistem akan digunakan  Gudang data yang besar membutuhkan desain infrastruktur yang berbeda dari sistem pemrosesan transaksi online atau aplikasi web  Sistem interaktif berbeda dari sistem berorientasi batch  Jika memungkinkan, cobalah untuk menyebarkan beban sistem selama waktu yang tersedia 49
  • 50. 3.5.11 Desain untuk digunakan  Dalam beberapa kasus, produk khusus harus digunakan untuk sistem tertentu  Sistem operasi waktu nyata (real-time operating systems)  Database dalam memori (in-memory databases)  Sistem file yang dirancang khusus  Gunakan rencana implementasi standar yang terbukti dalam praktik  Ikuti implementasi yang direkomendasikan vendor  Minta vendor memeriksa desain yang Anda buat  Memindahkan data yang jarang digunakan dari sistem utama ke sistem lain  Memindahkan data lama ke database historis yang besar dapat mempercepat database berukuran lebih kecil 50
  • 51. 3.5.12 Manajemen kapasitas  Manajemen kapasitas menjamin kinerja sistem yang tinggi dalam jangka panjang  Untuk memastikan kinerja tetap dalam batas yang dapat diterima, kinerja harus dipantau  Analisis tren dapat digunakan untuk memprediksi penurunan kinerja  Mengantisipasi perubahan bisnis (seperti kampanye pemasaran yang akan datang) 51

Editor's Notes

  1. 3 Performance Concepts 3.1 Introduction 3.2 Perceived performance 3.3 Performance during infrastructure design 3.4 Performance of a running system 3.5 Performance patterns
  2. Introduction Performance is a typical hygiene factor Nobody notices a highly performing system But when a system is not performing well enough, users quickly start complaining
  3. As an example, according to Equation Research [8]: · 78% of website visitors have gone to a competitor’s site due to poor performance during peak times · 88% are less likely to return to a site after a poor user experience · 47% left with a less positive perception of the company In a similar investigation in 2010, Akamai and PhoCusWright [9] found that 57% of online shoppers will wait three seconds or less before abandoning the site and 65% of 18- to 24-year-olds expect a site to load in two seconds or less.
  4. Perceived performance •Perceived performance refers to how quickly a system appearsto perform its task •In general, people tend to overestimate their own patience •People tend to value predictability in performance –When the performance of a system is fluctuating, users remember a bad experience –Even if the fluctuation is relatively rare
  5. Perceived performance Inform the user about how long a task will take Progress bars Splash screens
  6. 5.3 Performance during infrastructure design 5.3.1 Benchmarking 5.3.2 Using vendor experience 5.3.3 Prototyping 5.3.4 User profiling
  7. Performance during infrastructure design A solution must be designed, implemented, and supported to meet the performance requirements Even under increasing load Calculating performance of a system in the design phase is: –Extremely difficult –Very unreliable
  8. Performance during infrastructure design •Performance must be considered: –When the system works as expected –When the system is in a special state, like: •Failing parts •Maintenance state •Performing backup •Running batch jobs •Some ways to do this are: –Benchmarking –Using vendor experience –Prototyping –User Profiling
  9. Benchmarking •A benchmark uses a specific test program to assess the relative performance of an infrastructure component •Benchmarks compare: –Performance of various subsystems –Across different system architectures
  10. Benchmarking •Benchmarks comparing the raw speed of parts of an infrastructure –Like the speed difference between processors or between disk drives –Not taking into account the typical usage of such components –Examples: •Floating Point Operations Per Second –FLOPS •Million Instructions Per Second –MIPS
  11. Vendor experience •The best way to determine the performance of a system in the design phase: use the experience of vendors •They have a lot of experience running their products in various infrastructure configurations •Vendors can provide: –Tools –Figures –Best practices
  12. Prototyping •Also known as proof of concept (PoC) •Prototypes measure the performance of a system at an early stage •Building prototypes: –Hiring equipment from suppliers –Using datacentercapacity at a vendor’s premise –Using cloud computing resources •Focus on those parts of the system that pose the highest risk, as early as possible in the design process
  13. User profiling •Predict the load a new software system will pose on the infrastructure before the software is actually built •Get a good indication of the expected usage of the system •Steps: –Definea number of typical user groups (personas) –Create a list of tasks personas will perform on the new system –Decompose tasks to infrastructure actions –Estimate the load per infrastructure action –Calculate the total load
  14. User profiling personas/tasks
  15. User profiling Infrastructure load
  16. 3.4 Performance of a running system 3.4.1 Managing bottlenecks 3.4.2 Performance testing
  17. Managing bottlenecks •The performance of a system is based on: –The performance of all its components –The interoperability of various components •A component causing the system to reach some limit is referred to as the bottleneck of the system •Every system has at least one bottleneck that limits its performance •If the bottleneck does not negatively influence performance of the complete system under the highest expected load, it is OK
  18. Performance testing •Load testing-shows how a system performs under the expected load •Stress testing -shows how a system reacts when it is under extreme load •Endurance testing-shows how a system behaves when it is used at the expected load for a long period of time
  19. Performance testing - Breakpoint •Ramp up the load –Start with a small number of virtual users –Increase the number over a period of time •The test result shows how the performance varies with the load, given as number of users versus response time.
  20. Performance testing •Performance testing software typically uses: –One or more servers to act as injectors •Each emulating a number of users •Each running a sequence of interactions –A test conductor •Coordinating tasks •Gathering metrics from each of the injectors •Collecting performance data for reporting purposes
  21. Performance testing •Performance testing should be done in a production-like environment –Performance tests in a development environment usually lead to results that are highly unreliable –Even when underpowered test systems perform well enough to get good test results, the faster production system could show performance issues that did not occur in the tests •To reduce cost: –Use a temporary (hired) test environment
  22. 5.5 Performance patterns There are various ways to improve the performance of systems. This section describes caching, scaling, load balancing, high performance clusters, grids, designing for performance, and capacity management. But first a quick word on increasing performance on other levels than the infrastructure.
  23. 3.5 Performance patterns 3.5.1 Increasing performance on upper layers 3.5.2 Caching 3.5.3 Web proxies 3.5.4 Operational data store 3.5.5 Front-end servers 3.5.6 In-memory databases 3.5.7 Scalability 3.5.8 Load balancing 3.5.9 High performance clusters 3.5.10 Grid Computing 3.5.11 Design for use 3.5.12 Capacity management
  24. Increasing performance on upper layers •80% of the performance issues are due to badly behaving applications •Application performance can benefit from: –Database and application tuning –Prioritizing tasks –Working from memory as much as possible (as opposed to working with data on disk) –Making good use of queues and schedulers •Typically more effective than adding compute power
  25. Disk caching •Disks are mechanical devices that are slow by nature •Caching can be implemented: –Disks –Disk controllers –Operating system •All non-used memory in operating systems is used for disk cache •Over time, all memory gets filled with previously stored disk requests and prefetched disk blocks, speeding up applications. •Cache memory: –Stores all data recently read from disk –Stores some of the disk blocks following the recently read disk blocks
  26. Web proxies •When users browse the internet, data can be cached in a web proxy server –A web proxy server is a type of cache –Earlier accessed data can be fetched from cache, instead of from the internet •Benefits: –Users get their data faster –All other users are provided more bandwidth to the internet, as the data does not have to be downloaded again
  27. Operational data store •An Operational Data Store (ODS) is a read-only replica of a part of a database, for a specific use •Frequently used information is retrieved from a small ODS database –The main database is used less for retrieving information –The performance of the main database is not degraded
  28. Front-end servers •Front-end servers serve data to end users –Typically web servers •To increase performance, store static data on the front-end servers –Pictures are a good candidate –Significantly lowers the amount of traffic to back- end systems •In addition, a reverse proxy can be used –Automatically cache most requested data
  29. In-memory databases •In special circumstances, entire databases can be run from memory instead of from disk •In-memory databases are used in situations where performance is crucial –Real-time SCADA systems –High performance online transaction processing (OLTP) systems •As an example, in 2011 SAP AG introduced HANA, an in-memory database for SAP systems •Special arrangements must be made to ensure data is not lost when a power failure occurs
  30. Scalability •Scalability indicates the ease in with which a system can be modified, or components can be added, to handle increasing load •Two ways to scale a system: –Vertical scaling (scale up) -adding resources to a single component –Horizontal scaling (scale out) -adding more components to the infrastructure
  31. Scalability –Vertical scaling •Adding more resources, for example: –Server: more memory, CPU’s –Network switch: adding more ports –Storage: Replace small disks by larger disks •Vertical scaling is easy to do •It quickly reaches a limit –The infrastructure component is “full”
  32. Scalability –Horizontal scaling •Adding more components to the infrastructure, for example: –Adding servers to a web server farm –Adding disk cabinets to a storage system •In theory, horizontal scaling scales much better –Be aware of bottlenecks •Doubling the number of components does not necessarily double the performance •Horizontal scaling is the basis for cloud computing •Applications must be aware of scaling infrastructure components
  33. Horizontal scalability works best when the system is partitioned. This way, parts of the system can scale independently of other parts of the system. Below is a typical example of a partitioned system.
  34. Load balancing •Load balancing uses multiple servers that perform identical tasks –Examples: •Web server farm •Mail server farm •FTP (File Transfer Protocol) server farm •A load balancer spreads the load over the available machines –Checks the current load on each server in the farm –Sends incoming requests to the least busy server
  35. Load balancing •Advanced load balancers can spread the load based on: –The number of connections a server has –The measured response time of a server •The application running on a load balanced system must be able to cope with the fact that each request can be handled by a different server –The load balancer should contain the states of the application –The load balancing mechanism can arrange that a user’s session is always connected to the same server –If a server in the server farm goes down, its session information becomes inaccessible and sessions are lost
  36. Load balancing •A load balancer increases availability –When a server in the server farm is unavailable, the load balancer notices this and ensures no requests are sent to the unavailable server until it is back online again •The availability of the load balancer itself is very important –Load balancers are typically setup in a failover configuration
  37. Load balancing •Network load balancing: – Spread network load over multiple network connections – Most network switches support port trunking • Multiple Ethernet connections are combined to get a virtual Ethernet connection providing higher throughput • The load is balanced over the connections by the network switch • Storage load balancing: – Using multiple disks to spread the load of reads and writes – Use multiple connections between servers and storage systems
  38. High performance clusters • High performance clusters provide a vast amount of computing power by combining many computer systems • A large number of cheap off the-shelf servers can create one large supercomputer • Used for calculation-intensive systems – Weather forecasts – Geological research – Nuclear research – Pharmaceutical research • TOP500.org
  39. Grid Computing •A computer grid is a high performance cluster that consists of systems that are spread geographically •The limited bandwidth is the bottleneck •Examples: –SETI@HOME –CERN LHC Computing Grid (140 computing centersin 35 countries) •Broker firms exist for commercial exploitation of grids •Security is a concern when computers in the grid are not under control
  40. Design for use •Performance critical applications should be designed as such •Tips: –Know what the system will be used for •A large data warehouse needs a different infrastructure design than an online transaction processing system or a web application •Interactive systems are different than batch oriented systems –When possible, try to spread the load of the system over the available time
  41. Design for use –In some cases, special products must be used for certain systems •Real-time operating systems •In-memory databases •Specially designed file systems –Use standard implementation plans that are proven in practice •Follow the vendor's recommended implementation •Have the vendors check the design you created –Move rarely used data from the main systems to other systems •Moving old data to a large historical database can speed up a smaller sized database
  42. Capacity management •Capacity management guarantees high performance of a system in the long term •To ensure performance stays within acceptable limits, performance must be monitored •Trend analyses can be used to predict performance degradation •Anticipate on business changes (like forthcoming marketing campaigns)