单机搭建Android开发环境,第一篇重点介绍了如何优化Windows 7系统,以提高开发主机的性能并延长SSD的使用寿命。第二篇重点介绍了基于VMWare安装64位版的Ubuntu 12.04,并安装sshd、vim和samba。本篇将重点介绍VMWare配置的优化以及Ubun ...
单机搭建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内启动完成。
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:单机搭建Android开发环境(三)
关键词:Android
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。