为了加快 JBoss 的启动和使用速度,我将<jboss-home>
目录的内容复制到足够大的tmpfs
“磁盘”中。这样一来,我期望速度会显著提高。
然而令我惊讶的是,我看到一点也没有改进——无论是启动时间还是后续应用程序的使用。
我如何創造tmpfs
?
$ mkdir /usr/local/tmpfs-disk
$ mount -t tmpfs -o size=2048m tmpfs /usr/local/tmpfs-disk
$
$ cd /usr/local
$ ln -s tmpfs-disk foo
$ ls -ld foo
lrwxrwxrwx 1 root root 9 Jul 21 00:09 foo -> tmpfs-disk
$
$ cp -a <jboss-home>/* foo/
确认
$ mount
...
tmpfs on /usr/local/tmpfs-disk type tmpfs (rw,size=2048m)
$ df -h
Filesystem Size Used Avail Use% Mounted on
...
tmpfs 2.0G 1.3G 785M 62% /usr/local/tmpfs-disk
我正在使用 Fedora 12。
我在这里遗漏了什么?
短暂性脑缺血……
答案1
要么您实际上并没有使用 tmpfs(可能是因为您实际上并没有运行复制到 ramdisk 的应用程序副本,但还有其他可能性,我会让您探索),要么您的性能瓶颈根本不是磁盘。
答案2
现代操作系统在 RAM 中缓存内容方面实际上相当不错。确保这一点的最佳方法是强制清除缓存(来自另一个堆栈溢出:sync && echo 1 > /proc/sys/vm/drop_caches),然后启动(实际上只是启动)会更快。
答案3
尝试使用 vmstat 检查您的内存是否正在交换到磁盘。
如果是,那么您可以尝试调整 Fedora 内核 vm.swappiness 值。默认情况下,RHEL 上的值为 60。尝试将其更改为零。
该内核参数决定内存页面交换到磁盘的积极程度。