Linux 上的 OOM 杀手时常对各种应用程序造成严重破坏,而且似乎在内核开发方面并没有真正做很多事情来改进这一点。作为设置新服务器时的最佳实践,在内存过量使用时反转默认设置,即关闭它 ( vm.overcommit_memory=2) ,除非您知道需要将其打开以用于特定用途,这不是更好吗?这些用例是什么,你知道你想要过度使用?
作为奖励,由于情况下的行为vm.overcommit_memory=2取决于vm.overcommit_ratio和交换空间,因此调整后两者的大小以便整个设置保持合理工作的良好经验法则是什么?
我所知道的关于它们的差异是varchar有限的,而text不是有限的。该文件没有提及这一点。
这真的是唯一的区别吗?不考虑性能等?
如何设置它以便对于su当前登录的同一用户,即
foo$ su -c 'something' foo
Run Code Online (Sandbox Code Playgroud)
不需要密码?这不会添加或删除任何安全性,因为它应该是一个 noop。
想要这个的原因是我希望有一类“低于”root 的用户可以管理在该用户下运行的机器上的某些特定服务,例如,news或者mysql(检查他们的数据,更改配置,重新启动等.) 这些用户将获得sudo该帐户的权限,并且通常运行良好,除了在某些情况下 init 脚本调用
su -c 'start_daemon ...' daemonuser
Run Code Online (Sandbox Code Playgroud)
这使这个计划落空。当然,我可以更改 init 脚本或添加额外的sudo权限,但我想避免此类异常,因为从长远来看,它们是一团糟。
的配置su在 PAM 中,所以正确的魔法可能就在那里。