良玉的博客 点点滴滴,积水成河_良玉的博客_页游、手游linux运维工程师之路

kernel BUG at /build/buildd/linux-3.13.0/mm/memory.c:3756!

早上机器突然出现负载持续飙升,都到300多了,ps或者top都无法出来。syslog也没报错,以为是某个进程引起的,把所有在跑的业务进程都kill掉,结果还是负载上升。后来一个个log查看,发现kernel.log里有报错:Jun 30 10:16:37 localhost kernel: [20789571.526981] ------------[ cut here ]------------Jun 30 10:16:37 localhost kernel: [20789571.646113

阅读全文...

SVN:Error Checksum mismatch while updating

今天通过svn来update内容报错Error Checksum mismatch while updating...如下图删了文件,删了目录重现update都不行,其他文件正常,就这个文件报错最后找到了解决办法先update to reversion到指定的版本,选only this item,更新一次然后再选择Fully recursive更新一遍就解决了

阅读全文...

TCP中异常关闭链接的意义 异常关闭的情况

终止一个连接的正常方式是发送FIN。 在发送缓冲区中 所有排队数据都已发送之后才发送FIN,正常情况下没有任何数据丢失。但我们有时也有可能发送一个RST报文段而不是F IN来中途关闭一个连接。这称为异常关闭 。 进程关闭socket的默认方式是正常关闭,如果需要异常关闭,利用 SO_LINGER选项来控制。异常关闭一个连接对应用程序来说有两个优点:(1)丢弃任何待发的已经无意义的 数据,并立即发送RST报文段;(2)RST的接

阅读全文...

mysqlbinlog 查看binlog时报错unknown variable 'default-character-set=utf8'

原因是mysqlbinlog工具无法识别binlog中的配置中的default-character-set=utf8指令。两个方法可以解决:一是在MySQL的配置/etc/my.cnf中将default-character-set=utf8 修改为 character-set-server = utf8,但是这需要重启MySQL服务,如果你的MySQL服务正在忙,那这样的代价会比较大。二是用mysqlbinlog --no-defaults 命令打开

阅读全文...

数据库记录的删除,update比delete好

数据库使用delete语句后,数据库文件大小并没有变小,以致数据库的每次插入操作,都会使数据库体积变大。 与其删不掉,还是让他留着吧。发现使用Update的时候,只要新的数据不比原来的大,数据库体积就不会增大(文件存到数据库很容易看出效果)。 所以使用Update方式标记删除记录,添加新记录的时候如果存在标记为删除的记录,则更新该条记录为新记录。

阅读全文...

mysql一台服务器多实例做slave的配置方法

Master 1服务器和Slave服务器(3306)主从同步1、 Master 1服务器--查看参数文件,主要查看是否开启binlog和serverid[root@localhost ~]# cat /etc/my.cnflog-bin= mysql-binserver-id =200--登录mysql,赋予slave账号权限,允许该用户可以在主库上读取日志[root@localhost ~]# mysqlmysql> grant replication slave,reload,supe

阅读全文...

为flash建立socket安全策略文件服务

前因
Flash被广泛应用于互联网各个方面,是因为它提供了各种各样的特性,其中很重要的一点就是,可以用flash建立TCP连接到服务器然后交换数据。从网络管理员的观点看,一个互联网的服务器能够连接进到内网里来,是一个很恐怖的事情,所以flash搞出来一个安全策略文件。之前用nginx搭建了843端口http://blog.uouo123.com/post/806.html,可能是因为版本兼容问题,perl测试成功,但是产品始终获取不到,则查找是否有其他办法来解决问题。

阅读全文...

标签: nginxflashsocket

作者:良玉 分类:故障处理 浏览:781 评论:0

ubuntu下的service与/etc/init.d区别

    现在Ubuntu启动,关闭服务不能用/etc/rc*.d/init.d/{Service} {start|stop|restart}了,需要用service {Service} {start|stop|restart}。

    在网上搜索后发现原因是Ubuntu10.04后引入了upstart来管理自启动服务。旧的系统管理被称作SysV,它通过在代表各个run level的目录里建立脚本来控制服务的自动启动。比如,/etc/rc0.d目录里以S开头的脚本会被运行在runlevel 0。

    在这种方式下,如果要屏蔽一个服务,需要把S开头的那个更名为以K开头。而所以在rc*.d下的脚本都链接到/etc/init.d目录里。而Upstart采用了完全不同的方式。它要求所有的启动脚本,其实是配置文件,建立在/etc/init目录下,每个服务一个文件,里面定义脚本启动与关闭的运行级别、条件、事件,等。

    可以看得出,Upstart要比SysV高明得多,因为SysV启动是线性、顺序的,一个S20的服务必须要等待S19启动完成才能启动,如果一个启动要花很多时间,那么后面的服务就算完全无关,也必须要等。

    而在Upstart下,服务的启动基于事件,而且是并行的,只要事件发生,服务可以并发启动。这种方式无疑要优越得多,因为它可以充分利用现在计算机多核的特点,大大减少启动所需的时间。


阅读全文...