linux做过哪些优化

linux做过哪些优化,第1张

⑴登录系统:不使用root登录,通过sudo授权管理,使用普通用户登录。
⑵禁止SSH远程:更改默认的远程连接SSH服务及禁止root远程连接。
⑶时间同步:定时自动更新服务器时间。
⑷配置yum更新源,从国内更新下载安装rpm包。
⑸关闭selinux及iptables(iptables工作场景如有wan ip,一般要打开,高并发除外)
⑹调整文件描述符数量,进程及文件的打开都会消耗文件描述符。
⑺定时自动清理/var/spool/clientmquene/目录垃圾文件,防止节点被占满(c64默认没有sendmail,因此可以不配。)
⑻精简开机启动服务(crond、sshd、network、rsyslog)
⑼Linux内核参数优化/etc/sysctlconf,执行sysct -p生效。
更改字符集,支持中文,但是还是建议使用英文,防止乱码问题出现。
⑾锁定关键系统文件(chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab 处理以上内容后,把chatter改名,就更安全了。)
⑿清空/etc/issue,去除系统及内核版本登陆前的屏幕显示。

首先要知道一点所有的TCP/IP的参数修改是临时的,因为它们都位于/PROC/SYS/NET目录下,如果想使参数长期保存,可以通过编辑/ETC/SYSCTLCONF文件来实现,这里不做详细说明,只针对Linux的TCPIP内核参数优化列举相关参数:

1、为自动调优定义socket使用的内存

2、默认的TCP数据接收窗口大小(字节)

3、最大的TCP数据接收窗口

4、默认的TCP发送窗口大小

5、最大的TCP数据发送窗口

6、在每个网络接口接收数据包的速率比内核处理这些包速率快时,允许送到队列的数据包最大数目

7、定义了系统中每一个端口最大的监听队列长度

8、探测消息未获得相应时,重发该消息的间隔时间

9、在认定tcp连接失效之前,最多发送多少个keepalive探测消息等。

相关优化参数代码:

sh#  netcorewmem_default 发送缓存区预留内存默认大小 默认值 16k#  netcorermem_default 接受缓存区预留内存默认大小 默认值 16k#  netcorewmem_max 发送缓存区预留内存最大值 默认值 128k#  netcorermem_max 接受缓存区预留内存最大值 默认值 128k#  netunixmax_dgram_qlen 进程间通信发送数据, 默认10#  netipv4tcp_syncookies#  netipv4syn_retries#  netipv4tcp_fin_timeout 如果socket连接由本端关闭,则保持在FIN-WAIT-2状态的时间#  netipv4tcp_keepalive_time 当keepalive起作用的时候,tcp发送keepalive消息的频度,默认2小时#  netipv4route_max_size 路由缓存最大值

浅谈linux性能调优之一:磁盘分区策略对于服务器而言,不管是windows系统,linux系统,分区情况影响系统性能磁盘分区之后再格式化成某一格式的系统文件,最后在存储用户或系统数据,数据所在分区容易读到数据则响应速度越快当然也有相反的情况,严重可出现数据饥饿
在这之前我们必须先了解磁盘的一些特性(影响I/O的物理因素):
1>
存储密度
(越靠外道存储密度越大),(转速相同,靠外数据读入较多)
-----存放用户数据
划分分区:在磁盘上划分一定范围内的扇区
格式化:在分区基础上,标识每个扇区
划分分区速度
>
格式化速度
注意:分区号越低越在外边
2>
总线速度远远低于kernel处理
3>
寻道时间(在不同磁道切换的时间)
在看一张磁盘结构图:
大家先了解扇区是从外围开始计数的,具体可以在网上找一些资料参考一下,默认分区都是从外围开始的,但是我们在使用时必须结合磁盘的物理属性和自己的需求来划分分区。原则:越是频繁访问的数据,存储在磁盘的最外侧。
实施1:安装rhel60时,无法指定起始扇区号,只能在划分分区时要不就先划分一些存储频繁访问的分区,剩下的给系统使用。
注意:分区编号低的给频繁访问的数据
实施2:要不就自己计算使用具体的柱面数,自己指定起始位置(这种情况下一定要做好记录)
一个柱面大概7M
下面给出一些建议:
1/,swap,/var,/home,/usr这种经常使用的分区首先要使用单独的分区
2第一个分区为swap
------
用于优化内存交换 *** 作
3例如/data为频繁访问的用户数据,可以作为第二个分区
4依次是/var/
------
日志记录,/usr/
------
系统库文件
5/,/boot靠里,一些配置文件相对而言很少读到,还有/boot分区中的一些文件也一样
当然要是有多个磁盘就更好了,直接将数据存储在性能好的磁盘上,也可以做成RAID加快访问速度

除了保证程序的正确性以外,在项目开发中往往还关心性能和稳定性。我们往往要对内核、应用程序或整个系统进行性能优化。在性能优化中常用的手段如下:

使用top、vmstat、iostat、sysctl等常用工具

top命令用于显示处理器的活动状况。在缺省情况下,显示占用CPU最多的任务,并且每隔5s做一次刷新;vmstat命令用于报告关于内核线程、虚拟内存、磁盘、陷阱和CPU活动的统计信息;iostat命令用于分析各个磁盘的传输闲忙状况;netstat是用来检测网络信息的工具; sar用于收集、报告或者保存系统活动信息,其中,sar用于显示数据,sar1和sar2用于收集和保存数据

sysctl是一个可用于改变正在运行中的Linux系统的接口。用sysctl 可以读取几白个以上的系统变量,如用sysctl—a可读取所有变量。

sysctl的实现原理是:所有的内核参数在/proc/sys中形成一个树状结构,sysctl系统调用的内核函数是sys_sysctl,匹配项目后,最后的读写在do_sysctl_strategy中完成。

2使用高级分析手段,如OProfile、gprof

OProfile可以帮助用户识别诸如模块的占用时间、循环的展开、高速缓存的使用率低、低效的类型转换和冗余 *** 作、错误预测转移等问题。它收集有关处理器事件的信息,其中包括TLB的故障、停机、存储器访问以及缓存命中和未命中的指令的攫取数量。OProfile支持两种采样方式:基于事件的采样(Event Based)和基于时间的采样(Time Based)。基于事件的采样是OProfile只记录特定事件(比如L2缓存未命中)的发生次数,当达到用户设定的定值时Oprofile就记录一下(采一个样)。这种方式需要CPU内部有性能计数器(Performace Counter))。基于时间的采样是OProfile借助OS时钟中断的机制,在每个时钟中断,OProfile都会记录一次(采一次样)。引入它的目的在于,提供对没有性能计数器的CPU的支持,其精度相对于基于事件的采样要低,因为要借助OS时钟中断的支持,对于禁用中断的代码,OProfile不能对其进行分析。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10295074.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-07
下一篇 2023-05-07

发表评论

登录后才能评论

评论列表(0条)

保存