單機搭建Android開發環境三,優化VMWare配置及Ubuntu系統,縮短Ubuntu開機時間,並提高其運行性能。
單機搭建Android開發環境,第一篇重點介紹瞭如何優化Windows 7系統,以提高開發主機的性能並延長SSD的使用壽命。第二篇重點介紹了基於VMWare安裝64位版的Ubuntu 12.04,並安裝sshd、vim和samba。本篇將重點介紹VMWare配置的優化以及Ubuntu 12.04系統的優化,進一步減少對SSD無謂的寫操作並提高Ubuntu的開機啟動速度和運行性能。最終優化的結果,在SSD上啟動Ubuntu 12.04,大概不到9秒。
首先通過修改*.vmx配置文件,取消生成日誌,減少對SSD的寫操作,
logging = "FALSE"
修改*.vmx配置文件,禁用硬碟記憶體文件(*.vmem),減少對SSD的寫操作,同時提高虛擬機的性能,
mainMem.useNamedFile = "FALSE"
其他有關提高VMWare性能的配置如下:
snapshot.disabled = "TRUE"
MemTrimRate=0
sched.mem.pshare.enable = "FALSE"
sched.mem.maxmemctl=0
MemAllowAutoScaleDown = "FALSE"
mem.ShareScanTotal=0
mem.ShareScanVM=0
mem.ShareScanThreshold=4096
prefvmx.minVmMemPct = "100"
prefvmx.useRecommendedLockedMemSize = "TRUE"
mainMem.partialLazySave = "FALSE"
mainMem.partialLazyRestore = "FALSE"
priority.grabbed = "high"
priority.ungrabbed = "normal"
以上優化選項僅供參考,效果如何,以實測為準。
通過dmesg命令查看系統啟動信息,可以發現幾處有明顯的停頓,其中第一處如下,
[ 3.572126] ACPI: Interpreter enabled
[ 3.572260] ACPI: (supports S0 S1 S4 S5)
[ 3.572530] ACPI: Using IOAPIC for interrupt routing
[ 14.383799] ACPI: No dock devices found.
此處停頓了大概10秒,可通過修改*.vmx文件如下屬性做優化,
mem.hotadd = "FALSE"
第二處如下,
[ 5.760334] EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: (null)
[ 5.998530] usb 2-2.1: new full-speed USB device number 4 using uhci_hcd
[ 11.410208] ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 11.447128] udevd[470]: starting version 175
[ 11.651791] Adding 3905532k swap on /dev/sda1. Priority:-1 extents:1 across:3905532k
此處停頓了大概5秒,跟eth0有關,可以通過如下步驟進行優化,
a)查找網卡對應的模塊名稱,執行命令,
lspci -v
可以看到模塊名稱為e1000,Ethernet controller詳細信息如下,
02:01.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)
Subsystem: VMware PRO/1000 MT Single Port Adapter
Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 19
Memory at fd5c0000 (64-bit, non-prefetchable) [size=128K]
Memory at fdff0000 (64-bit, non-prefetchable) [size=64K]
I/O ports at 2000 [size=64]
[virtual] Expansion ROM at e7b00000 [disabled] [size=64K]
Capabilities: <access denied>
Kernel driver in use: e1000
Kernel modules: e1000
b)增加blacklist,執行如下命令,
echo "blacklist e1000" | sudo tee /etc/modprobe.d/blacklist-ethernet.conf
c)修改文件/etc/rc.local
sudo vim /etc/rc.local
在exit 0前一行增加
modprobe e1000
exit 0
d)修改超時時間
sudo vim /etc/init/failsafe.conf
# The point here is to wait for 2 minutes before forcibly booting
# the system. Anything that is in an "or" condition with 'started
# failsafe' in rc-sysinit deserves consideration for mentioning in
# these messages. currently only static-network-up counts for that.
# sleep 20
# Plymouth errors should not stop the script because we *must* reach
# the end of this script to avoid letting the system spin forever
# waiting on it to start.
$PLYMOUTH message --text="Waiting for network configuration..." || :
# sleep 40
$PLYMOUTH message --text="Waiting up to 60 more seconds for network configuration..." || :
# sleep 59
$PLYMOUTH message --text="Booting system without full network configuration..." || :
註釋掉所有的sleep,並保存。
e)重新創建initrd
sudo dpkg-reconfigure linux-image-$(uname -r)
執行命令
sudo reboot
重啟Ubuntu,如下所示處仍有停頓,因IPv6而起,
[ 22.993369] eth0: no IPv6 routers present
修改配置文件/etc/sysctl.conf
sudo vim /etc/sysctl.conf
增加如下設置禁用ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
經過以上修改,重新啟動Ubuntu,dmesg信息如下,系統在8S內啟動完成。
[ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Linux version 3.2.0-23-generic (buildd@crested) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu4) ) #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 (Ubuntu 3.2.0-23.36-generic 3.2.14) [ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-3.2.0-23-generic root=UUID=265046be-0609-4ca9-ac6f-ea5bba7ed74e ro [ 0.000000] KERNEL supported cpus: [ 0.000000] Intel GenuineIntel [ 0.000000] AMD AuthenticAMD [ 0.000000] Centaur CentaurHauls [ 0.000000] Disabled fast string operations [ 0.000000] BIOS-provided physical RAM map: [ 0.000000] BIOS-e820: 0000000000000000 - 000000000009e800 (usable) [ 0.000000] BIOS-e820: 000000000009e800 - 00000000000a0000 (reserved) [ 0.000000] BIOS-e820: 00000000000dc000 - 0000000000100000 (reserved) [ 0.000000] BIOS-e820: 0000000000100000 - 00000000bfee0000 (usable) [ 0.000000] BIOS-e820: 00000000bfee0000 - 00000000bfeff000 (ACPI data) [ 0.000000] BIOS-e820: 00000000bfeff000 - 00000000bff00000 (ACPI NVS) [ 0.000000] BIOS-e820: 00000000bff00000 - 00000000c0000000 (usable) [ 0.000000] BIOS-e820: 00000000f0000000 - 00000000f8000000 (reserved) [ 0.000000] BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved) [ 0.000000] BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved) [ 0.000000] BIOS-e820: 00000000fffe0000 - 0000000100000000 (reserved) [ 0.000000] BIOS-e820: 0000000100000000 - 0000000440000000 (usable) [ 0.000000] NX (Execute Disable) protection: active [ 0.000000] DMI present. [ 0.000000] DMI: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 07/02/2015 [ 0.000000] Hypervisor detected: VMware [ 0.000000] e820 update range: 0000000000000000 - 0000000000010000 (usable) ==> (reserved) [ 0.000000] e820 remove range: 00000000000a0000 - 0000000000100000 (usable) [ 0.000000] No AGP bridge found [ 0.000000] last_pfn = 0x440000 max_arch_pfn = 0x400000000 [ 0.000000] MTRR default type: uncachable [ 0.000000] MTRR fixed ranges enabled: [ 0.000000] 00000-9FFFF write-back [ 0.000000] A0000-BFFFF uncachable [ 0.000000] C0000-C7FFF write-protect [ 0.000000] C8000-CBFFF write-back [ 0.000000] CC000-EFFFF uncachable [ 0.000000] F0000-FFFFF write-protect [ 0.000000] MTRR variable ranges enabled: [ 0.000000] 0 base 000C0000000 mask 3FFC0000000 uncachable [ 0.000000] 1 base 00000000000 mask 3F800000000 write-back [ 0.000000] 2 disabled [ 0.000000] 3 disabled [ 0.000000] 4 disabled [ 0.000000] 5 disabled [ 0.000000] 6 disabled [ 0.000000] 7 disabled [ 0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106 [ 0.000000] original variable MTRRs [ 0.000000] reg 0, base: 3GB, range: 1GB, type UC [ 0.000000] reg 1, base: 0GB, range: 32GB, type WB [ 0.000000] total RAM covered: 31744M [ 0.000000] Found optimal setting for mtrr clean up [ 0.000000] gran_size: 64K chunk_size: 64K num_reg: 5 lose cover RAM: 0G [ 0.000000] New variable MTRRs [ 0.000000] reg 0, base: 0GB, range: 2GB, type WB [ 0.000000] reg 1, base: 2GB, range: 1GB, type WB [ 0.000000] reg 2, base: 4GB, range: 4GB, type WB [ 0.000000] reg 3, base: 8GB, range: 8GB, type WB [ 0.000000] reg 4, base: 16GB, range: 16GB, type WB [ 0.000000] e820 update range: 00000000c0000000 - 0000000100000000 (usable) ==> (reserved) [ 0.000000] last_pfn = 0xc0000 max_arch_pfn = 0x400000000 [ 0.000000] found SMP MP-table at [ffff8800000f6a80] f6a80 [ 0.000000] initial memory mapped : 0 - 20000000 [ 0.000000] Base memory trampoline at [ffff880000099000] 99000 size 20480 [ 0.000000] Using GB pages for direct mapping [ 0.000000] init_memory_mapping: 0000000000000000-00000000c0000000 [ 0.000000] 0000000000 - 00c0000000 page 1G [ 0.000000] kernel direct mapping tables up to c0000000 @ 1ffff000-20000000 [ 0.000000] init_memory_mapping: 0000000100000000-0000000440000000 [ 0.000000] 0100000000 - 0440000000 page 1G [ 0.000000] kernel direct mapping tables up to 440000000 @ bffff000-c0000000 [ 0.000000] RAMDISK: 364e4000 - 3726a000 [ 0.000000] ACPI: RSDP 00000000000f6a10 00024 (v02 PTLTD ) [ 0.000000] ACPI: XSDT 00000000bfeeb633 0005C (v01 INTEL 440BX 06040000 VMW 01324272) [ 0.000000] ACPI: FACP 00000000bfefee73 000F4 (v04 INTEL 440BX 06040000 PTL 000F4240) [ 0.000000] ACPI: DSDT 00000000bfeed1dd 11C96 (v01 PTLTD Custom 06040000 MSFT 03000001) [ 0.000000] ACPI: FACS 00000000bfefffc0 00040 [ 0.000000] ACPI: BOOT 00000000bfeed1b5 00028 (v01 PTLTD $SBFTBL$ 06040000 LTP 00000001) [ 0.000000] ACPI: APIC 00000000bfeec8bd 00742 (v01 PTLTD ? APIC 06040000 LTP 00000000) [ 0.000000] ACPI: MCFG 00000000bfeec881 0003C (v01 PTLTD $PCITBL$ 06040000 LTP 00000001) [ 0.000000] ACPI: SRAT 00000000bfeeb72f 008D0 (v02 VMWARE MEMPLUG 06040000 VMW 00000001) [ 0.000000] ACPI: HPET 00000000bfeeb6f7 00038 (v01 VMWARE VMW HPET 06040000 VMW 00000001) [ 0.000000] ACPI: WAET 00000000bfeeb6cf 00028 (v01 VMWARE VMW WAET 06040000 VMW 00000001) [ 0.000000] ACPI: Local APIC address 0xfee00000 [ 0.000000] system APIC only can use physical flat [ 0.000000] Setting APIC routing to physical flat. [ 0.000000] SRAT: PXM 0 -> APIC 0x00 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x02 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x04 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x06 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x08 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x0a -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x0c -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x0e -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x10 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x12 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x14 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x16 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x18 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x1a -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x1c -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x1e -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x20 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x22 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x24 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x26 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x28 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x2a -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x2c -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x2e -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x30 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x32 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x34 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x36 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x38 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x3a -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x3c -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x3e -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x40 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x42 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x44 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x46 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x48 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x4a -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x4c -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x4e -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x50 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x52 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x54 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x56 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x58 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x5a -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x5c -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x5e -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x60 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x62 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x64 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x66 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x68 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x6a -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x6c -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x6e -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x70 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x72 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x74 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x76 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x78 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x7a -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x7c -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x7e -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x80 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x82 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x84 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x86 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x88 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x8a -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x8c -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x8e -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x90 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x92 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x94 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x96 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x98 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x9a -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x9c -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0x9e -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xa0 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xa2 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xa4 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xa6 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xa8 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xaa -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xac -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xae -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xb0 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xb2 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xb4 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xb6 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xb8 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xba -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xbc -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xbe -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xc0 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xc2 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xc4 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xc6 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xc8 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xca -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xcc -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xce -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xd0 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xd2 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xd4 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xd6 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xd8 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xda -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xdc -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xde -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xe0 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xe2 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xe4 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xe6 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xe8 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xea -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xec -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xee -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xf0 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xf2 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xf4 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xf6 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xf8 -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xfa -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xfc -> Node 0 [ 0.000000] SRAT: PXM 0 -> APIC 0xfe -> Node 0 [ 0.000000] SRAT: Node 0 PXM 0 0-a0000 [ 0.000000] SRAT: Node 0 PXM 0 100000-10000000 [ 0.000000] SRAT: Node 0 PXM 0 10000000-c0000000 [ 0.000000] SRAT: Node 0 PXM 0 100000000-440000000 [ 0.000000] NUMA: Node 0 [0,a0000) + [100000,10000000) -> [0,10000000) [ 0.000000] NUMA: Node 0 [0,10000000) + [10000000,c0000000) -> [0,c0000000) [ 0.000000] NUMA: Node 0 [0,c0000000) + [100000000,440000000) -> [0,440000000) [ 0.000000] Initmem setup node 0 0000000000000000-0000000440000000 [ 0.000000] NODE_DATA [000000043fffb000 - 000000043fffffff] [ 0.000000] [ffffea0000000000-ffffea0010ffffff] PMD -> [ffff88042f600000-ffff88043f5fffff] on node 0 [ 0.000000] Zone PFN ranges: [ 0.000000] DMA 0x00000010 -> 0x00001000 [ 0.000000] DMA32 0x00001000 -> 0x00100000 [ 0.000000] Normal 0x00100000 -> 0x00440000 [ 0.000000] Movable zone start PFN for each node [ 0.000000] early_node_map[4] active PFN ranges [ 0.000000] 0: 0x00000010 -> 0x0000009e [ 0.000000] 0: 0x00000100 -> 0x000bfee0 [ 0.000000] 0: 0x000bff00 -> 0x000c0000 [ 0.000000] 0: 0x00100000 -> 0x00440000 [ 0.000000] On node 0 totalpages: 4194158 [ 0.000000] DMA zone: 64 pages used for memmap [ 0.000000] DMA zone: 5 pages reserved [ 0.000000] DMA zone: 3913 pages, LIFO batch:0 [ 0.000000] DMA32 zone: 16320 pages used for memmap [ 0.000000] DMA32 zone: 765984 pages, LIFO