作为开发人员,除了编码基本功以外,对OS系统参数配置也需要具有一定的了解。
(随意试验有可能导致系统崩溃,后果自负!!!)
sysctl是比较常用的命令工具,尤其是系统优化时,用开修改系统级内核参数,【sysctl -a】可以查看当前的所有配置状况。
类似【cat /proc/sys/kernel/shmmax】的方法也是可以查看个别参数值的,同时也可以用
【echo 268435456 > /proc/sys/kernel/shmmax】以及【echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout】、
【sysctl -w net.ipv4.tcp_keepalive_time=1800】等方法临时调整参数,当然系统重启后有恢复了原来的配置。永久保存的话,可以修改【/etc/sysctl.conf】
主要涉及到,共享内存(Shared Memory),信号灯(Semaphore),消息队列(Message Queue),网络(TCP/IP),还有磁盘IO等等。
比如网络参数,常用的有net.ipv4.tcp_tw_reuse、net.ipv4.tcp_tw_recycle、net.core.wmem_max、net.core.rmem_max、net.ipv4.tcp_rmem、net.ipv4.tcp_wmem、timeout_timewait等。
系统目录【/etc/sysconfig/】下面有很多内容,允许使用者根据自己的实际需要进行自由定制。
还有就是ulimit(bash)和limit(csh),比如调整core文件的大小(配置不当,会导致程序因内存错误而down时core dump文件无法生成)等。
[root@host ~]# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 16255
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) unlimited
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 16255
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
[root@host ~]#
系统语言(LANG)的调整,可以修改【/etc/sysconfig/i18n】这个配置文件。
在开发的调试阶段,有时需要监视系统内存,CPU负荷的变化等等来检测自己程序,此时下面的系统工具会很有帮助的。
「iostat」「sar」「mpstat」「top」「uptime」「free」「pmap」「vmstat」「gprof」
远程登录时,涉及到一些安全配置,【/etc/hosts.allow】以及【/etc/hosts.deny】,
【/etc/group】的【wheel】,尤其是想允许root的情况下,还有
【/etc/security/access.conf】的【-:ALL EXCEPT admin developer:ALL】部分,
【/etc/ssh/sshd_config】的【PermitRootLogin】选项。
系统的认证授权相关的有【/etc/sysconfig/authconfig】、以及【/etc/pam.d】下面的【sshd】【passwd】【login】【nsswitch.conf】等。
当然,对于ssh来说,【/etc/ssh/sshd_config】的配置是必需的。
没有评论:
发表评论