我在启动我的MongoDBshell时收到这个警告:
3月20日星期三22:40:49.850 [initandlisten]
星期三三月20 22:40:49.850 [initandlisten] **警告:/ data的预读设置为2048KB
3月20日星期三22:40:49.850 [initandlisten] **我们build议将它设置为256KB(512个扇区)或更less
- linux的bash – 从另一个目录中删除一个目录中的所有文件
- 将Jenkins插件安装到Docker Jenkins
- 在bash脚本中自动dockerlogin
- 如何在Linux中安装DCEVM for Java 7?
- 为什么服务器听(sockfd,2)电话能接受3个连接?
Wed Mar 20 22:40:49.850 [initandlisten] ** http://dochub.mongodb.org/core/readahead
我用过:
df / data
要find驱动器的位置,我的数据被安装并随后使用:
sudo blockdev –setra 256 / dev / mapper / vg0-data
将readahead设置为指定的256。 我已经证实这与以下工作:
sudo blockdev –getra / dev / mapper / vg0-data
我仍然得到同样的错误,当启动我的shell?
UPDATE
我已经重新启动了mongodb服务器实例,并且仍然收到此错误。
更新2
我的linux服务器托pipe在AWS上,因此使用虚拟卷。 我已经将所有这些卷的readahead值设置为256,仍然收到此错误。
更新3
这是一个blockdev – MongoDB主实例的报告
RO RA SSZ BSZ StartSec Size Device rw 256 512 4096 0 8589934592 /dev/xvda1 rw 256 512 4096 0 10737418240 /dev/xvdh8 rw 256 512 4096 0 10737418240 /dev/xvdh7 rw 256 512 4096 0 10737418240 /dev/xvdh6 rw 256 512 4096 0 10737418240 /dev/xvdh5 rw 256 512 4096 0 10737418240 /dev/xvdh4 rw 256 512 4096 0 10737418240 /dev/xvdh3 rw 256 512 4096 0 10737418240 /dev/xvdh2 rw 256 512 4096 0 10737418240 /dev/xvdh1 rw 4096 512 4096 0 42944430080 /dev/md127 rw 4096 512 4096 0 38646317056 /dev/dm-0 rw 4096 512 4096 0 2143289344 /dev/dm-1 rw 4096 512 4096 0 2143289344 /dev/dm-2
这是一个blockdev – MongoDB的辅助实例的报告
RO RA SSZ BSZ StartSec Size Device rw 256 512 4096 0 8589934592 /dev/xvda1 rw 256 512 4096 0 10737418240 /dev/xvdh8 rw 256 512 4096 0 10737418240 /dev/xvdh7 rw 256 512 4096 0 10737418240 /dev/xvdh6 rw 256 512 4096 0 10737418240 /dev/xvdh5 rw 256 512 4096 0 10737418240 /dev/xvdh4 rw 256 512 4096 0 10737418240 /dev/xvdh3 rw 256 512 4096 0 10737418240 /dev/xvdh2 rw 256 512 4096 0 10737418240 /dev/xvdh1 rw 4096 512 4096 0 42944430080 /dev/md127 rw 4096 512 4096 0 38646317056 /dev/dm-0 rw 4096 512 4096 0 2143289344 /dev/dm-1 rw 4096 512 4096 0 2143289344 /dev/dm-2
这是一个blockdev – MongoDB Arbiter实例的报告
RO RA SSZ BSZ StartSec Size Device rw 256 512 4096 0 8589934592 /dev/xvda1
答案是在启动脚本中运行blockdev --setra
。 每次系统重新启动时,预读值将恢复为默认值。
在我的情况下,我只是想出我的逻辑驱动器是用blockdev --report
,然后在init.d的MongoDB启动脚本的“start”部分的每个驱动器上运行blockdev --setra
–setra。
希望这可以帮助其他人有类似的问题。
你可以这样做:
echo 'ACTION=="add", KERNEL=="xvdb", ATTR{bdi/read_ahead_kb}="64"' | sudo tee -a /etc/udev/rules.d/85-ebs.rules echo 'ACTION=="add", KERNEL=="xvdc", ATTR{bdi/read_ahead_kb}="64"' | sudo tee -a /etc/udev/rules.d/85-ebs.rules echo 'ACTION=="add", KERNEL=="xvdd", ATTR{bdi/read_ahead_kb}="64"' | sudo tee -a /etc/udev/rules.d/85-ebs.rules echo 'ACTION=="add", KERNEL=="xvde", ATTR{bdi/read_ahead_kb}="64"' | sudo tee -a /etc/udev/rules.d/85-ebs.rules echo 'ACTION=="add", KERNEL=="dm-0", ATTR{bdi/read_ahead_kb}="64"' | sudo tee -a /etc/udev/rules.d/85-ebs.rules echo 'ACTION=="add", KERNEL=="dm-1", ATTR{bdi/read_ahead_kb}="64"' | sudo tee -a /etc/udev/rules.d/85-ebs.rules echo 'ACTION=="add", KERNEL=="dm-2", ATTR{bdi/read_ahead_kb}="64"' | sudo tee -a /etc/udev/rules.d/85-ebs.rules echo 'ACTION=="add", KERNEL=="md127", ATTR{bdi/read_ahead_kb}="64"' | sudo tee -a /etc/udev/rules.d/85-ebs.rules
KERNEL ==“”是你的硬盘设备
然后重新启动一切将被正确设置
rw 256 512 4096 0 42949672960 /dev/xvda1 rw 128 512 4096 0 214748364800 /dev/xvdc rw 128 512 4096 0 214748364800 /dev/xvde rw 128 512 4096 0 214748364800 /dev/xvdd rw 128 512 4096 0 214748364800 /dev/xvdb rw 128 512 4096 0 429227769856 /dev/md127 rw 128 512 4096 0 343379279872 /dev/dm-0 rw 128 512 4096 0 42920312832 /dev/dm-1 rw 128 512 4096 0 42920312832 /dev/dm-2
如果数据文件在/data
但这些文件在指定的设备上没有,则在/dev/mapper/vg0-data
上设置正确的读取将不起作用。
应该对设备运行sudo blockdev --setra 256 /dev/<dev where data lives>
/数据从以下位置挂载: sudo blockdev --setra 256 /dev/<dev where data lives>
将/usr/lib/tuned/throughput-performance/tuned.conf
readahead值修改为128
在centos7上
我写了一个init脚本来为我设置/取消设置:
readahead initscript