1.页类型: 1)不能释放的页:加锁的页,内核页,保留的页 2)可交换的页:匿名内存页 3)同步的页:有对应磁盘文件的页 4)可废弃的页:static pages 2.PFRA主要由两种机制: 1)kswaped内核线程 2)pdflush内核线程 3.kswapd kswapd守护线程的功能是保证有足够多的空闲内存可用。 6.实例: 通过下面的分析可以得出结论:io应用突然上涨,大量使用虚拟内存 1)大量的磁盘块映射到page(bi) 2)空闲内存(free)维持在17M 3)为了保持
一、最小化原则 (1)安装最小化 (2)开机启动服务最小化 (3)操作最小化 (4)权限最小化 (5)配置参数合理,不要最大化 二、端口优化 远程登录的端口默认是22号端口,这是大家都知道的。 所以为了安全着想,我们要修改服务器远程连接端口,这样黑客就不好破解你的linux服务器。同时,默认登录的用户名为root,我们可以修改配置,使远程不能使用root登录。 root@cai ~]# cat /dev/null 锁定关键文件系统: [root@cai ~]# chattr +i /etc/passwd /etc/gshadow /etc/inittab 七、linux 优化总结 1)不用root,添加普通用户,通过sudo授权管理(visudo) 2)更改默认的远程连接ssh端口及静止root远程登录 3)定时更新服务器时间 4)配置yum更新源,从国内更新源下载安装 系统安装包安装方式 以安装apache为例 1)源码编译安装apache:比较灵活,只编译你想要的参数(中小公司常用) 2)yum或rpm安装:简单,但是不够灵活 3)高级安装结合了编译和yum、
凸集和凸函数 SOCP Guideline
文章目录 影响Linux性能的因素 CPU 内存 磁盘I/O性能 网络宽带 操作系统相关资源 系统安装优化 内核参数优化 文件系统优化 应用程序软件资源 系统性能分析工具 vmstat命令 iostat ---- 操作系统相关资源 系统安装优化 系统优化可以从安装操作系统开始。当安装Linux系统时,磁盘的划分、交换分区内存的分配都直接影响以后系统的运行性能. 内核参数优化 系统安装完成后,优化工作并没有结束。接下来。还可以对系统内核参数进行优化。不过,内核参数的优化要和系统中部署的应用结合起来整体考虑。 等网络内核参数 ---- 文件系统优化 在Linux下可选的文件系统有ext2、ext3、ReiserFS、ext4、XFS。 所以,对应用程序的优化是性能优化过程的重中之重。 ---- 系统性能分析工具 如何从系统上发现是某个方面或某几个方面出现问题了呢?这就需要使用Linux系统提供的几个常用性能分析工具。
一、优化内核相关参数⚙️内存管理参数vm.swappiness:控制系统使用swap的倾向,默认60。若内存充足可调低至10,减少swap依赖。 -应用场景-高并发Web服务、数据库、消息队列等场景需显著提高这些限制##三、磁盘调度策略Linux支持多种I/O调度器,不同场景选择不同策略:-noop-简单FIFO队列,不做排序,适合SSD等无需优化寻道的设备 -mq-deadline/kyber(现代内核)-针对多队列设备优化,适合NVMeSSD和高并发场景。 /bin/bashLinux性能优化一键脚本set-eecho">>>开始Linux性能优化..."一、优化内核参数echo">>>优化内核参数..." ```总结内核参数优化→控制内存/网络行为,减少瓶颈。资源限制提升→保证高并发应用不因系统默认限制崩溃。磁盘调度策略→根据硬件特性选择最优算法,提升I/O性能。
性能优化 性能指标 高并发和响应快对应着性能优化的两个核心指标:吞吐和延时 应用负载角度:直接影响了产品终端的用户体验 系统资源角度:资源使用率、饱和度等 性能问题的本质就是系统资源已经到达瓶颈,但请求的处理还不够快 下面是常用的Linux Performance Tools以及对应分析的性能问题类型。 然后定位到具体代码位置进行优化即可。 僵尸进程 上述优化后iowait显著下降,但是僵尸进程数量仍旧在增加。 上下文切换本身是保证Linux正常运行的一项核心功能. 如果是软中断导致用/proc/softirqs CPU优化 应用程序优化 编译器优化: 编译阶段开启优化选项, 如gcc -O2 算法优化 异步处理: 避免程序因为等待某个资源而一直阻塞,提升程序的并发处理能力
三次握手: syn seq=x syn seq=y ack=x+1 ack=y+1 四次挥手: seq=x+2 ack=y+1 ack=x+3 seq=y+1 ack=y+2 调整文件打开数 hard noproc 65535 soft nofile 65535 hard nofile 65535 **生产环境内核参数调整:/etc/sysct.conf 解释 LINUX 简单抗D LINUX性能评估 vmstat 2 10 sar -u 2 10 CPU性能 free -m 性能指标 iostat -d 1 10 磁盘IO性能 sar -d 1 10
sshd_config PermitRootLogin no 增加sudoer组 /etc/sudoers %sysadm ALL=(ALL) NOPASSWD: ALL 优化系统内核参数 net.ipv4.tcp_keepalive_time = 1200 net.ipv4.tcp_keepalive_intvl = 30 net.ipv4.tcp_keepalive_probes = 3 kernel.shmmni = 4096 kernel.msgmnb = 65536 kernel.msgmax = 8192 kernel.perf_event_paranoid = 2 sysctl -p 优化程序运行参数 nofile 65535 /etc/security/limits.d/20-nproc.conf soft nproc 65536 root soft nproc unlimited 优化
1.1 查看Linux版本 1.1.1 系统版本 [root@znix ~]# cat /etc/redhat-release CentOS release 6.9 (Final) 1.1.2 内核版本 [root@znix ~]# chkconfig|grep "ipta" iptables 0:off 1:off 2:on 3:on 4:on [root@znix ~]# chkconfig|grep "ipta" iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off 1.7 显示乱码解决 1.7.1 查看linux系统字符集 [root@znix ~]# echo $LANG en_US.UTF-8 1.7.2 查看远程软件的字符集 连接软件的字符集是否与系统的一致 1.7.3 乱码解决办法 1) linux系统字符集修改 a) 使用export 对变量进行修改 [root@znix ~]# export LANG=en_US.utf8
刚安装好系统之后,如何对服务器进行基础优化: 1、关闭SElinux SElinux是美国国家安全局NSA对于强制访问控制的实现 [root@xinsz08-64 ~]# setenforce 0 ,存在安全隐患,关闭这些没用的服务 1) sshd 远程连接服务,需要开启,要不然无法连接linux。 2) rsyslog 是操作系统中提供的一种机制,系统的守护程序通常会使用rsyslog 将各种信息写到系统日志文件中, 3) . network 系统启动时,若想关闭或者激活各个网络接口,就必须启动该服务 这些工具对于收集系统的性能数据很有帮助:核心工具包: iostat : cpu使用率及硬盘吞吐效率工具 mpstat:提供单个或者多个处理器的数据 sar 负责收集,报告并存储系统活跃的信息 3、关闭防火墙 2) 操作系统命令最小化 登录linux用户量最小化,不要使用root,使用普通用户即可 4) 普通授权最小化,即只给必须的管理系统的命令 5)linux系统文件及目录权限设置最小化,禁止随便修改,更改
3、完美解决CentOS8 yum安装AppStream报错,更新yum后无法makecache的问题 $ yum -y install httpd mariadb-server mariadb php package-cleanup --dupes 清理损坏的包:package-cleanup --problems 清理重复的包:package-cleanup --cleandupes error 3:
概述 在Linux 学习笔记一大体介绍了一些简单的Linux知识和一些简单的优化。 下面我们来学习一下Linux和Linux一些安全知识(Linux是基于内核为2.6.32-642 CentOS x86_64操作系统)。 #只需要查找3级别以上的服务是否开启,3代表运行级别的中的数字。 内核优化 针对不同的服务和应用来优化Linux内核,比如针对Apache和Nginx等来设置优化Linux内核,如果针对Oracle设置相应的设置Linux内核优化。 如果没有特殊的要求可以不用设置自己的Linux内核优化。我们下边设置的内核参数主要是适用于Nginx,Squid等web服务。
(3)配置示例 mysql> show variables like '%query_cache%' ; +------------------------------+---------+ | Variable_name
iptables(iptables工作场景如果有外网IP一定要打开,高并发除外) 调整文件描述符的数量 精简开机启动服务(crond rsyslog network sshd) 内核参数优化
myset.insert(make_pair(a[i],a[j])); cout<<myset.size()<<endl; return 0; } 思考:优化 ,减少枚举变量,只枚举a[i] 如果我们只枚举a[i],比如a[i] = 3,那么如果存在数对(a[i],a[j] + k),假设我枚举数对里较小的值是3,那么根据差是2,较大的肯定就是5,所以,问题就变成
学习性能优化第一步了解性能指标 我们最常见的两个核心指标 “吞吐” 和“时延” [image.png] 性能问题的本质就是系统资源已经达到了瓶颈,但是请求资源还不够快,无法支撑更多的请求。 这包含了一些列的步骤,比如以下的步骤: 选择指标评估应用程序和系统性能 为应用程序和系统性能设定目标 进行性能基准测试 性能分析定位瓶颈 优化系统和应用程序 性能的监控和告警 说到 性能分析 必须要提大师 布伦丹·格雷格(Brendan Gregg)以及其相关的一张经典图 可以查看详细链接http://www.brendangregg.com/Perf/linux_perf_tools_full.png
0:28.13 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.07 kthreadd 3 只有找到它,才能更高效、更针对性地进行优化。 GDB(The GNU Project Debugger), 这个功能强大的程序调试利器;但是GDB调试会导致程序中断,不适合生产环境直接调试 Linux perf 神器 http://www.brendangregg.com "php-fpm -F --pid ..." 5 minutes ago Up 5 minutes phpfpm 2a3f5b5586b5
0.3 si, 0.0 st %Cpu2 : 8.4 us, 2.7 sy, 0.0 ni, 88.5 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st %Cpu3 $ grep 'model name' /proc/cpuinfo | wc -l 2、负载情况 根据时间不一样 三个不同的平均负载的值 其反应负载就是三个时间点负载情况 3、 日常工作中 可以以这个负载做为一个快速发生系统是否有负载问题的指标,另外可以以监控的方式覆盖 CPU报警,当然监控越细越好,不同的负载 1.6 推荐命令工具 stress 用来模拟 Linux 系统压测工具 另外,当进程只有一个线程的时候 大家可以理解就是线程切换 根据 Tsuna 的测试报告,每次上下文切换都需要几十纳秒到数微秒的CPU时间,所以优化这个切换非常重要。 pidstat -wt -u 1 3、关注 /proc/interrupts watch -d cat /proc/interrupts 三 CPU 使用100%的时候 你可以怎么操作 1
一、selinux和防火墙优化 1、SElinux selinux 安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux selinux,首先用root的身份登录系统,打开一个终端输入gedit /etc/selinux/config命令,回车之后会打开一个文件,将所标记出来部分的enforcing改为disabled,保存之后重启linux systemctl stop firewalld.service停止防火墙,systemctl disable firewalld.service禁止防火墙服务开机启动,接下来我们看一下如何设置中文 二、中文设置优化 如果系统的时间不准,自己手动设置起来比较麻烦,我们可以看下怎么来优化一下 同样还是找到设置,在里面找到详细信息,展开之后可以看到日期和时间的设置,两个自动设置的选项打开,如果你的虚拟机可以联网的话,过一会就会看到时间正常了 四、自启动服务优化 自启动服务优化的方式类似我们之前提到的停止firewalld,但是首先我们要确认一下有哪些服务是开机启动的,然后利用之前用过的systemctl stop servername
1、mii-tool -v eth0 查看物理网卡的协商方式,相关信息 image.png 2、ethtool ens33 image.png 3、ifconfig 4、ip -s link