Linux发行版本及常用国产系统+系统优化
Linux系统版本
应用
Redhat
Centos
Ubuntu
Debain
Suse
国产系统深度Linux(deepin).优麒麟(UbuntuKylin).中标麒麟(NeoKylin);(银河麒麟与中标普华已在2010年12月16日宣布合并品牌)中兴新支点操作系统红旗 linux(redflag linux)AliOS(阿里云系统)(原Yun OS)UOS(统信操作系统硬件
Linux优化
Linux系统优化的12个步骤
⑴登录系统:不使用root登录,通过sudo授权管理,使用普通用户登录。
⑵禁止SSH远程:更改默认的远程连接SSH服务及禁止root远程连接。
⑶时间同步:定时自动更新服务器时间。
⑷配置yum更新源,从国内更新下载安装rpm包。
⑸关闭selinux及iptables(iptables工作场景如有wan ip,一般要打开,高并发除外)
⑹调整文件描述符数量,进程及文件的打开都会消耗文件描述符。
| https://blog.csdn.net/CSDNYXJY/article/details/115803438
⑺定时自动清理/var/spool/clientmquene/目录垃圾文件,防止节点被占满(c6.4默认没有sendmail,因此可以不配。)
| linux操作系统中的/var/spool/clientmqueue/目录下存在大量文件。
| 原因分析:
| 系统中有用户开启了cron,而cron中执行的程序有输出内容,输出内容会以邮件形式发给cron的用户,而sendmail没有启动所以就产生了这些文件;
|
⑻精简开机启动服务(crond、sshd、network、rsyslog)
| 和Windows系统一样,在linux服务器运行过程中,会有很多无用的软件默认就在运行,这些服务占用了很多系统资源,而且也带来了安全隐患,因此要关闭掉。那么,企业生产场景的linux主机到底需要保留哪些开机启动的服务呢?
| 1)重要的开机自启动服务
| 企业环境新装Linux系统之后有必要保留的开机自启动服务有五个,具体如下。
| sshd
| 远程连接Linux服务器时需要用到这个服务程序,所以必须要开启。
| rsyslog
| 日志相关软件,这是操作系统提供的一种机制,系统的守护程序通常会使用rsyslog程序将各种信息写到各个系统日志文件中,Centos6以前此服务的名字为syslog。
| network
| 系统启动时,若想激活/关闭各个网络接口,则应(必须)考虑开启。
| crond
| 该服务用于周期性地执行系统及用户配置的任务计划。有要周期性执行任务时,就要开启,此服务几乎是生产场景必须要用的一个软件。
| sysstat
| sysstat是一个软件包,包含监测系统性能及效率的一组工具,这些工具对于我们收集系统性能数据很有帮助,比如CPU使用率、硬盘和网络吞吐数据等,对这些数据的收集和分析,有利于判断系统运行是否正常,所以它是提高系统运行效率、安全运行服务器的得力助手。
| 2)设置开机自启动服务的常见方法
| 1.执行命令,然后手动选择处理的方法
| 方法1:执行ntsysv命令然后弹出的窗口中进行设置。
|
⑼Linux内核参数优化/etc/sysctl.conf(内核配置文件),执行sysct -p生效。
⑼更改字符集,支持中文,但是还是建议使用英文,防止乱码问题出现。
⑾锁定关键系统文件(chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab 处理以上内容后,把chatter改名,就更安全了。)
| https://blog.csdn.net/CSDNYXJY/article/details/115803783?spm=1001.2014.3001.5501
⑿清空/etc/issue,去除系统及内核版本登陆前的屏幕显示。
| /etc/issue 和/etc/issue.NET都是是Linux终端登录的欢迎语句存储文件
1、系统优化1.1当主机安装 Linux系统时,磁盘的划分、交换分区内存的分配都直接影响之后系统的运行性能。磁盘分配可以遵循应用的需求| 1.对于写操作频繁而对数据安全性要求不高的应用,可以把磁盘做成 RAID0;| 2.而对于对数据安全性较高而对读写没有特别要求的应用,可以把磁盘做成RAID1;| 3.对于对读操作要求较高,而对写操作无特殊要求,并要保证数据安全性的应用,可以选择 RAID5;| 4.对于对读写要求都很高并且对数据安全性要求也很高的应用,可以选择 RAID0+1。| 交换分区内存随着内存价格的降低和内存容量的日益增大,对虚拟内存交换分区的设定,现在已经没有了所谓虚拟内存是物理内存两倍的要求,但是交换分区的设定还是不能忽略| 如果内存较小,物理内存小于4GB,一般设置交换分区交换分区大小为内存的2倍,如果物理内存大于8GB小于166B,可以设置交换分区大小等于或小于物理内存即可,如果内存大小在16GB以上,原则上可以设置交换分区为0,但并不建议这么做,因为设置一定大小的交换分区还是有一定作用的。Linux系统实现虚拟内存有两种方法:交换分区(swap分区)和交换文件采用交换分区的办法其实就是新建一个分区,然后将该分区挂载作为交换空间,方法步骤与传统的新建分区一样。只不过格式化分区和挂载分区分别采用mkswap和swapon命令1.2文件系统优化主机文件系统优化也是系统资源优化的一个重点,在 Linux系统下可选的文件系统有ext2、ext3、 Reisers、ext4、XFS。根据不同的应用,选择不同的文件系统。2、内核优化默认参数情况下Linux对高并发支持并不好,主要受限于单进程最大打开文件数限制、内核TCP参数方面和IO事件分配机制等优化项1. Iptables相关如非必须,关掉或卸载iptables防火墙,并阻止kernel加载iptables模块。这些模块会影响并发性能。2. 单进程最大打开文件数限制3. 内核TCP参数方面TIME_WAIT状态保留| Linux系统下,TCP连接断开后,会以TIME_WAIT状态保留一定的时间,然后才会释放端口。当并发请求过多的时候,就会产生大量的TIME_WAIT状态的连接,无法及时断开的话,会占用大量的端口资源和服务器资源。这个时候我们可以优化TCP的内核参数,来及时将TIME_WAIT状态的端口清理掉可以使用netstat命令去查TIME_WAIT状态的连接状态,输入下面的组合命令内核其他TCP参数说明| net.ipv4.tcp_max_syn_backlog= 65536 #记录的那些尚未收到客户端确认信息的连接请求的最大值。对于有128M内存的系统而言,缺省值是1024,小内存的系统则是128。net.core.netdev_max_backlog= 32768 #每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。| net.core.somaxconn= 32768 #例如web应用中listen函数的backlog默认会给我们内核参数的net.core.somaxconn限制到128,而nginx定义的NGX_LISTEN_BACKLOG默认为511,所以有必要调整这个值。| net.core.wmem_default= 8388608| net.core.rmem_default= 8388608| net.core.rmem_max= 16777216 #最大socket读buffer,可参考的优化值:873200| net.core.wmem_max= 16777216 #最大socket写buffer,可参考的优化值:873200| net.ipv4.tcp_timestsmps= 0 #时间戳可以避免序列号的卷绕。一个1Gbps的链路肯定会遇到以前用过的序列号。时间戳能够让内核接受这种“异常”的数据包。这里需要将其关掉。net.ipv4.tcp_synack_retries= 2 #为了打开对端的连接,内核需要发送一个SYN并附带一个回应前面一个SYN的ACK。也就是所谓三次握手中的第二次握手。这个设置决定了内核放弃连接之前发送SYN+ACK包的数量。| net.ipv4.tcp_syn_retries= 2 #在内核放弃建立连接之前发送SYN包的数量。| #net.ipv4.tcp_tw_len= 1| net.ipv4.tcp_tw_reuse= 1 #开启重用。允许将TIME-WAITsockets重新用于新的TCP连接。net.ipv4.tcp_wmem= 8192 436600 873200 #TCP写buffer,可参考的优化值:8192 436600 873200net.ipv4.tcp_rmem = 32768 436600 873200 #TCP读buffer,可参考的优化值:32768 436600 8732004、IO事件分配机制同步I/O,非阻塞式同步I/O,以及异步I/O| 在Linux启用高并发TCP连接,必须确认应用程序是否使用了合适的网络I/O技术和I/O事件分派机制。可用的I/O技术有同步I/O,非阻塞式同步I/O,以及异步I/O。在高TCP并发的情形下,如果使用同步I/O,这会严重阻塞程序的运转,除非为每个TCP连接的I/O创建一个线程。但是,过多的线程又会因系统对线程的调度造成巨大开销。| | 因此,在高TCP并发的情形下使用同步I/O是不可取的,这时可以考虑使用非阻塞式同步I/O或异步I/O。非阻塞式同步I/O的技术包括使用select(),poll(),epoll等机制。异步I/O的技术就是使用AIO。| 从I/O事件分派机制来看,使用select()是不合适的,因为它所支持的并发连接数有限(通常在1024个以内)。如果考虑性能,poll()也是不合适的,尽管它可以支持的较高的TCP并发数,但是由于其采用“轮询”机制,当并发数较高时,其运行效率相当低,并可能存在I/O事件分派不均,导致部分TCP连接上的I/O出现“饥饿”现象。| | 而如果使用epoll或AIO,则没有上述问题(早期Linux内核的AIO技术实现是通过在内核中为每个I/O请求创建一个线程来实现的,这种实现机制在高并发TCP连接的情形下使用其实也有严重的性能问题。但在最新的Linux内核中,AIO的实现已经得到改进)。| | 综上所述,在开发支持高并发TCP连接的Linux应用程序时,应尽量使用epoll或AIO技术来实现并发的TCP连接上的I/O控制,这将为提升程序对高并发TCP连接的支持提供有效的I/O保证。|
系统命令
pidstat
用于监控全部或指定进程的cpu、内存、线程、设备IO等系统资源的占用情况。
| pidstat是sysstat工具的一个命令,
pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息
iostatiostat可以提供更丰富的IO性能状态数据| iostat 主要用于输出磁盘IO 和 CPU的统计信息。| iostat属于sysstat软件包。可以用yum install sysstat 直接安装。| iftopiftop是类似于top的实时流量监控工具。官方网站:http://www.ex-parrot.com/~pdw/iftop/iftop可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等AddressSanitizerAddressSanitizer(ASan)是一个快速的内存错误检测工具| 也许很多人都听说过类似这样的一个故事:某公司的服务器每隔3个月就会毫无预兆的崩溃一次,怎么也查不出原因,为了避免崩溃可能引发的问题,只得每2个月手动重启一次服务器。在这类有些灵异的事件背后,以内存泄露为代表的一系列内存错误往往就是那个幕后黑手。| | 在计算机科学中,内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费。| | 内存泄漏会导致可用内存的数量减少从而降低计算机的性能。过多的可用内存被分配掉会导致全部或部分设备停止正常工作,或者应用程序崩溃。| | 其他的内存错误还包括缓冲区溢出、越界访问等,此类错误轻则导致程序计算错误,重则引起程序崩溃,在内存紧张的嵌入式系统中尤为致命,Google旗下的开源工具AddressSanitizer可以帮助我们检测此类错误。|
Linux发行版本及常用国产系统+系统优化相关推荐
- 开发用什么linux系统版本,6种适用于开发人员的Linux发行版本!
Linux是非常流行的操作系统,也是非常适用于开发人员和程序员的平台,众所周知,Linux有很多发行版本,所针对的人群也是不同的,那么哪些Linux发行版本适用于开发人员呢?我们来看看吧. 1.Fed ...
- linux发行版本Ubuntu安装,显卡驱动安装以及软件安装卸载
linux发行版本Ubuntu安装,显卡驱动安装以及软件安装卸载 1 暗影精灵6安装Ubuntu 1.1 更新系统 1.2卸载原有驱动 1.3安装nvidia显卡驱动 1.4 查看nvidia显卡信息 ...
- Linux发行版本详解
新手往往会被 Linux 众多的发行版本搞得一头雾水,我们首先来解释一下这个问题. 从技术上来说,李纳斯•托瓦兹开发的 Linux 只是一个内核.内核指的是一个提供设备驱动.文件系统.进程管理.网络通 ...
- 【Linux】Linux发行版本的简介与选择
文章目录 一.Linux发行版本是什么意思? 1. Linux内核与Linux发行版本 2. 不同发行版本的共同点和不同点 二.常见的Linux发行版本 1. Red Hat Linux 2. Ubu ...
- Everest——Linux发行版本
前一段时间想看看国内都有哪些Linux发行版本,结果就发现并安装了Everest,不过这回是实机安装的. 据了解RedFlag也是以此发行版本为基础的Linux系统,Everest的默认桌面环境是KD ...
- 常见Linux发行版本有哪些?
http://c.biancheng.net/view/710.html 新手往往会被 Linux 众多的发行版本搞得一头雾水,我们首先来解释一下这个问题. 从技术上来说,李纳斯•托瓦兹开发的 Lin ...
- Linux教程——常见Linux发行版本有哪些?
新手往往会被 Linux 众多的发行版本搞得一头雾水,我们首先来解释一下这个问题. 从技术上来说,李纳斯•托瓦兹开发的 Linux 只是一个内核.内核指的是一个提供设备驱动.文件系统.进程管理.网络通 ...
- 什么是Linux发行版?常见Linux发行版本有哪些?
文章目录 1) Red Hat Linux 2) Ubuntu Linux 3) SuSE Linux 4)Arch 5)Mint Linux 发行版本的选择 从技术上来说,李纳斯•托瓦兹开发的 Li ...
- 小巧Linux发行版本,老机器也不愁
[日期:2011-07-29] 前不久,IBM在其广告中声称"Linux is everywhere".但是一个windows小伙子不承认,『至于你们信不信,反正我是信的.』任何一 ...
最新文章
- CentOS7下python虚拟环境
- 004_strace工具
- C++类模板特化全总结
- 图片加马(一句话木马)
- Android串口通信实例分析【附源码】
- 作者:李茹姣(1976-),女,博士,中国科学院北京基因组研究所生命与健康大数据中心高级工程师...
- 请求失败或服务器为及时响应,SQLServer(MSSQLSERVER)请求失败或服务未及时响应,有关详细信息,请参见事件日志或其他的适用的错误日志。...
- PHP学习总结(12)——PHP入门篇之变量
- java中example函数作用,MyBatis逆向工程中的Mapper接口以及Example的实例函数及详解...
- vue 音乐播放器之歌词解析和滚动(js源码)
- apk逆向出来只有几百k的java_Android逆向之路---改apk包名、达到多开效果
- 对数的matlab代码,Matlab的对数
- 常用Linux命令行技巧
- xmind新手入门教程,xmind怎么用?
- 解决:whm搬站出现的mysql error message:Can't find any matching row in the user table
- 怎么下载网页上的视频(you-get)
- onscroll在移动端的使用
- 7牛-qshel的一些使用
- 初尝微信小程序2-Swiper组件、导航栏标题配置
- 调试WebService的一个很好的工具
热门文章
- vc2010串口通信(使用mscomm控件)
- 软件开发经验总结(容错性)
- 问卷中多选题该怎么分析?
- 使用python爬取图书封面
- 三国杀 中的概率计算 几何分布的期望和方差分析
- ZUCC_Object Oriented Programming_Lab01 Introduction to Java
- 镭速(Raysync)文件传输高可用安装部署介绍!
- Taro下拉刷新,上拉加载更多
- ruby gem 安装mysql2_如何在不安装 mysql 数据库的情况下安装 mysql2gem 包
- caffe常用层:特殊的Math函数