Building the Coming Soon

关于

HFLS aka the Akademia 12′, then NUST 16′, HKU 18′, now a Blue.

Linux

Y470卸载bbswitch临时补丁acpi-handle-hack方法

02/18/2014

Kaijia之前一直使用的是acpi_call的方法处理Y470的双显卡问题,但自从Bumblebee的PPA中移除了acpi_call包后,Kaijia也切换为了bbswitch(呵呵反编译党)。但是也不知是Linux内核的问题还是联想工程师的疏忽(或者是研发小Y系列时完全没考虑过会不会被Linus Torvalds竖中指的节奏),Y470/Y570系列电脑存在一个Bug导致Linux无法正确识别N卡的ACPI,从而导致了Bumblebee的bbswitch功能无法正常运行。

一开始Kaijia也没有头绪,后来找到了bbswitch的维护者为Y470专门提供的一个临时解决方案:安装一个非常简陋的临时解决方案acpi-handle-hack,直到Linux内核开发者修复此问题。这个漏洞一直到Linux 3.9才得到修复,而Kaijia的Ubuntu 12.04运行Linux 3.2内核,所以Kaijia安装了acpi-handle-hack后一直将就用着。

随着Ubuntu 12.04.4的发布,Ubuntu 12.04的指导内核版本提升为Linux 3.10(Saucy),显卡问题在此版本的内核前已经得到了修复,因此是时候卸载这个简陋的解决方案了。

阅读更多

使用Zabbix监控MySQL服务器方法

01/27/2014

从Zabbix 2.2开始,Zabbix官方已经支持了MySQL监控,但是MySQL监控默认是不可用的,需要经过额外的设置才可以使用。Kaijia将Zabbix换到了新的服务器时候性能绰绰有余,于是决定充分发挥剩余的内存和SSD性能,把MySQL、Apache、PHP-FPM等的监控也开起来。

Google了一下后找到了一篇《How to Monitor MySQL using the new Zabbix Template App MySQL》,大部分内容都可用,可惜这位老兄最后的步骤写错了。。。于是参照此篇文章Kaijia整理了一下使用Zabbix监控MySQL服务器的方法。

阅读更多

避免DNSPod监控消耗大量流量方法

01/26/2014

昨天萌萌的网站悲剧地超了流量(用掉了12G多),于是帮他分析了一下Apache日志。因为是cPanel的日志,下载下来很小,才8M多一些(要想Kaijia的Apache日志一个礼拜起码50M),打开了一看发现清一色的全部都类似于:

IP.IP.IP.IP – – [24/Jan/2014:20:13:17 +0800] “GET / HTTP/1.0” 200 133938 “-” “DNSPod-Monitor/1.0”

Kaijia一开始觉得特奇怪,没有发现异常的但为什么会消耗12G多的流量呢,于是分析了一下IP,发现有6个IP地址从共发送了近9万次”GET / HTTP/1.0“请求,而且这些请求的UA都是DNSPod-Monitor/1.0,于是Kaijia查了一下DNSPod官方提供的监控点列表,发现这6个IP都在此列表上。于是Kaijia得出了一个很坑爹的结论,DNSPod监控吃掉了12G流量中的绝大部分!

阅读更多

“Zabbix poller processes more than 75% busy”警报问题解决

01/25/2014

虽然Zabbix的监控警报各种有,但Kaijia使用碰到最多的几个莫过于内存耗尽,网络不通,IO太慢还有这个“Zabbix poller processes more than 75% busy”了。一开始的时候因为这个即不影响使用也持续一会儿就自行解决就没有多在意。然后随着数据库的增大,Zabbix消耗的内存可是越来越多,Poller processes(轮询)开始天天Busy了,最终Kaijia不得不把Zabbix挪到了另外一台服务器上。

但这并没有彻底解决问题,警报仍然三天两头来几个。之后Kaijia开启了Zabbix警报的邮件功能,于是开始频繁收到这类邮件,于是Kaijia决定解决这个问题。Google了一下资料,没有找到很权威的答案,造成轮询忙的问题有很多中,支撑Zabbix的MySQL卡住了,Zabbix服务器的IO卡住了都有可能,Zabbix进程分配到内存不足都有可能。一个简单的方法是增加Zabbix Server启动时初始化的进程数量,这样直接增加了轮询的负载量,从比例上来讲忙的情况就少了。

阅读更多

快速批量修改Git提交注释方法

01/09/2014

纠结这个问题的原因还是——完美主义造成的格式问题。很久以前Kaijia一直在用Word的格式,即英文和中文之间没有空格填写提交注释,今年暑假看了微软的设计规范文档之后Kaijia开始采用英文和中文之间有空格的形式。所以这次Kaijia将原来储存在SVN中的内容导入到Git时特纠结打算将之前的格式全部换过来。于是Google了一下批量修改Git提交注释的方法。

一开始还没有找到,当然主要原因还是一般人只会遇到需要修改最近的一条注释的情况,仔细重新看了一遍后在一篇Stack Overflow中的一个非最受欢迎答案中找到了方法。

阅读更多

mod_pagespeed导致Apache服务器高CPU负载问题解决

01/08/2014

从没有IO瓶颈的OpenVZ切换到KVM之后各种问题就会体现为不正常的CPU负载,比如这次Kaijia在为Apache服务器添加了mod_pagespeed模块支持后就遇到了这个问题。在启用了mod_pagespeed以及其他几个模块后,Kaijia查看CPU负载的监控记录时发现启用mod_pagespeed模块前后的CPU负载差距异常大。

系统监控显示PageSpeed启用前后CPU负载对比

系统监控显示PageSpeed启用前后CPU负载对比

由于同时启用了多个新模块,所以Kaijia还不能确定到底是哪个模块的问题。Kaijia打开Apache的错误日志查看记录,结果无论使用vim还是nano都转了半天没有动静。一般这种情况都是由于IO造成的,于是Kaijia查看了一下error.log的大小,结果发现error.log居然有242MB(这。。。)。

阅读更多

OnApp XEN平台Recovery模式修复Linux系统无法启动问题

01/08/2014

今天Kaijia遇到了一件郁闷事。Kaijia登录一台由OnApp驱动的Ubuntu VPS时发现系统里有些早前的内核可以删除,于是Kaijia用dpkg列出了所有旧内核,全部删除了并且执行了update-grub更新GRUB引导的menu.lstupdate-grub没有提示错误,更新完成之后重启服务器,结果Kaijia等了很长时间都无法连接SSH,登录到管理界面一看才发现是VPS无法成功启动了。

于是Kaijia尝试使用OnApp提供的Console,但是当VPS关闭时Console是不可用的。重复几次尝试启动系统失败后,Kaijia确认是由于内核无法载入导致GRUB失败,因此此时只能使用OnApp提供的Recovery Console尝试修复系统。搜索了一些资料后Kaijia找到了OnApp官方提供的使用文档,按照文章的提示成功修复了系统。

通过管理面板启动OnApp恢复模式

通过管理面板启动OnApp恢复模式

阅读更多

GitLab出现“The remote end hung up unexpectedly”问题解决

10/26/2013

考虑到iPlacard和Info Flow日益庞大以及今后开发的需要,今天Kaijia在自己的服务器上安装了GitLab以实现更好的团队开发。安装完成后一切运行正常,但是当Kaijia要把iPlacard的SVN导入到GitLab时却遇到了问题。

Kaijia首先通过git svn命令将原有的SVN库转换为Git本地库,然后尝试将本地的Git提交到GitLab,Kaijia使用的命令是:

但是Shell显示的结果却是:

error: RPC failed; result=22, HTTP code = 413
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Everything up-to-date

Kaijia看了一下GitLab这次提交没有显示出来,说明这次提交中断了。于是Kaijia搜索了一下,发现也有人报告遇到“fatal: The remote end hung up unexpectedly”错误,但是报告的错误一般都是通过SSH连接GitLab的情况,而Kaijia是通过HTTPS(禁用SSH避免安全隐患)的。最后Kaijia在GitLab的Issue Tracker上找到了一个错误报告成功解决了这个问题。

阅读更多

Zabbix Agent出现ZBX_TCP_READ() failed: [4] Interrupted system call问题解决

10/21/2013

Kaijia这几天开始使用Zabbix来监控服务器的性能。一开始监控的是几台主要的机子,一直用的很不错,于是将几台不重要的服务器也托进来。这时在有一台服务器上遇到了问题,按照之前相同的配置完成之后,Zabbix Server一直提示无法访问这台服务器上的Zabbix Agent(版本是为Ubuntu 12.04源中自带的1.8.11)。Kaijia查看了一下Zabbix Server的日志,找到了错误提示:

Get value from agent failed: ZBX_TCP_READ() failed: [4] Interrupted system call

Kaijia于是Google了一下,发现也有很多人遇到了这个错误,错误提示是连接被中断,但是网上的提问好像基本没有得到解决的。

阅读更多

Ubuntu系统更换Firefox桌面图标方法

08/10/2013

终于,在升级到Firefox 23.0之后,Kaijia的Unity启动栏中出现了第一个被“拍扁了”的图标——火狐。这个新Logo在Unity启动器上只能用惨不忍睹来评价了:

Unity启动器中Firefox新旧图标比较

Unity启动器中Firefox新旧图标比较

上一篇博文中Kaijia已经吐嘈过如何将Firefox降级到22.0版本了,但是不升级终究不是个好办法,并且Ubuntu没有提供Firefox 17.0 ESR(长期支持版本)的更新,所以升级到新版本的Firefox是不可避免的。于是Kaijia想到了一个办法,用旧版本的Firefox图标在Unity启动器中替换掉这个破坏整体感觉的新图标,这样就可以实现用的是Firefox 23.0但任务栏中显示的还是旧版的Firefox了。

阅读更多

较新文章
较旧文章
... 载入更多文章 ...

- 已经载入全部文章 -