Semmangat pagi menjelang siang,
NgoprekUNIX baru aja menuntaskan problem aneh di Solaris 8. Soalnya aneh banget problemnya neh CommUNIXy... Coba deh ditelaah work around symptom berikut :
- Server hanya bisa diakses via TELNET/FTP
- Semua user tidak bisa login via TELNET --- wah, ini sih karena user locked/disabled?
- Semua user bisa login via FTP --- nah lho, gak masalah dong usernya? (@#$%^&)
Setelah mencoba login terus, alhamdulillah satu user bisa tembus masuk shell. Langsung deh NgoprekUNIX tancap gas sebagai ROOT via sudo soalnya gak tahu password ROOT-nya. Jadi inget komentar di tulisan tantang raibnya password root di sini. Intinya, solusi untuk raibnya password root adalah dengan sudo. Eit, back to focus...
Setelah dapat root apa yang musti dilakukan? Seperti biasa, NgoprekUNIX akan menganalisis dengan bebrapa poin berikut :
- Penggunaan disk pada file system
- Pesan error di /var/adm/messages
- Diagnostik hardware problem
- Utilisasi CPU dan memory (termasuk swap)
Penggunaan disk
Pada umumnya kasus tidak bisa login yang tidak disebabkan bukan oleh malfungsi dari user tersebut dipicu oleh penuhnya file system bawaan OS (/, /var, /opt, /usr, /tmp). Nah, hasil penerawangan NgoprekUNIX gagal menemukan kunci jawaban dari step pertama ini.
# df -gI k
Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c0t2d0s0 241599 148217 69223 69% /
/dev/dsk/c0t2d0s6 4130982 2392830 1696843 59% /usr
/proc 0 0 0 0% /proc
mnttab 0 0 0 0% /etc/mnttab
fd 0 0 0 0% /dev/fd
/dev/dsk/c0t2d0s5 4130982 360288 3729385 9% /var
swap 2992 24 2968 1% /var/run
/dev/dsk/c0t2d0s4 2055463 67121 1926679 4% /opt
swap 3368 400 2968 12% /tmp
/dev/dsk/c0t2d0s7 25826376 12589113 12979000 50% /export/spare
Semua utilisasi disk menunjukkan kondisi aman dan terkendali.
Pesan error di /var/adm/messages
Dari sini NgoprekUNIX cukup mendapat informasi yang memberikan titik cerah sekaligus membingungkan. Pasalnya, error secara berulang kali menunjukkan bahwa terjadi kehabisan swap dan /tmp penuh. Koq bisa ya? Di atas tadi gen muda sudah lihat tidak ada masalah disk usage toh? Saya pun terpaksa mengulangi kembali investigasinya...
Apr 28 08:15:54 tuxdevksi1 tmpfs: [ID 518458 kern.warning] WARNING: /tmp: File system full, swap space limit exceeded
Apr 28 08:15:54 tuxdevksi1 last message repeated 3 times
Apr 28 08:18:54 tuxdevksi1 genunix: [ID 470503 kern.warning] WARNING: Sorry, no swap space to grow stack for pid 7494 (login)
# cd /tmp
# ls -l
total 816
srwxrwxrwx 1 root root 0 Aug 21 2010 jd_sockV6
-rw------- 1 devsss dev 0 Dec 20 21:21 mpImaGJH
-rw------- 1 root other 0 Apr 28 08:18 mpQGayNo
-rw------- 1 devsss dev 0 Nov 15 18:53 mptraqGT
-rw-rw-r-- 1 root sys 3328 Apr 28 08:19 ps_data
-rw------- 1 root other 7 Apr 28 08:18 sman_RGayNo
drwx------ 2 root root 182 Aug 21 2010 smc898
drwxrwxrwx 2 devsss dev 117 Apr 26 18:25 tx000a33028007
-rw-rw-r-- 1 root sys 377740 Oct 20 2010 ups_data
# df -k .
Filesystem kbytes used avail capacity Mounted on
swap 1776 408 1368 23% /tmp ç tidak penuh !!!
# swap -l
swapfile dev swaplo blocks free
/dev/dsk/c0t2d0s1 136,1 16 4198304 520112 ç swap tidak habis !!!
# uptime
8:25am up 250 day(s), 4:24, 2 users, load average: 0.57, 0.55, 0.59
Mungkin masalahnya karena uptime server sudah terlalu lama kali ya... Harus direstart neh biar server refresh... Mungkin banyak penggunaan memory yang gantung... Sabar-sabar, sebelum itu musti dipastikan tidak ada kerusakan pada hardware. Kita lanjut ya...
Diagnostik hardware problem
Mengingat problem ini terjadi di Solaris 8, maka path untuk koman "prtdiag" tidak ditemukan pada tempat biasanya. Soalnya tadi waktu jalankan "sudo su" tidak pakai "-" sehingga profil ROOT tidak ikut. Artinya, profil yang ikut adalah profil user biasa punya NgoprekUNIX. Untuk malah ini, ada 2 cara yaitu login ulang dengan "sudo su -" atau dengan cari path-nya dengan "find / -name prtdiag".
# which prtdiag
no prtdiag in /usr/bin /bin /usr/sbin /sbin /usr/local/bin /usr/sbin /usr/local/bin /usr/local/sbin . /etc
# find / -name prtdiag
/usr/platform/sun4u/sbin/prtdiag
/usr/platform/SUNW,Sun-Fire-V240/sbin/prtdiag
/usr/platform/SUNW,Sun-Fire-V250/sbin/prtdiag
--- [di break contl+C]
# /usr/platform/sun4u/sbin/prtdiag -v
System Configuration: Sun Microsystems sun4u Sun Fire V100 (UltraSPARC-IIe 500MHz)
System clock frequency: 100 MHz
Memory size: 2048 Megabytes
========================= CPUs =========================
Run Ecache CPU CPU
Brd CPU Module MHz MB Impl. Mask
--- --- ------- ----- ------ ------ ----
0 0 0 500 0.2 13 1.4
========================= IO Cards =========================
Bus# Freq
Brd Type MHz Slot Name Model
--- ---- ---- ---- -------------------------------- ----------------------
0 PCI-0 33 0 dma-isadma
0 PCI-0 33 0 rtc-m5819 m5819
0 PCI-0 33 0 power-acpi-power
0 PCI-0 33 0 SUNW,lomh
0 PCI-0 33 0 serial-su16550
0 PCI-0 33 0 serial-su16550
0 PCI-0 33 0 flashprom SUNW,258-7883
0 PCI-0 33 0 i2c-i2c-smbus
0 PCI-0 33 0 ppm-SUNW,smbus-ppm
0 PCI-0 33 0 beep-SUNW,smbus-beep
0 PCI-0 33 0 fan-control-SUNW,smbus-fan-contr+
No failures found in System
===========================
========================= HW Revisions =========================
ASIC Revisions:
---------------
System PROM revisions:
----------------------
CORE 1.0.14 2001/11/07 17:16
Hasil ini membuat NgoprekUNIX senang sekaligus tambah bingung mengingat tidak ditemukannya kerusakan hardware. Pada sisi lain, ini menambah panjang jalur analisanya hehehe. Sepertinya harus kembali ke informasi awal pada error mesages di atas.
Utilisasi CPU dan memory (termasuk swap)
Penelusuran difokuskan pada tema besar utilisasi swap. Berbekal data daily monitoring yang NgoprekUNIX miliki dibandingkan kondisi hari ini ditemukan fakta mencengangkan bahwa terjadi penyusutan ukuran swap. (hah kok bisa ya???). Sebagai catatan, NgoprekUNIX mengembangkan skrip untuk memonitor lebih dari 130 server berbasis UNIX muliti platform baik AIX, Solaris, maupun UX. Hasilnya adalah log report berbentuk HTML yang selanjutnya dikonsolidasikan dalam bentuk EXCEL sebagai highlight nya. Dengan demikian, tampak mudah bukan karena kejadian abnormal baik over threshold pada utilisasi disk, memory atau CPU hingga error report. Jadi, triger analisa ini adalah tidak munculnya data server pada tabulasi excel. Biasanya fenomena ini disebabkan problem pada skrip atau problem serius pada server seperti kasus ini
Gambar di atas memberikan sinyal bahwa terjadi leak of memory usage. Sejatinya, swap hanya digunakan jika RAM (memory fisik) sudah habis digunakan oleh semua proses yang aktif. Dengan demikian, harus ditelusuri program atau proses apa yang berkontribusi besar dalam utilisasi memory tersebut. Berikut adalah hasil penerawangan dengan koman "prstat" :
Tampaknya penyebab kasus ini adalah proses Tivoli yang ternyata fungsi dan kegunaanny tidak lagi diperlukan. Oleh karena itu, NgoprekUNIX bersikukuh untuk segera mengakhiri semua proses tersebut. Perlu diketahui, kategori proses ini adalah daemon sehingga metode membunuhnya juga agak spesifik. Pasalnya, pada sejumlah kasus daemon akan kembali terbentuk jika metode "kill" yang digunakan. So, NgoprekUNIX akan mencari program atau skrip kunci sehingga proses pembunuhan sangat UNIXiawi (mirip manusiawi lah) hehe... Pada umumnya, daemon akan dijalankan dalam program RC yang dieksekusi saat server boot. Oleh karena itu, daemon akan otomatis aktif setelah server di restart meskipun sebelumnya daemon tersebut telah dibunuh.
Berikut adalah gambaran utilisasi memory dan swap sebelum eksekusi dilakukan :
# sar -r 1 10
SunOS tuxdevksi1 5.8 Generic_117350-52 sun4u 04/28/11
09:07:41 freemem freeswap
09:07:42 4386 9966
09:07:43 4386 9966
09:07:44 4386 9966
09:07:45 4386 9966
09:07:47 4386 9966
09:07:48 8689 19743
09:07:49 4386 9966
09:07:50 4386 9966
09:07:51 3361 7638
09:07:52 4386 9966
Average 4677 10628
SunOS tuxdevksi1 5.8 Generic_117350-52 sun4u 04/28/11
09:07:41 freemem freeswap
09:07:42 4386 9966
09:07:43 4386 9966
09:07:44 4386 9966
09:07:45 4386 9966
09:07:47 4386 9966
09:07:48 8689 19743
09:07:49 4386 9966
09:07:50 4386 9966
09:07:51 3361 7638
09:07:52 4386 9966
Average 4677 10628
Berikut adalah solusi yang telah terbukti ampuh mengatasi masalah swap shrink pada kasus ini :
# /etc/init.d/lcfd1.rc stop
# /etc/init.d/tecad_logfile stop all
Hasilnya adalah swap kembali normal sebagaimana mestinya :
# sar -r 1 5
SunOS tuxdevksi1 5.8 Generic_117350-52 sun4u 04/28/11
12:32:35 freemem freeswap
12:32:36 182436 6582431
12:32:37 182213 6576722
12:32:38 178709 6450246
12:32:39 181838 6561035
12:32:40 180921 6524894
Average 181213 6538719
/# df -k | grep swap
swap 3317944 32 3317912 1% /var/run
swap 3318312 400 3317912 1% /tmp
Lebih jauh, ternyata problem ini berdampak pada penguakan misteri gagalnya instalasi OpenSSh pada serevr ini. Padahal, OpenSSH yang sama telah berulangkali diinstall dengan metode yang sama pada server yang serupa baik tipe mesin maupun versi OS Solarisnya.
Demikian dulu ya corat-coret dari NgoprekUNIX, semoga bermanfaat.
Salam NgoprekUNIX,


0 komentar:
Posting Komentar