问题描述
在这里的ubuntu服务器上,我正在尝试使用Java从压缩文件格式解压缩300M图像文件。
我的解包率是0.5Mbytes /sec,非常糟糕(按此速率打开1.5TB打包34天)。
我正在试图找出原因,而且我注意到的唯一奇怪的是,当我正在进行解包过程时,updatedb.mlocate始终有效。我想把它关掉,看它是否会妨碍它,但我不太了解它是什么。
最佳
top - 05:16:52 up 1 day, 5:15, 3 users, load average: 2.00, 2.01, 1.83
Tasks: 83 total, 1 running, 82 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.4%us, 0.8%sy, 0.0%ni, 8.4%id, 90.2%wa, 0.0%hi, 0.0%si, 0.2%st
Mem: 1737420k total, 1722680k used, 14740k free, 1241260k buffers
Swap: 917500k total, 160k used, 917340k free, 165448k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
22901 davidpar 20 0 1051m 56m 4992 S 3 3.3 0:47.84 java
2221 root 20 0 32348 26m 268 D 1 1.6 27:57.86 updatedb.mlocat
25 root 20 0 0 0 0 S 0 0.0 10:10.77 kswapd0
678 root 20 0 15864 444 268 S 0 0.0 0:19.45 irqbalance
849 davidpar 20 0 26560 1676 332 S 0 0.1 17:17.49 screen
iotop
Total DISK READ: 4.07 M/s | Total DISK WRITE: 789.62 K/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
2221 idle root 1556.98 K/s 6.36 K/s 0.00 % 99.61 % updatedb.mlocate
22902 be/4 davidpar 2.54 M/s 671.93 K/s 0.00 % 96.96 % java -cp /home/davidparks21/fruggutils/lib/FruggMapreduceJobs.~educe.UnpackImages /mnt/local/imagebinaries-r-00010 /mnt/ebs1/
547 be/3 root 0.00 B/s 87.47 K/s 0.00 % 0.30 % [jbd2/xvdf-8]
177 be/3 root 0.00 B/s 3.98 K/s 0.00 % 0.15 % [jbd2/xvda1-8]
最佳解决方法
它可以被杀死:
sudo killall updatedb.mlocate
要么:
sudo kill -9 <PID>
它每天都由cron运行。禁用它:
sudo chmod -x /etc/cron.daily/mlocate
如果你想要re-enable它:
sudo chmod +x /etc/cron.daily/mlocate
次佳解决方法
我不想完全消除这个过程,但我确实希望不那么频繁地让它发生,所以我想出了如何将它设置为每周而不是每天运行。这是基于接受的答案above,但可能最好列为自己的答案,因为它没有禁用它。
那说……它很简单,似乎工作得很好。
sudo chmod -x /etc/cron.daily/mlocate
sudo cp /etc/cron.daily/mlocate /etc/cron.weekly/mlocate
sudo chmod +x /etc/cron.weekly/mlocate
第一个禁用cron作业。第二个将它移动到每周任务。第三个命令设置权限,以便启用它。所有选项均为每日,每小时,每周和每月。
第三种解决方法
我从未使用过locate
,所以我删除了它。 sudo dpkg -P mlocate
参见:https://wiki.archlinux.org/index.php/File_system_search