美文网首页运维
基础运维之linux系统初始化

基础运维之linux系统初始化

作者: 上帝是自由的 | 来源:发表于2017-05-02 23:24 被阅读0次

    基础运维之linux系统初始化


    不管是在bat工作还是在初创公司工作,服务器操作系统的标准化可以说是非常重要的一环,就像盖房子的打桩一样。

    **
    标准化的系统必须要满足:
    **

    • 稳定
    • 适用性强
    • 性能

    其实满足这三点的操作系统有很多,像ubuntu centos redhat debain 等等都很不错; 而目前看来市场占有率ubuntu和centos平分秋色,不相上下;故,今天我就用ubuntu来做标准化系统。

    1)选择系统;

    系统选择的必要条件是公司的大部分人都比较熟悉这个系统,不能盲目的根据个人喜欢来决定;
    首先是研发部门和测试部门看他们对于哪个系统更熟悉一些,其次是运维人员熟悉哪些,正常情况下运维人员对于多个操作系统都应该能够适应,至少可以做到快速学习;
    选择完系统后需要对版本进行选择,应以最简化的操作系统做为标准系统,当然也可以DIY裁剪系统。

    ubuntu-14.04.5-server-amd64.iso

    2)安装标准

    **
    在安装前需要确定以下内容:
    **

    • hostname

    #用来标识主机所在位置,运行的服务;
    举例:sh-web1 这是比较简单的命名方式,也有比较复杂的:sh-jinqiao-lab-project1-web01

    • ip address

    #大公司网络这块管理的比较严格,一般需要跟网络部门或IT部门申请ip地址,小公司的话可能就运维自己规划了;

    • 系统语言选择:english 极少数选择中文
    • 时区选择: 国内一般都是beijingshanghai
    • 文件系统: ext4 xfs 需要根据业务的类型来选择,主要是读写的密集度,是否存储大文件等等;
    • 分区标准: 一般大都会将所有的空间分配给/根目录,也有将大部分空间分配给/home目录的,其实主要是从两个方面考虑:数据安全,效率;

    *1.数据安全: 主要方面:只用一个分区,若遇到系统需要重装或者分区需要进行格式化等,原有的重要文件无法在本硬盘保留,而若提前进行了合理分区,则用户数据不会收到影响 次要方面,我们知道,同等外部条件下,读取越频繁,磁盘越容易受损,我们把读写频繁的目录挂载到一个单独的分区,可以把磁盘的损伤控制在一个集中的区域。
    2.效率: 主要方面:分区将数据集中在某个磁柱的区段,当有数据要读取自该分区时, 硬盘只会搜寻相应区段,有助于数据读取的速度与效能的提升!另一方面,磁盘不同区域(内圈与外圈,)的读取速度是不同的,磁盘越大,差别越明显,通常将读写频繁的目录挂载到读取速度更快的区域(总体来说,是推荐外圈),不常使用和变更的数据放在稍慢的区域将是一个比较好的选择

    • 需要安装的默认系统服务:例如ssh iptables samba email等等

    3)安装后系统优化

    • 配置时间同步
      ntpdate 0.pool.ntp.org && hwclock -w #这真是其中一种方法;

    • history历史记录数调整

      export HISTSIZE=10000
      export HISTTIMEFORMAT="%F %T `whoami`" 
      

      #将这两行加入到/etc/profile文件中,并重新加载:source /etc/profile

    • 文件描述符

      • tcp最大连接数
        大多数人将65535理解为系统的最大连接数,这样理解不够准确,准确的来说应该是client系统的最大tcp连接数为6w多,也就是说一台client就可以跟server系统产生6w多并发连接;所以大家可以理解成服务器端的tcp连接是一个无限大的数,因为clinet有n多个(tcp最大连接数理论值是2的48次方)。

      • 文件描述符
        Linux内核本身有文件描述符最大值的限制,你可以根据需要更改:
        系统最大打开文件描述符数:cat /proc/sys/fs/file-max
        临时性设置:echo 1000000 > /proc/sys/fs/file-max
        永久设置:修改/etc/sysctl.conf文件,增加fs.file-max = 1000000
        进程最大打开文件描述符数:ulimit -n
        使用ulimit -n查看当前设置。使用ulimit -n 1000000进行临时性设置。
        要想永久生效,你可以修改/etc/security/limits.conf文件,增加下面的行:

     * hard nofile 1000000
     * soft nofile 1000000
    root hard nofile 1000000
    root soft nofile 1000000
    

    还有一点要注意的就是hard limit不能大于/proc/sys/fs/nr_open,因此有时你也需要修改nr_open的值;
    echo 2000000 > /proc/sys/fs/nr_open
    查看当前系统使用的打开文件描述符数,可以使用下面的命令:
    cat /proc/sys/fs/file-nr

    #详细的内容可以参考这篇博文http://www.cnblogs.com/zengkefu/p/5602473.html

    • 内核参数优化(网络方面)
    net.ipv4.ip_forward = 0
    net.ipv4.conf.default.rp_filter = 1
    net.ipv4.conf.default.accept_source_route = 0
    kernel.sysrq = 0
    kernel.core_uses_pid = 1
    net.ipv4.tcp_syncookies = 1
    kernel.msgmnb = 65536
    kernel.msgmax = 65536
    kernel.shmmax = 68719476736
    kernel.shmall = 4294967296
    net.ipv4.tcp_max_tw_buckets = 6000
    net.ipv4.tcp_sack = 1
    net.ipv4.tcp_window_scaling = 1
    net.ipv4.tcp_rmem = 4096        87380   4194304
    net.ipv4.tcp_wmem = 4096        16384   4194304
    net.core.wmem_default = 8388608
    net.core.rmem_default = 8388608
    net.core.rmem_max = 16777216
    net.core.wmem_max = 16777216
    net.core.netdev_max_backlog = 262144
    net.core.somaxconn = 262144
    net.ipv4.tcp_max_orphans = 3276800
    net.ipv4.tcp_max_syn_backlog = 262144
    net.ipv4.tcp_timestamps = 0
    net.ipv4.tcp_synack_retries = 1
    net.ipv4.tcp_syn_retries = 1
    net.ipv4.tcp_tw_recycle = 1
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_mem = 94500000 915000000 927000000
    net.ipv4.tcp_fin_timeout = 1
    net.ipv4.tcp_keepalive_time = 30
    net.ipv4.ip_local_port_range = 1024    65000
    

    #将这些内容加入/etc/systyl 中并执行sys -p至于每个参数的具体意义和效果大家自行百度吧;
    除了网络方面的内核优化,深入一点还有io的优化,但这块属于鸡肋的优化,除非是一些大数据的系统对磁盘读写要求特别高。

    • 锁定系统文件:
      chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab

    #防止程序或者人为误操作导致系统文件被修改。

    • selinux 和 防火墙是否关闭

    #这块根据实际需求来修改配置文件。

    本文只整理了大体的思路和重点内容,一些细节内容在文中没有体现出来,大家借助搜索引擎自行补充吧^_^


    [_]:注释

    • 安装系统,如果使用kickstart来部署的话可以通过修改配置文件来实现自动化安装系统;
    • 安装后的系统优化,也可以shell脚本来实现;

    -萧瑟

    相关文章

      网友评论

        本文标题:基础运维之linux系统初始化

        本文链接:https://www.haomeiwen.com/subject/aqghtxtx.html