在 CentOS release 6.6 上啟動sendmail服務時發現服務啟動過程非常慢,基本上要耗費3分多鍾。有點納悶:什么原因導致sendmail啟動這么慢?搜索了這方面的一些資料,結合自己的理解,把它梳理一遍。權當筆記。
[root@MySQL-T01 bin]# service sendmail stop
Shutting down sm-client: [ OK ]
Shutting down sendmail: [ OK ]
[root@MySQL-T01 bin]# date
Wed Aug 5 09:11:00 UTC 2015
[root@MySQL-T01 bin]# service sendmail start
Starting sendmail: [ OK ]
Starting sm-client: [ OK ]
[root@MySQL-T01 bin]# date
Wed Aug 5 09:14:53 UTC 2015
如上所示,sendmail服務的啟動整整需要花費3分多鍾。因為Starting sendmail、Starting sm-client這兩步check需要查詢你設置的主機名的A記錄或反向域名記錄,由於全球9台DNS根系統都在美國,這個時候會去查詢本機主機名對應的dns A記錄。查詢可能會非常的慢.
通常的域名解析是指A記錄解析,即主機記錄解析,就是指把域名解析到虛擬主機的過程;又稱IP指向,用戶可以在此設置子域名並指向到自己的目標主機地址上,從而實現通過域名找到服務器。
解決方法
讓sendmial繞過查詢遠程主機,這里給出一種最簡單的方法,給主機設置一個別名。
/etc/hosts原始配置
[root@MySQL-T01 bin]# more /etc/hosts
10.20.251.45 MySQL-T01 localhost
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
/etc/hosts修改配置
[root@MySQL-T01 bin]# vi /etc/hosts
10.20.251.45 MySQL-T01 localhost
127.0.0.1 localhost localhost.localdomain MySQL-T01
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
"/etc/hosts" 3L, 170C written
修改完成后,關閉sendmail服務,啟動sendmail服務非常快,只要一兩秒的樣子。
[root@MySQL-T01 bin]# service sendmail stop
Shutting down sm-client: [ OK ]
Shutting down sendmail: [ OK ]
[root@MySQL-T01 bin]# service sendmail start
Starting sendmail: [ OK ]
Starting sm-client: [ OK ]
[root@MySQL-T01 bin]#
參考資料: