LINUX一些较有用的内核宏/命令说明 2019-10-29 17:18:15

工作中遇见,记之以待后用。

1. CONFIG_MAGIC_SYSRQ

SysReq 定位内核的好东西,开启后在shell发送 break 命令可以查看内存、当前CPU运行地址等信息,当系统卡死时(比如内核死循环)仍可使用该命令查看信息。

SysReq菜单举例如下:

SysRq : HELP : loglevel(0-9) reBoot Crash terminate-all-tasks(E) memory-full-oom-kill(F) kill-all-tasks(I) thaw-filesystems(J) show-memory-usage(M) nice-all-RT-tasks(N) powerOff show-registers(P) show-all-timers(Q) Sync show-task-states(T) Unmount show-blocked-tasks(W)

* SysReq+m查看内存信息:

SysRq : Show Memory
Mem-Info:
Normal per-cpu:
CPU    0: hi:   42, btch:   7 usd:  31
active_anon:2044 inactive_anon:2 isolated_anon:0
 active_file:693 inactive_file:2773 isolated_file:0
 unevictable:0 dirty:0 writeback:0 unstable:0
 free:21327 slab_reclaimable:239 slab_unreclaimable:2247
 mapped:1395 shmem:3 pagetables:114 bounce:0
Normal free:85308kB min:896kB low:1120kB high:1344kB active_anon:8176kB inactive_anon:8kB active_file:2772kB inactive_file:11092kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:130048kB mlocked:0kB dirty:0kB writeback:0kB mapped:5580kB shmem:12kB slab_reclaimable:956kB slab_unreclaimable:8988kB kernel_stack:504kB pagetables:456kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0
Normal: 59*4kB 18*8kB 10*16kB 31*32kB 41*64kB 20*128kB 13*256kB 3*512kB 2*1024kB 1*2048kB 17*4096kB = 85308kB
3469 total pagecache pages
32768 pages RAM
1162 pages reserved
5754 pages shared
7953 pages non-shared

* SysReq查看CPU运行地址:

SysRq : Show Regs
Cpu 0
$ 0   : 00000000 80380000 00000000 800639c0
$ 4   : 80334000 00000000 1000e400 ffff00fe
$ 8   : 00000000 0000e400 00000000 8782c000
$12   : 00000000 000005e5 00000000 00000000
$16   : 80380000 803719ec 80330000 80380000
$20   : 80380000 87ff0000 87ff0000 9f050040
$24   : 00000000 80097de0                  
$28   : 80334000 80335ed0 87ff4780 800654bc
Hi    : 0000015f
Lo    : 68192800
epc   : 800639e0 r4k_wait+0x20/0x40
    Tainted: P           O
ra    : 800654bc cpu_idle+0x40/0x60
Status: 1000e403    KERNEL EXL IE 
Cause : 00804000
PrId  : 00019374 (MIPS 24Kc)

2. /proc/sys/kernel/panic

指定系统panic后多久重启,单位秒,例如

echo 3 > /proc/sys/kernel/panic

表示当系内核发送panic时,等待3秒再重启

3. top -m 查看内存情况和占用排序

该命令需要访问 /proc/{pid}/smaps,如果没有smaps文件,则须打开 CONFIG_PROC_PAGE_MONITOR 和 CONFIG_MMU。

说明:该-m选项只有busybox自带的top才有,完整独立的top似乎没有-m选项。

4. /proc/cmdline

cat /proc/cmdline 可以看到系统的启动参数

5. TFTP和FTP穿透NAT

由于这2个协议的端口号不是固定的,因此需要专门模块处理其NAT穿透,要开启内核宏:

CONFIG_NF_CONNTRACK_FTP
CONFIG_NF_CONNTRACK_TFTP
CONFIG_NF_NAT_FTP
CONFIG_NF_NAT_TFTP


创建于 2018-12-13 20:51:40
最后更新于 2019-10-29 17:18:15
昵称 密钥