Chủ Nhật, 31 tháng 7, 2022

Sử dụng lệnh Linux Top cho Oracle DBA

top – Hiển thị thông tin tổng quan về RAM, CPU, processes Linux

  1. Công cụ hữu ích nhất cho Oracle DBA quản lý cơ sở dữ liệu trên Linux
  2. Nó làm mới màn hình để hiển thị thông tin mới
  3. Lệnh trên cùng cung cấp nhiều thông tin giống như Trình quản lý tác vụ Windows.
  4. chúng ta có thể thấy các tiến trình đang chạy sử dụng CPU và bộ nhớ cũng như tải tổng thể của hệ thống.
  5. Chúng tôi có thể dễ dàng xác định mức sử dụng CPU, mức sử dụng bộ nhớ và ai đang chạy các quy trình đắt tiền nhất.
  6. Tiện ích hàng đầu cung cấp cùng một thông tin với “thời gian hoạt động”
    và “miễn phí”, đồng thời nó cũng cho biết ai đang tiêu thụ CPU

Bấm vào đây để biết thêm thông tin về lệnh Top  http://man7.org/linux/man-pages/man1/top.1.html

Hiển thị thông tin hiện tại.

[oracle@prod101:~ orcl] top

top - 01:31:42 up 209 days, 20:31,  1 user,  load average: 5.02, 4.17, 3.93
Tasks: 1874 total,   5 running, 1868 sleeping,   0 stopped,   1 zombie
Cpu(s): 18.8%us,  1.6%sy,  0.0%ni, 64.8%id, 14.6%wa,  0.0%hi,  0.2%si,  0.0%st
Mem:  264422444k total, 176117440k used, 88305004k free,  1119876k buffers
Swap: 135757816k total,        0k used, 135757816k free, 138847252k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
14584 oracle    20   0 17.3g 4.6g 4.6g R 100.0  1.8   7:53.93 oracle_14584_gl
 5388 oracle    20   0 17.3g 376m 372m R 99.3  0.1   1:27.23 oracle_5388_gl
21293 oracle    20   0 17.3g 7.4g 7.4g R 41.8  2.9  80:43.52
Dòng đầu tiên: -
top - 01:31:42 up 209 days, 20:31, 1 user, load average: 5.02, 4.17, 3.93 

shows the current time (01:31:42), that system has been up for 42 mints; that the system has been working for 20 hours 31 seconds. The load average of the system is shown (5.02, 4.17, 3.93) for the last 1, 5 and 15 minutes respectively. (By the way, you can also get this information by issuing the uptime command.)
If the load average is not required, press the letter "l" (lowercase L); it will turn it off. To turn it back on press l again. Ideally Load average should be less than 1, otherwise the processes are fully burdened
Dòng thứ hai: -
Tasks: 1874 total, 5 running, 1868 sleeping, 0 stopped, 1 zombie

shows the number of processes, running, sleeping, etc. 
1874 processes: 1868 sleeping, 5 running, 1 zombie, 0 stopped
Dòng thứ ba và thứ tư: -
CPU states: cpu user nice system irq softirq iowait idle 
total 18.8% 0.0% 1.6% 0.0% 0.2% 14.6% 64.8%

show the CPU utilization details. The above line shows that user processes consume 18.8% and system consumes 1.6%. The user processes include the Oracle processes. Press "t" to turn these three lines off and on. If there are more than one CPU, you will see one line per CPU.
Hai dòng tiếp theo: -
Mem: 264422444k total, 176117440k used, 88305004k free, 1119876k buffers
Swap: 135757816k total, 0k used, 135757816k free, 138847252k cached

show the memory available and utilized. Total memory is "252GB", approximately 252GB (264422444k), of which only 167GB used (176117440k). Free space around 84GB (88305004k) The swap space is 129GB (135757816k); but it's almost not used. To turn it off and on, press "m".
 Lọc các quy trình chỉ từ người dùng oracle Để hoàn nguyên trở lại, hãy nhập 0

Lên trên và nhấn u có nghĩa là
Nếu bạn chỉ muốn 10 quy trình hàng đầu từ người dùng oracle, chỉ cần nhấn n và nhập 10 Để hoàn nguyên, hãy nhập 0

Lên trên và nhấn n 10
Tìm bao nhiêu cpu trong máy chủ.

Lên trên và nhấn phím 1

