前言
最近在一臺60個用戶的centos7上啓動vncserver,當啓動到第46個用戶的時候就會開始啓動失敗,而且系統也會開始卡頓。比如用su - user切換用戶時會卡很久。
尋找原因
我開始以爲是達到了系統的最大文件打開數,但是用cat /proc/sys/fs/file-nr命令查看是正常的,同時修改了/etc/security/limit.conf文件也無濟於事。
接下來查看了系統log文件,很快找到了癥結所在。
cat /var/log/messages
log文件中頻繁出現dbus服務的報錯,比如:
failed to connect to colord: GDBus.Error:org.freedesktop.DBus.Error.LimitsExceeded: The maximum number of active connections has been reached
journal: Error initializing udisks client: GDBus.Error:org.freedesktop.DBus.Error.LimitsExceeded: The maximum number of active connections has been reached (g-dbus-error-quark, 8)
那麼問題應該就在這了,從信息中我們可以看出故障原因應該是系統的dbus服務連接數達到了上限,只需把這個上限改高應該就能得到解決。
怎麼解決
嘗試修改dbus的配置文件/etc/dbus-1/system.conf
注意文件中所說的,我們應該在此路徑中去修改配置文件:/usr/share/dbus-1/system.d/*.conf
#若無則新建
vi /usr/share/dbus-1/system.d/system-local.conf
#寫入內容,修改max_completed_connections這一項:
<busconfig>
<limit name="max_completed_connections">100000</limit>
</busconfig>
修改完成後重啓系統,問題得到解決。