Isi dalam blog ini merupakan pendapat dan ungkapan pemahaman saya pribadi yang disediakan secara terbuka dan sebaik mungkin. Bahasa gado-gado, tidak melulu formal. Komentar dan koreksi bisa disampaikan melalui kontak yang diberikan. Blog ini menggunakan WordPress versi gratis sehingga jika ada iklan yang muncul bukanlah kehendak saya.
Status scoreboard Apache penuh dengan ‘R’
Kemarin (21/03/2025), saya menjumpai masalah di salah satu server. Tetiba, server web tidak bisa diakses. Pengecekan status Apache di scoreboard menunjukkan koneksinya penuh terisi dengan ‘R’.
$ apachectl status

Status ‘R’ ini menunjukkan bahwa server sedang membaca permintaan HTPP dari client.
Biasanya, yang dilakukan adalah dengan merestart server web Apache. Namun, tak lama setelah restart, scoreboard kembali penuh. Bahkan, ketika konfigurasi limit servernya dinaikkan, tetap langsung penuh. Berarti ada masalah lain.
Banyak request yang stuck di ‘R’ bisa mengindikasikan adanya serangan Slowloris. Banyak koneksi yang open dan tetap dibiarkan open selama mungkin. Ini yang membuat scoreboard Apache selalu penuh. Koneksi tidak closed atau finished.
Setelah terinstall, konfigurasi bisa ditambahkan di /etc/apache2/conf.d/mod_reqtimeout.conf dan /etc/apache2/conf.d/qos.conf.
# /etc/apache2/conf.d/mod_reqtimeout.conf
<IfModule mod_reqtimeout.c>
RequestReadTimeout header=20-40,MinRate=500 body=20-40,MinRate=500
</IfModule>
Server akan menunggu sampai 20 detik untuk header/body data. Jika, rate minimal 500 bps, server akan menunggu header/body lengkap sampai 40 detik.
# /etc/apache2/conf.d/qos.conf
<IfModule qos_module>
# handle connections from up to 100000 different IPs
QS_ClientEntries 100000
# allow only 50 connections per IP
QS_SrvMaxConnPerIP 50
# MaxClients/MaxRequestWorkers is set in MaxRequestWorkers in Cpanel WHM
# disables keep-alive when 180 (70%) TCP connections are occupied
QS_SrvMaxConnClose 180
# minimum request/response speed
# (deny slow clients blocking the server, keeping connections open without requesting anything)
QS_SrvMinDataRate 150 1200
</IfModule>
Server akan menangani sampai maksimum 100.000 alamat IP. Per alamat IP dibatasi 50 koneksi. Keep-alive akan didisabled jika telah ada 180 koneksi TCP. Kecepatan request /response dibatasi minimum 150/1200 untuk menolak client yang lambat.
# tail -f /var/log/apache2/error_log
[qos:error] [pid 5491:tid 5507] mod_qos(034): access denied, QS_SrvMinDataRate rule (in:0): min=220, this connection=0, c=114.10.104.6
[qos:error] [pid 5308:tid 5323] mod_qos(034): access denied, QS_SrvMinDataRate rule (in:0): min=191, this connection=0, c=140.213.15.164
[qos:error] [pid 5548:tid 5562] mod_qos(034): access denied, QS_SrvMinDataRate rule (in:0): min=204, this connection=0, c=103.47.133.116
Beberapa request yang ditolak salah satunya adalah dari bot AI. Koneksi tidak closed.
Mudah2an sekarang ndak ada masalah lagi.
Referensi:
- Understanding the Apache scoreboard: https://support.cpanel.net/hc/en-us/articles/360052040234-Understanding-the-Apache-scoreboard
- How to Mitigate Slowloris Attacks: https://docs.cpanel.net/knowledge-base/security/how-to-mitigate-slowloris-attacks/
Exploratory, Descriptive, and Explanatory Research
Sementara masih mencoba mengumpulkan pengertian pendekatan metodologi riset: exploratory, descriptive, dan explanatory. Agar bisa lebih paham… hehehe.. Sumber masuknya dari Wikipedia dan Scribbr dulu.
Exploratory research
- https://www.scribbr.com/methodology/exploratory-research/
- https://en.wikipedia.org/wiki/Exploratory_research
Ada yang menyebut sebagai formulative research. Kata kunci metode ini:
- Didesain untuk mendapatkan pemahaman lebih tentang peminatan topik tertentu
- Bertujuan untuk mendapatkan informasi awal yang dapat digunakan untuk mendefinisikan problem dan mengajukan hipotesis
- Umumnya dilakukan secara kualitatif. Untuk data besar, analisis kuantitatif juga kadang dilakukan
Contoh artikel dengan judul eksplisit:
- Conceptualizing AI literacy: An exploratory review (https://linkinghub.elsevier.com/retrieve/pii/S2666920X21000357)
- An Exploratory Study of the Obstacles for Achieving Quality in Distance Learning during the COVID-19 Pandemic (https://doi.org/10.3390/educsci10090232)
Descriptive study
Kata kunci metode ini:
- Bertujuan untuk mendeskripsikan karakteristik dari beragam aspek.
- Menjawab pertanyaan apa karakteristik dari populasi atau situasi yang sedang dikaji
- Melibatkan beberapa metode seperti studi kasus, surveys, dan laporan kasus
Contoh artikel dengan judul eksplisit:
- The trends and outcomes of flipped learning research between 2012 and 2018: A descriptive content analysis (https://link.springer.com/article/10.1007/s40692-021-00183-y)
- Exploring Computer Science Students’ Perception of ChatGPT in Higher Education: A Descriptive and Correlation Study (https://doi.org/10.3390/educsci13090924)
Explanatory research
- https://en.wikipedia.org/wiki/Causal_research
- https://linkinghub.elsevier.com/retrieve/pii/S0378720617309394 –> di sini menjabarkan tentang petunjuk melakukan riset confirmatory dan explanatory di IS menggunakan analisis dengan PLS. Saya ndak mudheng.. hehehe
Ada yang menyebut causal research, confirmatory. Kata kunci metode ini:
- Meneliti tentang hubungan kausalitas antar variabel.
- Objektif risetnya menguji hipotesis tentang hubungan sebab-akibat
Contoh artikel dengan judul eksplisit:
- Analysing the impact of blockchain-technology for operations and supply chain management: An explanatory model drawn from multiple case studies (https://doi.org/10.1016/j.ijinfomgt.2019.05.009)
- Analysis of the determining factors of good teaching practices of mobile learning at the Spanish University. An explanatory model (https://doi.org/10.1016/j.compedu.2020.104007)
Hanya sebagai referensi saya saja. Itu saja, hehehe. Akan senang kalau ada yang bisa membantu menjelaskannya.
Penjaminan mutu di DOAJ
DOAJ telah menyampaikan dua tulisan di blognya. Bagian pertama tentang bagaimana mereka menjaga kualitas di DOAJ [1]. Bagian 2 tentang perkembangan jurnal-jurnal yang ada di DOAJ [2].
Bagian pertama menunjukkan komitmen DOAJ dan timnya untuk menjaga kepercayaan komunitas keilmuan dalam penerbitan jurnal dengan memastikan jurnal ‘questionable’ tidak masuk dalam indeksnya. Mereka memastikan kualitas dan praktek penerbitan jurnal dan penerbit. Top bgt.
Jurnal yang mengajukan indeksasi akan diteliti oleh tim ini, terutama dalam pemenuhan standar dan transparansi COPE [3]. Tim ini juga melakukan investigasi dan evaluasi kembali saat jurnal/publisher yang telah terindeks di DOAJ teridentifikasi melakukan praktek-praktek yang ‘questinable’.
Dikutip dari tulisan tersebut, ada lima area kunci yang dievaluasi:
- Adanya informasi yang jelas dan dapat dipercaya di situs jurnal
- Komposisi dewan editor jurnal
- Proses peer-revieww yang menyeluruh dan robust untuk memastikan reliabilitas isi artikel publikasi
- Reputasi jurnal –> jurnal sebaiknya menghindari penggunaan informasi yang mis-leading dan metrik non-standar yang ‘questionable’, contohnya Index Copernicus [4]
- Manajemen dan operasi jurnal
Di bagian dua, dinyatakan trend penambahan jurnal yang diinvestigasi sebesar 40% di tahun 2004 sejak 2021. Penerbit Indonesia masuk ke dua besar (Lihat gambar [2]). Praktek questionable yang sering dilakukan:
- Isu kualitas yang beragam yang terkait dengan dewan editor jurnal, seperti asal mencantumkan nama, kredential yang tidak bisa diverifikasi
- Informasi kunci yang tidak jelas atau tidak dapat dipercaya di situs web
- Jangka publikasi yang sangat cepat, misalnya dua minggu dari submit
- Desain situs web yang tidak bagus
- Status indeksing yang salah direpresentasikan, misalnya mencantumkan logo indekser yang tidak bisa ditelusuri atau indexer yang metricnya diragukan

Referensi:
Efisiensi bikin orang kreatif
Saya kebetulan orang engineering. Dan dosen.
Dalam beberapa kesempatan, saya sampaikan ke mahasiswa tentang konsep desain sistem, terutama konstrain, performansi, dan trade-off. Salah satu ukuran performansi adalah efisien, yang biasanya disebabkan oleh adanya batasan. Pemenuhan spesifikasi dan kostrain ini menjadi sasaran desain ini.
Tapi, bukan itu yang akan saya ulas di sini.. hehehe..
Tiga harian ini sudah tidak bisa menggunakan akun pengecekan grammar profesional yang dilanggan karena ada problem di penyedia /vendor. Padahal, lagi butuh-butuhnya untuk menulis artikel. Hanya bisa pakai yang versi free, sambil menunggu perbaikan dari vendor.
Belum lagi ada kabar kapasitas penyimpan drive resmi institusi di cloud dibatasi, hanya 100MB. Padahal, form ujian online untuk mahasiswa dan file-file jawaban tersimpan di sana. Termasuk untuk unggah dokumen-dokumen TA mahasiswa.
Ditambah, kapasitas Gmail institusional juga dibatasi, hanya menjadi 15GB. Padahal, banyak file yang terbackup di sana. File macem-macem juga. Ndak tahu sih.. file-nya penting atau tidak.. hahaha.
Apa lagi yah? Hehehe..
Berarti harus kreatif dong? Tentu saja.
Tapi, bagaimana? Hehehe, nanti aja.
Selamat datang kembali
Bismillah.
Hari ini mencoba menengok kembali blog yang sudah lama tidak aktif.
Kesan pertama adalah perubahan fitur-fitur WordPress yang semakin top. Saya tertinggal banyak. Sambil berjalan, akan coba diterapkan.
Pertama, saya coba bersih-bersih tampilan, terutama Widget.
RSS yang tidak diperlukan lagi dilepas karena tidak ada update apapun, salah satunya Machine Learning Proc (http://proceedings.mlr.press/feed.xml). RSS lama pun diupdate, misalnya dari LPPM Undip, yang diubah menjadi https://lppm.undip.ac.id/feed, walaupun ada catatan. Jumlah post RSS tidak bisa dibatasi.. hehehe.
Sementara itu. Nanti akan dilanjut. Mudah2an konsisten.
Seputar Aktivitas Setelah UAS
Sudah lama tidak menengok dan mengisi blog ini.
Minggu ini adalah masa pengisian nilai mahasiswa di Sistem Informasi Akademik (SIA) menjelang yudisium. Dan, ini biasanya cukup melelahkan, hehehe.
Saya mengajar 4 kelas mata kuliah Metode Numerik dengan jumlah mahasiswa tiap kelas yang cukup banyak. Ada beberapa komponen penilaian yang harus dimasukkan, salah satunya nilai UAS.
Soal UAS saya buat menggunakan Form Office dan diakses secara online oleh mahasiswa. Hasil dari ujian daring tersebut tersedia dalam bentuk spreadsheet.
Untuk memasukkan nilai ke SIA, ada file yang daftar mahasiswa yang bisa diunduh dan diunggah kembali saat nilai sudah dimasukkan. Sebelumnya, saya masukkan manual dari hasil ujian ke file SIA. Dan ini memerlukan konsentrasi agar tidak ada nilai yang keliru. Harus Akurat dan presisi, kwkwkw.
Kebiasaan orang teknik, bikin tool untuk membantu kerja. Dibuatlah pakai Python.. hahaha. Ini kodenya.
#!/usr/bin/env python
# Match marks from online testing to SIA
import pandas as pd
SIAP = ["SIAP_TemplateNilai_PTSK6412_2023_2_A",
"SIAP_TemplateNilai_PTSK6412_2023_2_B",
"SIAP_TemplateNilai_PTSK6412_2023_2_C",
"SIAP_TemplateNilai_PTSK6412_2023_2_D"]
NILAI = "UAS_PTSK6412_2023_2"
ni = pd.read_csv(NILAI + ".csv", sep=";")[['Name', 'Total points']]
ni['NIM_src'] = ni['Name'].apply(lambda x: x.split()[-1]).astype(str)
for si in SIAP:
src = pd.read_csv(si + "_Src.csv", sep=";")
src['NIM'] = src['NIM'].astype(str)
src = pd.merge(src, ni[['NIM_src', 'Total points']], how='left', left_on=['NIM'], right_on = ['NIM_src'])
src.drop_duplicates(['NIM', 'Nama Mahasiswa'], keep='last').to_csv(si + "_Out.csv", sep=';')
Ndak perlu dijabarkan logiknya yah.. hehe. Intinya menggabungkan (merge) nilai ujian ke tempate nilai tiap kelas dengan mencocokan NIM.
Yup, masalah selesai… hahaha.
EPS dan Python
EPS (earning per share) dapat menjadi indikator profitabilitas emiten dan dinyatakan sebagai laba usaha emiten (company’s profit) dibagi jumlah saham beredar (outstanding shares). EPS merupakan salah satu indikator yang digunakan dalam analisis fundamental suatu emiten.
Python akan digunakan untuk mengolah data EPS yang diperoleh (secara harian) serta menampilkannya dalam quartal dan pertumbuhannya.
Otak-atik gathuk judulnya ….hehehe
EPS umumnya dihitung per-quartal setelah keluar laporan keuangan (LK) kuartalan yang memuat laba bersih perusahaan. Dan tiap emiten berbeda pengumuman LK-nya dan tidak mesti di awal bulan kuartal. Ini problemnya…
Sementara yang bisa dilakukan adalah mengambil data EPS tiap emiten setiap hari. Secara otomatis dan bersama data fundamental lainnya tentunya…
Ini contoh datanya: (sayangnya dia mulai dari bulan April 2023)
stock_id date eps_ttm
...
3 PGAS 2023-04-12 204.98
4 PGAS 2023-04-13 204.98
5 PGAS 2023-04-17 209.84
6 PGAS 2023-04-18 209.84
7 PGAS 2023-04-26 209.84
...
Tuning Server MySQL (Ceritanya)
Ceritanya respons layanan web ejournal dengan OJS sangat lambat. Penyebabnya ndak paham pasti: bisa jadi jaringan, server, atau middle-ware (web proxy, firewall). Salah satunya mungkin karena server MySQL yang responsnya lambat.
Walaupun fungsionalnya jalan, namun performansinya terasa buruk, loading halaman web sangat lama, dan ini mengganggu. Penyebabnya perlu ditelusuri.
Sasaran pertama adalah tuning server MySQL. Server web Apache dengan MPM Prefork dan PHP-FPM akan disetel default dengan penambahan kapasitas server dan child yang terkontrol.
Perangkat bantu yang digunakan dalam tuning adalah htop dan mysqladmin. Status server web dipantau dengan apachectl status dan status php-fpm dari halaman status php dengan curl. Semuanya dilakukan dari konsol. Hehehe. Perintahnya kira-kira seperti ini:
$ htop
$ mysqladmin proc stat
$ watch -n 5 apachectl status
$ watch -n 5 curl https://<url_jurnal>/status.phtml --silent
Continue reading “Tuning Server MySQL (Ceritanya)” Melihat TTFB di Console
TTFB (Time to First Byte) suatu halaman web dapat diamati dengan Developer Tools yang ada browser (misalnya Chrome) dari Timing Network. Diagram timing (waterfall) ini menunjukkan bahwa browser menunggu byte respons pertama dari server.

Bagaimana mendapatkan TTFB ini menggunakan console di Linux? Seringkali waktu ini digunakan untuk menguji performansi respons server web, misalnya Apache.
Curl dapat digunakan untuk mendapatkan informasi TTFB tersebut. Perintahnya adalah:
# curl -o /dev/null -w "Connect: %{time_connect} TTFB: %{time_starttransfer} Total time: %{time_total} \n" -s https://jtsiskom.undip.ac.id
Connect: 0,520179 TTFB: 7,689596 Total time: 12,632399
Waktu TTFB-nya terlalu lama sekitar 7 detik lebih. Hal ini bisa menunjukkan ada masalah dengan server dan mungkin aplikasi webnya. Bagaimana solusinya? Belum paham, hehehe.