Android中查看每个进程的fd最大限制有几个方法:
1.命令行中输入命令:adb shell ulimit -a
返回:
-t: time(cpu-seconds) unlimited
-f: file(blocks) unlimited
-c: coredump(blocks) 0
-d: data(KiB) unlimited
-s: stack(KiB) 8192
-l: lockedmem(KiB) 65536
-n: nofiles(descriptors) 32768
-p: processes 28594
-i: sigpending 28594
-q: msgqueue(bytes) 819200
-e: maxnice 40
-r: maxrtprio 0
-m: resident-set(KiB) unlimited
-v: address-space(KiB) unlimited
其中-n: nofiles(descriptors)这一行代表fd的最大限制,此处为32768。
2.命令行中输入命令:adb shell cat /proc/[pid]/limits
注:[pid]请替换为进程的实际id。
返回:
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 28594 28594 processes
Max open files 32768 32768 files
Max locked memory 67108864 67108864 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 28594 28594 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 40 40
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
其中Max open files行、Soft Limit列的值代表fd的最大限制,此处为32768。