top - 08:41:55 up 210 days, 3:54, 2 users, load average: 1.24, 1.46, 1.44
Tasks: 1481 total, 1 running, 1480 sleeping, 0 stopped, 0 zombie
Cpu0 : 30.0%us, 5.9%sy, 0.0%ni, 63.4%id, 0.3%wa, 0.0%hi, 0.3%si, 0.0%st
Cpu1 : 11.0%us, 3.3%sy, 0.0%ni, 85.3%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st
Cpu2 : 7.4%us, 4.4%sy, 0.0%ni, 87.8%id, 0.3%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 4.3%us, 3.3%sy, 0.0%ni, 91.7%id, 0.7%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu4 : 7.0%us, 3.3%sy, 0.0%ni, 88.0%id, 1.3%wa, 0.0%hi, 0.3%si, 0.0%st
Cpu5 : 6.0%us, 3.0%sy, 0.0%ni, 90.6%id, 0.3%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu6 : 5.4%us, 2.7%sy, 0.0%ni, 91.6%id, 0.3%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu7 : 3.0%us, 1.3%sy, 0.0%ni, 95.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

Hãy bắt đầu Demo: -

Ở đây PID của tiến trình sử dụng CPU cao nhất: 11282 .
Chúng tôi có thể sử dụng truy vấn sau để xác định  tiến trình đang sử dụng nhiều cpu hơn là gì:

Sau đó, cột PID có thể được khớp với cột SPID trên cview V$PROCESS để cung cấp thêm thông tin về tiến trình.

SELECT a.username,a.osuser,a.program,spid,sid,a.serial#
FROM v$session a,v$process b
WHERE a.paddr = b.addr AND spid = '&pid';

select s.sid, s.username, s.program
from v$session s, v$process p
where spid = &server_process_id
and p.addr = s.paddr;
top - 02:16:23 up 209 days, 21:16, 1 user, load average: 2.76, 2.84, 3.08
Tasks: 1895 total, 2 running, 1892 sleeping, 0 stopped, 1 zombie
Cpu(s): 13.0%us, 2.0%sy, 0.0%ni, 79.3%id, 5.7%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 264422444k total, 176184672k used, 88237772k free, 1119944k buffers
Swap: 135757816k total, 0k used, 135757816k free, 138866156k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
11282 oracle 20 0 17.4g 4.6g 4.6g R 95.8 1.8 10:08.14 oracle_11282_gl
5546 root 20 0 4857m 522m 9.8m S 32.6 0.2 1725:49 java


SQL> SELECT a.username,a.osuser,a.program,spid,sid,a.serial#
FROM gv$session a,gv$process b
WHERE a.paddr = b.addr AND spid = '&pid'; 2 3
Enter value for pid: 11282
old 3: WHERE a.paddr = b.addr AND spid = '&pid'
new 3: WHERE a.paddr = b.addr AND spid = '11282'

USERNAME OSUSER PROGRAM                     SPID SID SERIAL#
-------  ----- ----------                   ---- ----- -------
PROD101 sam    pro567@system(TNS V1-V3)    11282 1303 11906 
PROD101 admin   AppModule.exe              11282 1295 30526
Tìm ra 1 tiến trình đang sử dụng rất nhiều CPU và bộ nhớ

$ top -c -p 11282

top - 02:27:36 up 209 days, 21:27, 1 user, load average: 3.60, 3.37, 3.20
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
Cpu(s): 8.1%us, 1.4%sy, 0.0%ni, 82.6%id, 7.8%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 264422444k total, 175215624k used, 89206820k free, 1119964k buffers
Swap: 135757816k total, 0k used, 135757816k free, 138858124k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
11282 oracle 20 0 17.4g 5.7g 5.7g D 9.3 2.3 11:54.19 oraclePROD101 (LOCAL=NO)

Skill 

$ skill -CONT 11282
Cách tiếp cận này vô cùng hữu ích cho các tiến trình tạm thời đóng băng để nhường chỗ cho các tiến trình quan trọng hơn hoàn thành.

Lệnh này rất linh hoạt. Nếu bạn muốn dừng tất cả các tiến trình của người dùng "oracle", chỉ một lệnh thực hiện tất cả:

$ skill -STOP oracle
Bạn có thể sử dụng người dùng, PID, lệnh hoặc id đầu cuối làm tham số. Sau đây dừng tất cả các lệnh rman.
$ skill -STOP rman

References

http://www.pafumi.net/Unix_Commands_for_DBAs.html#top

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master