hej在那里!
我正在维护8个Pandaboards的networking。 其中之一是作为服务器托pipe一个基于php的浏览器游戏,其他人则是运行该游戏的客户端。
服务器从SD卡运行Debian Wheezy,速度很慢。 为了提高客户端的游戏性能,我将mysql数据目录和tmp目录移到了tmpfs,并相应地更改了my.cnf。 数据不需要同步回SD,因为它没有改变,只有临时的游戏统计被写入到数据库。
现在这是通过添加到rc.local来完成的:
# mount tmpfs sudo mount -t tmpfs tmpfs /var/tmpfs # put a fresh copyy of mysql data there sudo rsync -a /var/lib/mysql/ /var/tmpfs/mysql/ # restart mysql service sudo service mysql restart
此解决scheme正在工作,但我想这不是最优雅的一个,因为mysql启动修改my.cnf,将不会findtmpfs中的数据,并在第一次启动时产生错误。 我通过延迟客户的初始游戏页面请求3秒来解决这个问题。
如何在所有数据同步到tmpfs之后启动mysql? 添加一个脚本,它挂载和rsync到所有/etc/rc*.d哪里有一个Sxxmysql? 是只有服务的rc * .d目录吗?
任何帮助表示赞赏。
你可以自己使用一个服务脚本(好),或者将它包含在mysql脚本中(temp。workarround,丑陋的,不会在更新后工作)。
像/etc/init.d/mysql应该存在。
那么你会searchstart并在实际上开始之前你会添加你的脚本的一部分。
(虽然可能与新版本有所不同)
在我的一个主机上,这看起来像这样:
# # main() # > case "${1:-''}" in 'start') sanity_checks; # Start daemon log_daemon_msg "Starting MySQL database server" "mysqld" if mysqld_status check_alive nowarn; then log_progress_msg "already running" log_end_msg 0 else setup_chroot # Could be removed during boot test -e /var/run/mysqld || install -m 755 -o mysql -g root -d /var/run/mysqld # mount tmpfs sudo mount -t tmpfs tmpfs /var/tmpfs # put a fresh copyy of mysql data there sudo rsync -a /var/lib/mysql/ /var/tmpfs/mysql/ # Start MySQL! /usr/bin/mysqld_safe > /dev/null 2>&1 &
你可能要考虑增加一些理智检查等。
请注意,正如你所说,实际上使用启动过程依赖的解决scheme将更加优雅:
所以你可以让你挂载一个“服务”,并将其包含到booot进程中,并使mysql依赖之前启动的服务。 (我想你可以把它包括在挂载服务,但我不知道这一点)
丹尼斯指出我正确的方向。 在评论中,我无法清楚地表明出了什么,所以我会根据他的意见来回答我的问题。
备份和编辑/ etc / fstab。 添加:
tmpfs /path/to/mount/point tmpfs rw 0 0
备份和编辑/etc/init.d/mysql。 在[开始|停止]情况之前,我已经将我的代码放在了健全性检查的开始处:
sanity_checks() { # check wether /var/tmpfs/ already contains /mysql directory if [ ! -d /var/tmpfs/mysql ]; then # copy fresh mysql data to tmpfs rsync -a /var/lib/mysql/ /var/tmpfs/mysql/ # temp log message for debugging log_daemon_msg "Just synced MySQL data directory to /var/tmpfs" "Cool!" log_end_msg 0 # also optional: else log_daemon_msg "MySQL data dir already in sync" "Supercool!" log_end_msg 0 fi [ other checks ] }
我很高兴这个解决scheme。