解開CentOs 利用systemd 起service 的 ulimit 資源限制
1 min readMay 17, 2020
最近在公司利用Airflow 起Spark Job 時,出現 too many open file
的 error。心中第一個直覺就是設定在執行job的service account的ulimit nofile
# /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
結果發現Spark Job的 ulimit -n
的值仍然是1024,看來還有其他的設定限制住了。後來想到會不會是systemd 的自身限制,便下了
$ systemctl show <your_service_name>
查詢service 的設定,發現上面果然有一個NOFILE的設定,而且正好是值是1024!
有了方向,解決問題就簡單多了,只須要在起 Airflow 的 service file 加上下面的設定
[Service]
LimitNOFILE=65536
就解決了,Spark Job 就再也沒有出現 too many open file
的Error了。
如果你喜歡這篇文章,
或是覺得這篇文章對你有幫助,
可以給我一些掌聲做為鼓勵 :)