找回消失的Notification Area(Xubuntu)

美化桌面的时候会遇到通知区域(Notification Area)Applet不见了的情况,试图再加一个到面板上也会报类似“通知区域已经存在”的错误。

解决办法是检查~/.config/xfce4/panel目录下有没有名字以systray开头的文件,删掉这些文件。
rm ~/.config/xfce4/panel/systray*
再编辑~/.config/xfce4/panel/panels.xml这个文件,如果有一行包含systray的,也删掉。

再次登入后,重新添加通知区域到面板就可以了。

再次遭遇大量CLOSE_WAIT

今天下午线上的Jetty服务又停止响应了。不过与上次不同的是,日志里没有Too many open files的问题(看来ulimit设置管用了),看不出任何问题。于是用netstat检查网络连接,发现了大量CLOSE_WAIT状态的连接,而且都是连接到同一个IP地址。联想到程序里有调用外部网站服务的部分,检查这个IP,正是其中的一个服务。检查代码,发现开发人员使用Commons HttpClient时出了问题,居然忘记关闭连接了(method.releaseConnection();)!!后果就是对方关闭了连接,连接不断地变成CLOSE_WAIT状态,直到耗尽所有的网络资源,没法再建立连接了。

从这个教训看出,项目的研发管理真是没有到位啊!快速反复的需求、几乎可以忽略的设计、缺少代码走查、没有单元测试,怎能保证上线前发现这样的问题!

遭遇”java.io.IOException: Too many open files”

今天下午,线上的Jetty服务宕机了,日志里大量的"java.io.IOException: Too many open files"错误。搜索到Freddy Chu的博客里正好有关于此的解决办法。

$ sysctl fs.file-max
$ lsof -u jetty -nn | wc -l
$ ulimit -a
$ sudo vi /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535

同时发现了系统里也有Freddy Chu提到的"Too many CLOSE_WAIT"问题,谢谢Freddy Chu。

$ sudo vi /etc/sysctl.conf
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_intvl = 2
net.ipv4.tcp_keepalive_probes = 2
net.ipv4.tcp_keepalive_time = 1800

$ sudo sysctl -p

Update(2010-01-21): root用户要特殊设置

$ sudo vi /etc/security/limits.conf
root soft nofile 65535
root hard nofile 65535

恢复Blogging

这两天又开始写些技术的东西了。

重新整理了以前的分类,发现08、09两年只写了可怜的几篇,也远离了Maemo世界。

如果腰椎恢复了,希望能重回Maemo世界,向Evan学习,能参与中文输入就更好了 :)