TÀI LIỆU

TRANG CHỦ / TÀI LIỆU / CHI TIẾT TÀI LIỆU

Sử dụng SysRq trên Linux

Đăng bởi: baotd | 27/12/2015 09:14


Biểu hiện

Trường hợp Hardware Node bị treo, chuỗi SysRq rất hữu dụng để thu thập thông tin debug và restart HW bằng cách sử dụng ATL + Sysrq keys.

Giải pháp

1. Kiểm tra cấu hình hình hiện tại của kernell:
  • Nhấn Alt+SysRq+H để hiện thị lệnh sẵn có:

    SysRq HELP : loglevel0-8 vsced_stAte reBoot Crashdump tErm Full debuG kIll thaw-filesystems(J) saK showMem Nice powerOff showPc unRaw Sync showTasks Unmount shoWcpus
  • Dưới đây là output:

    • Alt+SysRq+0 - Alt+SysRq+8 - set kernel log level, where 0 is the lowest and 8 is the highest verbosity of logging. It is recommended to set log level to 8 before executing other commands.

    • Alt+SysRq+A - Show Vsched.

    • Alt+SysRq+B - Reboot immediately without syncing or unmounting your disks, it may lead to file system corruption.

    • Alt+SysRq+C - Trigger a crash.

    • Alt+SysRq+E - Send the TERM signal to all running processes except init, asking them to exit.

    • Alt+SysRq+F - Manual OOM execution.

    • Alt+SysRq+G - Debug mode.

    • Alt+SysRq+H - Show help message.

    • Alt+SysRq+I - Send KILL signal to all running processes except init, asking them to exit.

    • Alt+SysRq+J - Emergency Thaw of all frozen filesystems.

    • Alt+SysRq+K - Kill all processes (including X) which are running on the currently active virtual console. This key combination is know as "secure access key" (SAK).

    • Alt+SysRq+M - Show Memory.

    • Alt+SysRq+N - Nice All RT Tasks.

    • Alt+SysRq+O - Shut the system off. Without preliminary operations it may lead to file system corruption.

    • Alt+SysRq+P - Dump the current registers and flags.

    • Alt+SysRq+Q - Quit from debugging mode.

    • Alt+SysRq+R - Turn off keyboard raw mode.

    • Alt+SysRq+S - Run an emergency sync (cache write) on all mounted filesystems. This can prevent data loss.

    • Alt+SysRq+T - Dump a list of current tasks and their information.

    • Alt+SysRq+U - Remount all mounted filesystems as read-only.

    • Alt+SysRq+W - Show CPUs.

2. Thu thập dữ liệu debug:
  • Dump thông tin CPU bằng cách nhấn Alt+SysRq+W, bạn sẽ thấy thông tin xuất hiện trên serial console:

    Mar 8 10:07:57 pvcfl46 SysRq: Show CPUs
    Mar 8 10:07:57 pvcfl46 requested on CPU0:
    Mar 8 10:07:57 pvcfl46 CPU0:
    Mar 8 10:07:57 pvcfl46 ffff810037d69dd0 0000000000000000 ffffffff80344648 0000000000000000
    Mar 8 10:07:57 pvcfl46 ffffffff801aef3f 0000000000000000 ffffffff801aef2d ffffffff801aef97
    Mar 8 10:07:57 pvcfl46 ffffffff801aef2d ffffffff8009463e ffffffff80344640 ffff81007ffabdc0
    Mar 8 10:07:57 pvcfl46 Call Trace:
    Mar 8 10:07:57 pvcfl46 [] showacpu+0x0/0x65
    Mar 8 10:07:57 pvcfl46 [] sysrq_showregs_othercpus+0x0/0x12
    Mar 8 10:07:57 pvcfl46 [] showacpu+0x58/0x65
    Mar 8 10:07:57 pvcfl46 [] sysrq_showregs_othercpus+0x0/0x12
    Mar 8 10:07:57 pvcfl46 [] on_each_cpu+0x19/0x22
    Mar 8 10:07:57 pvcfl46 [] run_workqueue+0x94/0xe5
    Mar 8 10:07:57 pvcfl46 [] worker_thread+0x0/0x122
    Mar 8 10:07:57 pvcfl46 [] worker_thread+0xf0/0x122
    Mar 8 10:07:57 pvcfl46 [] default_wake_function+0x0/0xe
    Mar 8 10:07:57 pvcfl46 [] kthread+0xfe/0x132
    Mar 8 10:07:57 pvcfl46 [] child_rip+0xa/0x11
    Mar 8 10:07:57 pvcfl46 [] kthread+0x0/0x132
    Mar 8 10:07:57 pvcfl46 [] child_rip+0x0/0x11
  • Dump thông tin bộ nhớ nhấn Alt+SysRq+M (thực hiện 2-3 lần)

  • Dump tất cả trạng thái registers bằng cách nhấn Alt+SysRq+P (thực hiện 2-3 lần)
  •  
  • Dump tất cả thông tin tác vụ bằng cách nhấn Alt+SysRq+T (thực hiện 2-3 lần)
  •  
  • Dump thông tin Vsched nhấn Alt+SysRq+A.

4. Thử reboot một cách an toàn:

  • Sync all filesystems nhấn Alt+SysRq+S. Output tương tự như:

    Mar 8 10:31:58 pvcfl46 SysRq: Emergency Sync
    Mar 8 10:31:58 pvcfl46 Emergency Sync complete
  • Umount filesystem bằng cách nhấn Alt+SysRq+U:

    Mar 8 10:33:30 pvcfl46 SysRq: Emergency Remount R/O
    Mar 8 10:33:30 pvcfl46 Emergency Remount complete
  • Kill tất cả tiến trình nhấn Alt+SysRq+I. Output tương tự như:

    Mar 8 10:36:13 pvcfl46 SysRq: Kill All Tasks
    Mar 8 10:36:13 pvcfl46 CT: 1: stopped
  • Gửi lệnh reboot node nhấn Alt+SysRq+B.

Sẽ rất hữu ích khi debug trong các trường hợp node bị treo bằng cách nhấn Alt+SysRq+C, tuy nhiên bạn phải cấu hình kernel crash dump.

5. Thay vì gửi lệnh qua keyboard, bạn có thể ghi kí tự tương ứng vào /proc/sysrq-trigger:

~# echo 1 > /proc/sys/kernel/sysrq
~# echo h > /proc/sysrq-trigger

ĐỐI TÁC
Cùng hợp tác, cùng phát triển vì một tương lai lớn mạnh.

  •   Địa chỉ trụ sở: Tầng 12, Tòa nhà trụ sở điều hành và trung tâm thương mại Viettel, 285 Cách Mạng Tháng 8, Phường 12, Quận 10, TP.HCM
  •   Văn phòng đại diện: Số 54 Đường C1, Phường 13, Quận Tân Bình, TP.HCM
  •   1900 6634 - (84-28) 7300 7788
  •   Fax: (84-28) 38 108 276
  •   info@ods.vn
DMCA.com Protection Status Thông báo bộ công thương
Copyright © 2016 | Powered By Online Data Services JSC. All Rights Reserved.
Sử dụng nội dung ở trang này và dịch vụ tại Online Data Services có nghĩa là bạn đồng ý với Thỏa thuận sử dụngChính sách bảo mật của chúng tôi.

Công ty Cổ phần ODS - Giấy phép kinh doanh số: 0314779796 cấp ngày 8 tháng 12 năm 2017 bởi Sở Kế Hoạch và Đầu Tư Tp.Hồ Chí Minh