登录窗口里选择会话的地方,一直有两个Xfce Session,登录后似乎略有不同。其实是在/usr/share/xsessions目录有一个符号链接default.desktop指向了xfce.desktop,删掉它后就可以了,也不影响什么。
找回消失的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状态,直到耗尽所有的网络资源,没法再建立连接了。
从这个教训看出,项目的研发管理真是没有到位啊!快速反复的需求、几乎可以忽略的设计、缺少代码走查、没有单元测试,怎能保证上线前发现这样的问题!
Services not starting on boot
前一段时间笔记本升级到Ubuntu 9.10后遇到了系统服务没有启动的问题,后来得知是upstart的一个bug。具体情况看看我在ServerFault回答的同样问题吧。
遭遇”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