cat /etc/sysctl.conf
CTCDN系統(tǒng)優(yōu)化參數(shù)
關(guān)閉ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
避免放大攻擊
net.ipv4.icmp_echo_ignore_broadcasts = 1
開啟惡意icmp錯誤消息保護(hù)
net.ipv4.icmp_ignore_bogus_error_responses = 1
關(guān)閉路由轉(zhuǎn)發(fā)
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
開啟反向路徑過濾
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
處理無源路由的包
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
關(guān)閉sysrq功能
kernel.sysrq = 0
core文件名中添加pid作為擴(kuò)展名
kernel.core_uses_pid = 1
開啟SYN洪水攻擊保護(hù)
net.ipv4.tcp_syncookies = 1
修改消息隊列長度
kernel.msgmnb = 65536
kernel.msgmax = 65536
設(shè)置最大內(nèi)存共享段大小bytes
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
timewait的數(shù)量,默認(rèn)180000
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
每個網(wǎng)絡(luò)接口接收數(shù)據(jù)包的速率比內(nèi)核處理這些包的速率快時,允許送到隊列的數(shù)據(jù)包的最大數(shù)目
net.core.netdev_max_backlog = 262144
限制僅僅是為了防止簡單的DoS 攻擊
net.ipv4.tcp_max_orphans = 3276800
未收到客戶端確認(rèn)信息的連接請求的最大值
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_timestamps = 0
內(nèi)核放棄建立連接之前發(fā)送SYNACK 包的數(shù)量
net.ipv4.tcp_synack_retries = 1
內(nèi)核放棄建立連接之前發(fā)送SYN 包的數(shù)量
net.ipv4.tcp_syn_retries = 1
啟用timewait 快速回收
net.ipv4.tcp_tw_recycle = 1
開啟重用。允許將TIME-WAIT sockets 重新用于新的TCP 連接
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_fin_timeout = 1
當(dāng)keepalive 起用的時候,TCP 發(fā)送keepalive 消息的頻度。缺省是2 小時
net.ipv4.tcp_keepalive_time = 30
允許系統(tǒng)打開的端口范圍
net.ipv4.ip_local_port_range = 1024 65000
修改防火墻表大小,默認(rèn)65536
net.netfilter.nf_conntrack_max=655350
net.netfilter.nf_conntrack_tcp_timeout_established=1200
確保無人能修改路由表
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0
###############################################
Linux默認(rèn)是允許Ping響應(yīng)的,系統(tǒng)是否允許Ping由2個因素決定的:A、內(nèi)核參數(shù),B、防火墻,需要2個因素同時允許才能允許Ping,2個因素有任意一個禁Ping就無法Ping。
具體的配置方法如下:
A、內(nèi)核參數(shù)設(shè)置
1、允許PING設(shè)置
A.臨時允許PING操作的命令為:#echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all
B.永久允許PING配置方法。
/etc/sysctl.conf 中增加一行
net.ipv4.icmp_echo_ignore_all=1
如果已經(jīng)有net.ipv4.icmp_echo_ignore_all這一行了,直接修改=號后面的值即可的(0表示允許,1表示禁止)。
修改完成后執(zhí)行sysctl -p使新配置生效。
QQ???20150309171941.png
2、禁止Ping設(shè)置
A.臨時禁止PING的命令為:#echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
B.永久允許PING配置方法。
/etc/sysctl.conf 中增加一行
net.ipv4.icmp_echo_ignore_all=0
如果已經(jīng)有net.ipv4.icmp_echo_ignore_all這一行了,直接修改=號后面的值即可的。(0表示允許,1表示禁止)
修改完成后執(zhí)行sysctl -p使新配置生效。
QQ???20150309173326.png
B、防火墻設(shè)置(注:此處的方法的前提是內(nèi)核配置是默認(rèn)值,也就是沒有禁止Ping)
這里以Iptables防火墻為例,其他防火墻操作方法可參考防火墻的官方文檔。
1、允許PING設(shè)置
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
或者也可以臨時停止防火墻操作的。
service iptables stop
2、禁止PING設(shè)置
iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP
###################################################
接收套接字緩沖區(qū)大小的默認(rèn)值(以字節(jié)為單位)。
net.core.rmem_default = 262144
接收套接字緩沖區(qū)大小的最大值(以字節(jié)為單位)。
net.core.rmem_max = 16777216
發(fā)送套接字緩沖區(qū)大小的默認(rèn)值(以字節(jié)為單位)。
net.core.wmem_default = 262144
發(fā)送套接字緩沖區(qū)大小的最大值(以字節(jié)為單位)。
net.core.wmem_max = 16777216
用來限制監(jiān)聽(LISTEN)隊列最大數(shù)據(jù)包的數(shù)量,超過這個數(shù)量就會導(dǎo)致鏈接超時或者觸發(fā)重傳機(jī)制。
net.core.somaxconn = 262144
當(dāng)網(wǎng)卡接收數(shù)據(jù)包的速度大于內(nèi)核處理的速度時,會有一個隊列保存這些數(shù)據(jù)包。這個參數(shù)表示該隊列的最大值。
net.core.netdev_max_backlog = 262144
表示系統(tǒng)中最多有多少TCP套接字不被關(guān)聯(lián)到任何一個用戶文件句柄上。如果超過這里設(shè)置的數(shù)字,連接就會復(fù)位并輸出警告信息。這個限制僅僅是為了防止簡單的DoS攻擊。此值不能太小。
net.ipv4.tcp_max_orphans = 262144
表示那些尚未收到客戶端確認(rèn)信息的連接(SYN消息)隊列的長度,默認(rèn)為1024,加大隊列長度為262144,可以容納更多等待連接的網(wǎng)絡(luò)連接數(shù)。
net.ipv4.tcp_max_syn_backlog = 262144
表示系統(tǒng)同時保持TIME_WAIT套接字的最大數(shù)量。如果超過此數(shù),TIME_WAIT套接字會被立刻清除并且打印警告信息。之所以要設(shè)定這個限制,純粹為了抵御那些簡單的DoS攻擊,不過,過多的TIME_WAIT套接字也會消耗服務(wù)器資源,甚至死機(jī)。
net.ipv4.tcp_max_tw_buckets = 10000
表示允許系統(tǒng)打開的端口范圍。
net.ipv4.ip_local_port_range = 1024 65500
以下兩參數(shù)可解決生產(chǎn)場景中大量連接的服務(wù)器中TIME_WAIT過多問題。
表示開啟TCP連接中TIME_WAIT套接字的快速回收,默認(rèn)為0,表示關(guān)閉。
net.ipv4.tcp_tw_recycle = 1
表示允許重用TIME_WAIT狀態(tài)的套接字用于新的TCP連接,默認(rèn)為0,表示關(guān)閉。
net.ipv4.tcp_tw_reuse = 1
當(dāng)出現(xiàn)SYN等待隊列溢出時,啟用cookies來處理,可防范少量SYN攻擊,默認(rèn)為0,表示關(guān)閉。
net.ipv4.tcp_syncookies = 1
表示系統(tǒng)允許SYN連接的重試次數(shù)。為了打開對端的連接,內(nèi)核需要發(fā)送一個SYN并附帶一個回應(yīng)前面一個SYN的ACK包。也就是所謂三次握手中的第二次握手。這個設(shè)置決定了內(nèi)核放棄連接之前發(fā)送SYN+ACK包的數(shù)量。
net.ipv4.tcp_synack_retries = 1
表示在內(nèi)核放棄建立連接之前發(fā)送SYN包的數(shù)量。
net.ipv4.tcp_syn_retries = 1
減少處于FIN-WAIT-2連接狀態(tài)的時間,使系統(tǒng)可以處理更多的連接。
net.ipv4.tcp_fin_timeout = 30
這個參數(shù)表示當(dāng)keepalive啟用時,TCP發(fā)送keepalive消息的頻度。默認(rèn)是2小時,若將其設(shè)置得小一些,可以更快地清理無效的連接。
net.ipv4.tcp_keepalive_time = 600
探測消息未獲得響應(yīng)時,重發(fā)該消息的間隔時間(秒)。系統(tǒng)默認(rèn)75秒。
net.ipv4.tcp_keepalive_intvl = 30
在認(rèn)定連接失效之前,發(fā)送多少個TCP的keepalive探測包。系統(tǒng)默認(rèn)值是9。這個值乘以tcp_keepalive_intvl之后決定了,一個連接發(fā)送了keepalive探測包之后可以有多少時間沒有回應(yīng)。
net.ipv4.tcp_keepalive_probes = 3
確定TCP棧應(yīng)該如何反映內(nèi)存使用,每個值的單位都是內(nèi)存頁(通常是4KB)。第一個值是內(nèi)存使用的下限;第二個值是內(nèi)存壓力模式開始對緩沖區(qū)使用應(yīng)用壓力的上限;第三個值是內(nèi)存使用的上限。在這個層次上可以將報文丟棄,從而減少對內(nèi)存的使用。示例中第一個值為7864324/1024/1024=3G,第二個值為10485764/1024/1024=4G,第三個值為1572864*4/1024/1024=6G。
net.ipv4.tcp_mem = 786432 1048576 1572864
此參數(shù)限制并發(fā)未完成的異步請求數(shù)目,應(yīng)該設(shè)置避免I/O子系統(tǒng)故障。
fs.aio-max-nr = 1048576
該參數(shù)決定了系統(tǒng)中所允許的文件句柄最大數(shù)目,文件句柄設(shè)置代表linux系統(tǒng)中可以打開的文件的數(shù)量。
fs.file-max = 6815744
第一列,表示每個信號集中的最大信號量數(shù)目。
第二列,表示系統(tǒng)范圍內(nèi)的最大信號量總數(shù)目。
第三列,表示每個信號發(fā)生時的最大系統(tǒng)操作數(shù)目。
第四列,表示系統(tǒng)范圍內(nèi)的最大信號集總數(shù)目。
(第一列)*(第四列)=(第二列)
kernel.sem = 250 32000 100 128
表示盡量使用內(nèi)存,減少使用磁盤swap交換分區(qū),內(nèi)存速度明顯高于磁盤一個數(shù)量級。
vm.swappiness = 0
CentOS 7 系統(tǒng)優(yōu)化腳本
#!/bin/bash
# set yum
yum install wget -y &>/dev/null
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache
# time update
yum install ntp ntpdate -y
echo "0 0 * * * /usr/sbin/ntpdate cn.pool.ntp.org" >> /var/spool/cron/root
systemctl restart crond
# other
yum install net-tools telnet nmap vim -y
# vi setting
cat >> /etc/vimrc << EOF
set tabstop=4
set shiftwidth=4
set autoindent
syntax off
EOF
# open file
ulimit -SHn 65535
cat >> /etc/security/limits.conf << EOF
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
EOF
# close SELINUX
sed -i '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config
setenforce 0
# install iptables
systemctl stop firewalld
systemctl disable firewalld
yum install iptables-services -y
systemctl start iptables
systemctl enable iptables
Centos安裝Tomcat以及高并發(fā)優(yōu)化
Tomcat是一個輕量級的Web服務(wù)器。通常情況下,我們使用它運行Java代碼。它也可以被稱為Jsp、serlvet的容器。目前主流的有三個版本,Tomcat-7.0、Tomcat-8.5、Tomcat-9.0 。這里我們對Tomcat-9.0版本進(jìn)行安裝與調(diào)優(yōu)。
一、 安裝包及依賴環(huán)境下載
1、Tomcat-9.0安裝包下載
官網(wǎng)地址:點擊下載
Shell命令
wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.30/bin/apache-tomcat-9.0.30.tar.gz
2、JDK1.8安裝
Tomcat作為一個web容器,運行需要Jdk環(huán)境。同時,我們使用的Tomcat-9.0版本需要Jdk1.8版本的,在上一篇文章 《Centos安裝數(shù)據(jù)庫讀寫分離中間件Mycat》中有介紹JDK1.8的安裝方式,需要安裝的可以查看。這里不多做敘述。
3、cronolog日志切割工具安裝
cronolog是一個日志切割工具,可以將Tomcat的catalina.out日志按天進(jìn)行切割,并輸出到指定的位置。安裝配置比較方便,下載完成后,解壓編譯一下即可使用。 該地址可能會訪問不通。原因不詳,你應(yīng)該有辦法。得到安裝包后進(jìn)行解壓,然后進(jìn)入解壓后的目錄,按以下順序執(zhí)行命令即可。
wget http://cronolog.org/download/cronolog-1.6.2.tar.gz
tar xf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2
./configure
make && make install
編譯完成后,會在默認(rèn)路徑 /usr/local/sbin/ 下生成兩個文件,其中cronolog為可執(zhí)行文件,給予執(zhí)行權(quán)限。
image
chmod +x /usr/local/sbin/cronolog
二、安裝Tomcat
Tomcat安裝方式比較簡單,解壓后更改一下配置參數(shù)即可使用。如果想要運行多個實例,只需要更改不同的端口,日志輸出路徑即可。需要注意的是,有三個端口需要更改(8005、8080、8009)。
1、解壓安裝
tar xf apache-tomcat-9.0.30.tar.gz
mv apache-tomcat-9.0.30 tomcat
2、建立Tomcat用戶
Tomcat服務(wù)啟動使用root用戶不安全,我們給它建立個tomcat啟動用戶。同時,需要注意的是將啟動涉及到的目錄都要賦予tomcat用戶權(quán)限。
useradd tomcat
chown -R tomcat.tomcat /data/tomcat/
chown -R tomcat.tomcat /data/logs/ ##日志輸出目錄
2、修改日志輸出路徑
cd tomcat
vim bin/catalina.sh
修改前將 logs目錄換成你需要輸出的目錄,我將它輸出到 /data/logs 里。
修改后
3、啟動服務(wù)
以tomcat用戶啟動服務(wù)
su - tomcat -c "/data/tomcat/bin/start.sh"
啟動成功
在這里插入圖片描述
4、訪問測試
在/data/tomcat/webapps/ROOT/目錄下寫個index.html測試頁面,請求一下。
vim /data/tomcat/webapps/ROOT/index.html
#
<h1> Test Page </h1>
:wq
curl http://127.0.0.1:8080
在這里插入圖片描述
三、服務(wù)優(yōu)化
不長篇大論,只介紹幾種實用的優(yōu)化方式,線上環(huán)境實際使用的。
1、啟動優(yōu)化
Tomcat啟動慢是通病,網(wǎng)上有多種提高啟動速度的方式。我一直使用的是增加熵池隨機(jī)數(shù)的方式。效果比較明顯,安裝rng-tools服務(wù)來增加熵池隨機(jī)數(shù)。
yum -y install rng-tools
systemctl start rngd
systemctl status rngd
服務(wù)已運行
在這里插入圖片描述
2、啟動內(nèi)存分配
還是找到tomcat/bin/catalina.sh 啟動程序,在程序里添加以下內(nèi)容即可。具體參數(shù),按自己服務(wù)器配置設(shè)置。如果單跑tomcat服務(wù),可適當(dāng)提高。
vim /data/tomcat/bin/catalina.sh
#
set JAVA_OPTS=-Xms512m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m
:wq
在這里插入圖片描述參數(shù)解析:
-Xms:占用系統(tǒng)的最小內(nèi)存
-Xmx:占用系統(tǒng)的最大內(nèi)存
-XX:PermSize:最小棧內(nèi)存大小
-XX:MaxPermSize:最大棧內(nèi)存大小。
3、高并發(fā)配置優(yōu)化
通常情況下,tomcat默認(rèn)開啟的等待線程為10個,最大線程為200個。顯然無法滿足并發(fā)情況。在這里,對其配置文件server.xml進(jìn)行優(yōu)化。有兩種參數(shù)調(diào)整方式。
配置文件位置:/data/tomcat/conf/server.xml
(1)Executor 線程池配置(默認(rèn)是注釋的),然后Connector段引用定義的線程池Name。
在這里插入圖片描述(2)Connector段直接配置。
在這里插入圖片描述我們直接使用第二種方法,在connnector段進(jìn)行配置。
增加參數(shù):
protocol=“org.apache.coyote.http11.Http11NioProtocol” ##工作模式為Nio模式,高效的處理并發(fā)。
maxThreads=“500” ##最大線程開啟。
acceptCount=“1000” ##指定當(dāng)所有可以使用的處理請求的線程數(shù)都被使用時,可以放到處理隊列中的請求數(shù),超過這個數(shù)的請求將不予處理。
更改后的配置:
在這里插入圖片描述在這里沒有增加太多的參數(shù),只增加了有效的兩個。
4、ab測試比較
調(diào)整參數(shù)前:
在這里插入圖片描述在這里插入圖片描述對服務(wù)器進(jìn)行并發(fā)壓測。不斷增加并發(fā),在增長到242個線程時,停止增加。
調(diào)整參數(shù)后:
在這里插入圖片描述在這里插入圖片描述線程數(shù)已開啟到542個,同時執(zhí)行速率也明顯提高。
如果服務(wù)器CPU性能較好,可適當(dāng)增加最大線程數(shù),但由于linux內(nèi)核原因,對于線程數(shù)支持有限。所以開啟1000線程以到極限。CPU上下文切換速率會受影響。500左右為較好的工作狀態(tài),再高就要考慮集群部署了。下篇文章,我們來講解Nginx反代tomcat集群架構(gòu)部署。
Nginx服務(wù)器高性能優(yōu)化---壓測單機(jī)10萬以上并發(fā)量訪問
一、簡介
通常來說,一個正常的 Nginx Linux 服務(wù)器可以達(dá)到 500000 – 600000 次/秒 的請求處理性能,如果Nginx服務(wù)器經(jīng)過優(yōu)化的話,則可以穩(wěn)定地達(dá)到 100000 次/秒 的處理性能。
這里用的是vmware虛擬機(jī)環(huán)境,配置是6核、4G內(nèi)存的配置、CentOS 7 系統(tǒng)。
文章參考以下安裝方式的Nginx 1.18.0
https://blog.csdn.net/qq_32415063/article/details/105888217
二、解決問題點
1、nginx接受的tcp連接多,能否建立起來?
2、nginx響應(yīng)過程,要打開許多文件,能否打開?
三、添加nginx狀態(tài)信息查看
打開nginx的狀態(tài)連接信息:
[root@localhost ~]#vi /appdata/nginx/conf/nginx.conf
在server里添加如下信息
location /status
{
stub_status on;
access_log off;
}
如下圖
重載配置
[root@localhost ~]#systemctl reload nginx
訪問地址 http://機(jī)器ip地址/status,出現(xiàn)如下信息
四、優(yōu)化步驟
1、Nginx的CPU配置
獲取cpu核心數(shù)
[root@localhost conf]# grep processor /proc/cpuinfo | wc -l
比如6核配置:
worker_processes 6;
worker_cpu_affinity 0001 0010 0100 1000 1001 10010;
比如8核配置:
worker_processes 8;
worker_cpu_affinity 00000001 00000010 00000100 0000100000010000 00100000 01000000 10000000;
我這里是六核,修改nginx配置
[root@localhost conf]# vi /appdata/nginx/conf/nginx.conf
如圖所示:
http模塊新增以下參數(shù)
sendfile on;
tcp_nopush on;
client_max_body_size 1024m;
client_body_buffer_size 10m;
client_header_buffer_size 10m;
proxy_buffers 4 128k;
proxy_busy_buffers_size 128k;
open_file_cache max=102400 inactive=20s;
#這個將為打開文件指定緩存,默認(rèn)是沒有啟用的,max指定緩存數(shù)量,建議和打開文件數(shù)一致,inactive是指經(jīng)過多長
時間文件沒被請求后刪除緩存。
open_file_cache_valid 30s;
keepalive_timeout 60;
2、Linux系統(tǒng)參數(shù)修改
[root@localhost conf]# vi /etc/sysctl.conf
配置如下
vm.swappiness=0
#增加tcp支持的隊列數(shù)
net.ipv4.tcp_max_syn_backlog = 262144
#減少斷開連接時 ,資源回收
net.ipv4.tcp_max_tw_buckets = 8000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 10
#改變本地的端口范圍
net.ipv4.ip_local_port_range = 1024 65535
#對于只在本地使用的數(shù)據(jù)庫服務(wù)器
net.ipv4.tcp_fin_timeout = 1
#端口監(jiān)聽隊列
net.core.somaxconn=65535
#接受數(shù)據(jù)的速率
net.core.netdev_max_backlog=65535
net.core.wmem_default=87380
net.core.wmem_max=16777216
net.core.rmem_default=87380
net.core.rmem_max=16777216
net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_max_orphans = 262144
生效參數(shù)
[root@localhost conf]# sysctl -p
系統(tǒng)連接數(shù)的優(yōu)化
[root@localhost conf]# vi /etc/security/limits.conf
最后添加如下
* soft nofile 65535
* hard nofile 65535
* soft noproc 65535
* hard noproc 65535
設(shè)置連接數(shù)最大
[root@localhost conf]# ulimit -n 65536
壓測10萬并發(fā) (Apache ab 測試工具)安裝方式參考鏈接:
https://blog.csdn.net/qq_32415063/article/details/105896406
[root@localhost ~]# ab -n 200000 -c 5000 http://192.168.23.129:80/index.html
結(jié)果如下
Server Software: nginx/1.18.0
Server Hostname: 192.168.23.129
Server Port: 80
Document Path: /index.html
Document Length: 612 bytes
Concurrency Level: 5000
Time taken for tests: 82.459 seconds
Complete requests: 200000
Failed requests: 0
Write errors: 0
Total transferred: 168999155 bytes
HTML transferred: 122399388 bytes
Requests per second: 2425.44 [#/sec] (mean)
Time per request: 2061.482 [ms] (mean)
Time per request: 0.412 [ms] (mean, across all concurrent requests)
Transfer rate: 2001.45 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 875 2739.5 78 31732
Processing: 3 209 722.7 77 61598
Waiting: 0 206 709.2 76 36979
Total: 3 1084 2849.8 180 68689
Percentage of the requests served within a certain time (ms)
50% 180
66% 458
75% 1130
80% 1169
90% 3102
95% 3552
98% 7512
99% 15209
100% 68689 (longest request)
zabbix:性能優(yōu)化
zabbix性能低下的表現(xiàn)如下:
- zabbix隊列有太多被延遲的item,可以通過administration-queue查看
- zabbix繪圖中經(jīng)常出現(xiàn)斷圖,一些item沒有數(shù)據(jù)
- 帶有nodata()函數(shù)的觸發(fā)器出現(xiàn)flase
- 前端頁面無響應(yīng),或者響應(yīng)慢
解決方案如下:
- 不要使用默認(rèn)的模板,使用自己定制的模板
- 數(shù)據(jù)庫調(diào)優(yōu)
- 架構(gòu)優(yōu)化,如使用 分布式,個服務(wù)器功能獨立
- Item 、Trigger調(diào)優(yōu)
- 變換更好的硬件
一:性能優(yōu)化的依據(jù)
對zabbix server本身進(jìn)行監(jiān)控,選擇zabbix-server的監(jiān)控模板Template APP Zabbix Server。
然后看到zabbix-server內(nèi)部監(jiān)控情況:
通過上面的圖,我們可以發(fā)現(xiàn)監(jiān)控的指標(biāo)有剩余的容量、性能這些。通過這些我們可以知道zabbix性能的瓶頸在哪里。例如:如果剩余的容量很小了,我們就可以調(diào)大zabbix_server.conf中的緩存參數(shù),直到剩余的容量變大。
二:zabbix配置文件的參數(shù)優(yōu)化
下面就是zabbix_server.conf文件內(nèi)容
#通過日志可以分析當(dāng)前服務(wù)狀態(tài)。
LogFile=/tmp/zabbix_server.log #日志文件路徑。
LogFileSize=1 #日志文件最大值(MB),超過則滾動,設(shè)為0表示不回滾。
DebugLevel=3 #調(diào)試日志級別:
# 0 - Zabbix進(jìn)程啟停基本信息。
# 1 - 嚴(yán)重信息。
# 2 - 錯誤信息。
# 3 - 警告。
# 4 - 調(diào)試模式。
# 5 - 調(diào)試模式-加強(qiáng)版。
#數(shù)據(jù)庫配置,若數(shù)據(jù)庫與服務(wù)器在同一機(jī)器上,使用socket模式可以提高訪問速度。
DBSocket=/tmp/mysql.sock
#輪詢進(jìn)程數(shù),通過并發(fā)來提高輪詢或者捕獲的效率,同時用來避免poller busy問題,根據(jù)CPU數(shù)量與系統(tǒng)負(fù)載綜合調(diào)優(yōu)。
StartPollers=80 #基本輪詢進(jìn)程數(shù),范圍0-1000。
StartIPMIPollers=0 #IPMI輪詢進(jìn)程數(shù),若無智能卡監(jiān)控,可置為0。
StartPollersUnreachable=1 #不可達(dá)主機(jī)的輪詢進(jìn)程數(shù),包括IPMI和JAVA。
StartTrappers=1 #捕獲模式進(jìn)程數(shù),若無active模式的客戶端,則可減小該進(jìn)程。
StartPingers=20 #ICMP ping數(shù)量,當(dāng)大量使用ping用于心跳檢測時,可適量增加。
StartDiscoverers=1 #自動發(fā)現(xiàn)實例數(shù),若關(guān)閉此功能則減少該數(shù)量。
StartHTTPPollers=7 #HTTP輪詢實例數(shù),當(dāng)使用到內(nèi)置的WEB監(jiān)測時,適量增加該值。
StartTimers=1 #定時器實例數(shù)。
StartEscalators=20 #擴(kuò)展實例數(shù)。
StartDBSyncers=20 #DB同步器線程數(shù)。
StartJavaPollers=5 #JAVA輪詢實例,當(dāng)大量監(jiān)控JMX時需要增加此項。
StartProxyPollers=1 #代理輪詢線程。
#緩存配置
CacheSize=8M #128K-8G,緩存配置項的大小,用于存儲 host, item, trigger 數(shù)據(jù)。監(jiān)控項
CacheUpdateFrequency=60 #提交緩存頻率。
HistoryCacheSize=16M #歷史緩存大小。
HistoryIndexCacheSize=4M #歷史索引緩存大小。
TrendCacheSize=4M #趨勢緩存大小。
ValueCacheSize=8M #歷史項目值緩存,設(shè)為0表示禁用項目值緩存,history value 緩存大小,當(dāng)緩存超標(biāo)了,將會每隔 5 分鐘往 server 日志里面記錄。
#用戶配置
AllowRoot=0 #是否允許使用 root 啟動, 0:不允許, 1:允許,默認(rèn)情況下她會使用 zabbix 用戶來啟動 zabbix 進(jìn)程。
User=zabbix #服務(wù)使用的用戶。
#超時配置
Timeout=4 #端探測超時時間。
TrapperTimeout=300 #捕捉器超時時間。
UnreachablePeriod=45 #不可達(dá)時間,超過視為不可達(dá)。
UnavailableDelay=60 #不可達(dá)期間嘗試周期。
UnreachableDelay=15 #不可用期間嘗試周期。
HousekeepingFrequency=1 #housekeeping 數(shù)據(jù)歸檔周期(h),housekeep 執(zhí)行頻率,默認(rèn)每小時回去刪除一些過期數(shù)據(jù)。如果 server 重啟,那么 30 分鐘之后才執(zhí)行一次,接下來,每隔一小時在執(zhí)行一次。。
MaxHousekeeperDelete=5000 #housekeeper表記錄,一次刪除的數(shù)據(jù)不能大于 MaxHousekeeperDelete。
SenderFrequency=30 #Zabbix嘗試發(fā)送未發(fā)送數(shù)據(jù)頻率,5-3600s。
就可以根據(jù)自己的需要按照上面的內(nèi)容進(jìn)行配置。
三:zabbix的架構(gòu)優(yōu)化
常用的zabbix架構(gòu):(說明:Zabbix最簡單的架構(gòu),常用于監(jiān)控主機(jī)比較少的情況下。)
分布式架構(gòu):Server-Proxy-Agentd模式
說明:Zabbix分布式架構(gòu),常用于監(jiān)控主機(jī)比較多的情況下,使用Zabbix Proxy進(jìn)行分布式監(jiān)控,有效的減輕了Zabbix Server端的壓力。
四:Items工作模式及Trigger的優(yōu)化
zabbix中的item默認(rèn)的工作模式是被動模式,可以通過設(shè)置主動模式來提高Server的性能。
Trigger中正則表達(dá)式函數(shù)last()、nodata()的速度是最快的,min()、max()、avg()是最慢的,盡量使用速度快的函數(shù)。
五:zabbix的數(shù)據(jù)庫優(yōu)化
數(shù)據(jù)庫優(yōu)化的方法有:
- 對數(shù)據(jù)庫軟件本身的優(yōu)化。采用更高性能的數(shù)據(jù)庫版本
- 對數(shù)據(jù)庫本身的參數(shù)進(jìn)行調(diào)優(yōu)配置
- 對zabbix數(shù)據(jù)庫結(jié)構(gòu)進(jìn)行優(yōu)化,例如:對history.、trends.等表進(jìn)行分表操作,會很大的提高數(shù)據(jù)庫的性能。
配置數(shù)據(jù)庫本身的參數(shù):
innodb_buffer_pool_size - 如果你有一個專屬的 MySQL 服務(wù)器,盡可能設(shè)置的越高越好(上限是整個可用內(nèi)存的 75% 左右),否則,你將同服務(wù)器上的其他進(jìn)程平衡它。但是如果它僅僅是 zabbix 服務(wù)器,我依然建議設(shè)置的比較高,接近總的內(nèi)存的 75%。
innodb_buffer_pool_instances - 在 MySQL 5.5, 設(shè)置它為 4, 在 MySQL 5.6 – 設(shè)置它為 8 或者甚至是 16。
innodb_flush_log_at_trx_commit = 0 - 這是折中的顯著改善寫入吞吐量的方案,特別是你沒有一個非易失性高速緩存的磁盤子系統(tǒng)。基本上你引發(fā)的是在 MySQL 或是服務(wù)器 crash 時的 1s 的寫損失。很多網(wǎng)站的實際運行它(很多網(wǎng)站依然運行在 MyISAM 上),我十分確定這不是一個 Zabbix 設(shè)置問題。
innodb_flush_method = O_DIRECT - 如果你是運行在 Linux,設(shè)置它。
-
innodb_log_file_size - 你想要這些事務(wù)日志(默認(rèn)是有兩份)保持 1 - 2 小時有價值的寫入數(shù)據(jù)。為了做決定,你可能需要看下你的 MySQL 服務(wù)器的 Zabbix graphs,但是你也可以從 mysql 命令行運行以下的命令:
mysql> pager grep seq; show engine innodb statusG select sleep(3600); show engine innodb statusG PAGER set to 'grep seq' Log sequence number 8373513970951
…
Log sequence number 8373683996767
這兩個數(shù)字的不同的之處就是 InnoDB 在上一個小時寫入的字節(jié)數(shù)。因此在以上的服務(wù)器,我將設(shè)置 innodb_log_file_size=128M 并且以 256M 日志大小空間結(jié)束以允許我存儲超過 1 個小時有價值的寫入數(shù)據(jù)到事務(wù)日志中(See this on changing the log file size if you run MySQL 5.5 or earlier)
innodb_read_io_threads, innodb_write_io_threads - 不要深思這些,它們不像看起來那么重要,特別是如果你使用異步 IO(你可以通過在 mysql cli 運行 “show global variables like ‘innodb_use_native_aio’” 來檢查)。在 MySQL 5.5 和 5.6 你通常想使用異步 IO(AIO),因此檢查 mysql log 來明白為什么。如果沒有,那就是說,如果你沒有使用 AIO 并且不準(zhǔn)備使用,僅僅設(shè)置這些值為 8 即可。
innodb_old_blocks_time = 1000 - 這個可以幫助你防止 由于偶爾的 scans 造成的 buffer pool 污染。這個目前在 MySQL 5.6 中是默認(rèn)的(在 5.5,需要明確設(shè)置)。
innodb_io_capacity - 設(shè)置這個是為了你的磁盤 IO 子系統(tǒng)能處理更多的寫 iops。對于 SSDs,這個應(yīng)該最少為幾千(2000 可能是一個好的開始),然而對于一些旋轉(zhuǎn)磁盤值稍微有點低 - 500-800,依賴于磁盤數(shù)量。對于今天的大多數(shù)系統(tǒng),默認(rèn)的 200 明確是太低的。
sync_binlog=0 - 這是默認(rèn)設(shè)置,但以防萬一它是大于 0,關(guān)閉它,除非你運行的不是 Zabbix。不同步 binary logs 的代價是萬一 master 宕機(jī),副本沒有同步,但是如果由于 binary log 同步,你不斷觸及 IO 瓶頸,僅僅因為你想避免每五年一次同步到備機(jī)的麻煩,當(dāng) master 宕機(jī)了,你應(yīng)該重新考慮這個選項。
query_cache_size=0, query_cache_type=0 - 這是禁止查詢緩存。大部分時間你不需要查詢緩存。并且如果你沒有通過這些設(shè)置在內(nèi)核中禁止它,查詢(尤其是小的)可能會受到影響,由于查詢緩存的互斥競爭。
sort_buffer_size, join_buffer_size, read_rnd_buffer_size - 如果你配置了這些變量,取消這些改變(僅僅移除它們或是注釋它們)。我發(fā)現(xiàn)在大多數(shù)客戶端服務(wù)器,這是失調(diào)的前三名變量。然而在大部分情況下,不改變它們是最好的。僅僅讓它們保留默認(rèn)值。
tmpdir - 有時候指定 tmpdir 為 /dev/shm 是一個好注意,以至于 on-disk temporary 表實際是寫入內(nèi)存中,但是在 MySQL 5.5 有一個重要的警告:如果你這樣做了,它禁用了 AIO acorss the board,因為 tmpfs 不支持 AIO。因此我將監(jiān)控在當(dāng)前 tmpdir(/tmp) 的活躍性,并且如果我發(fā)現(xiàn)它有問題的時候,切換到 /dev/shm。
zabbix數(shù)據(jù)庫進(jìn)行分表操作:
MySQL 5.5為寫入工作負(fù)載留下了巨大的瓶頸 - 每個索引都有鎖定鎖定,因此當(dāng)時只有一個線程可以插入索引條目,這可能是一個重要的瓶頸。 我們通過其中一列的散列分區(qū)表獲得了2x +更好的性能,我希望隨著更多內(nèi)核的增益可以更高。
具體操作腳本github鏈接:https://github.com/itnihao/zabbix-book/blob/master/03-chapter/partitiontables.sh
六:其他優(yōu)化手段
服務(wù)器硬件
想通過幾個簡單的配置讓服務(wù)器提高成倍的性能,想法很好,但是基本不太現(xiàn)實。簡單的說,你需要搭配更好的CPU、更大的內(nèi)存,更快的硬盤:條件允許的花,可以考慮購買SSD,它比更大的cpu和更大的內(nèi)存帶來的效果更好,或者考慮使用SAS 15K硬盤,組raid等等,總之一句話,配置優(yōu)化不動的情況,增加硬件投入,別絞盡腦汁搜索:zabbix如何優(yōu)化之類的文章,你在浪費時間。
操作系統(tǒng)
使用最新的操作系統(tǒng),優(yōu)化、定制化操作系統(tǒng)內(nèi)核。應(yīng)該會有些作用,但是肯定不大。
參考博客鏈接如下:
https://sre.ink/zabbix-turn-conf/#respond
在CentOS 7下配置MySql5.7并調(diào)優(yōu)教程
安裝mysql5.7
1.下載資源包,代碼:
wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
2.添加mysql社區(qū)repo通過輸入命令,代碼:
sudo rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
3.使用yum方式安裝mysql,代碼:
yum install mysql mysql-server mysql-libs mysql-server
4.啟動mysql,代碼:
service mysqld start
或者
systemctl start mysqld.service
5.查看啟動狀態(tài),代碼:
service mysqld status
mysql遠(yuǎn)程訪問連接
步驟:
1.登錄mysql,初始登錄不需要密碼:
mysql -u root -p
2.切換數(shù)據(jù)庫至mysql:
use mysql;
3.修改允許外部遠(yuǎn)程訪問:
UPDATE user SET Host = '%' WHERE User= 'root' LIMIT 1;
4.輸入如下命令讓剛才設(shè)置的命令生效:
flush privileges;
5.最后使用exit退出mysql服務(wù)即可。
我們暫時不設(shè)置密碼,因為麻煩,等會登錄會報錯說:Access denied for user ‘root’@‘localhost’(using password: YES)
現(xiàn)在Linux里面的mysql沒有密碼,但是設(shè)置好了允許外部遠(yuǎn)程訪問
但是問題就來了,在測試連接時依舊連接失敗,為什么?因為端口沒有在防火墻開放。同樣,在Linux里面開好防火墻對應(yīng)端口
代碼操作:(3306為mysql端口)8080端口也一樣
firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --reload
firewall-cmd --zone=public --query-port=3306/tcp
systemctl start firewalld
修改mysql密碼
1.查看 mysql 初始的密碼策略
輸入語句
SHOW VARIABLES LIKE 'validate_password%';
2.首先需要設(shè)置密碼的驗證強(qiáng)度等級,設(shè)置 validate_password_policy 的全局參數(shù)為 LOW 即可,輸入設(shè)值語句
set global validate_password_policy=LOW;
3.當(dāng)前密碼長度為 8 ,如果不介意的話就不用修改了,按照通用的來講,設(shè)置為 6 位的密碼,設(shè)置 validate_password_length 的全局參數(shù)為 6 即可
輸入設(shè)值語句
set global validate_password_length=6;
4.現(xiàn)在可以為 mysql 設(shè)置簡單密碼了,只要滿足六位的長度即可
輸入修改語句
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
可以看到修改成功,表示密碼策略修改成功了。
修改配置文件
vi /etc/my.cnf
[client]
user=
password=
[mysqld]
########basic settings########
server-id = 11
port = 3306
user = mysql
bind_address =
autocommit = 0
character_set_server=utf8mb4
skip_name_resolve = 1
max_connections = 800
max_connect_errors = 1000
datadir = /data/mysql_data
transaction_isolation = READ-COMMITTED
explicit_defaults_for_timestamp = 1
join_buffer_size = 134217728
tmp_table_size = 67108864
tmpdir = /tmp
max_allowed_packet = 16777216
sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER"
interactive_timeout = 1800
wait_timeout = 1800
read_buffer_size = 16777216
read_rnd_buffer_size = 33554432
sort_buffer_size = 33554432
########log settings########
log_error = error.log
slow_query_log = 1
slow_query_log_file = slow.log
log_queries_not_using_indexes = 1
log_slow_admin_statements = 1
log_slow_slave_statements = 1
log_throttle_queries_not_using_indexes = 10
expire_logs_days = 90
long_query_time = 2
min_examined_row_limit = 100
########replication settings########
master_info_repository = TABLE
relay_log_info_repository = TABLE
log_bin = bin.log
sync_binlog = 1
gtid_mode = on
enforce_gtid_consistency = 1
log_slave_updates
binlog_format = row
relay_log = relay.log
relay_log_recovery = 1
binlog_gtid_simple_recovery = 1
slave_skip_errors = ddl_exist_errors
########innodb settings########
innodb_page_size = 8192
innodb_buffer_pool_size = 12G
innodb_buffer_pool_instances = 8
innodb_buffer_pool_load_at_startup = 1
innodb_buffer_pool_dump_at_shutdown = 1
innodb_lru_scan_depth = 2000
innodb_lock_wait_timeout = 5
innodb_io_capacity = 4000
innodb_io_capacity_max = 8000
innodb_flush_method = O_DIRECT
innodb_file_format = Barracuda
innodb_file_format_max = Barracuda
innodb_log_group_home_dir = /redolog/
innodb_undo_directory = /undolog/
innodb_undo_logs = 128
innodb_undo_tablespaces = 3
innodb_flush_neighbors = 1
innodb_log_file_size = 4G
innodb_log_buffer_size = 16777216
innodb_purge_threads = 4
innodb_large_prefix = 1
innodb_thread_concurrency = 64
innodb_print_all_deadlocks = 1
innodb_strict_mode = 1
innodb_sort_buffer_size = 67108864
########semi sync replication settings########
plugin_dir=/usr/local/mysql/lib/plugin
plugin_load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
loose_rpl_semi_sync_master_enabled = 1
loose_rpl_semi_sync_slave_enabled = 1
loose_rpl_semi_sync_master_timeout = 5000
[mysqld-5.7]
innodb_buffer_pool_dump_pct = 40
innodb_page_cleaners = 4
innodb_undo_log_truncate = 1
innodb_max_undo_log_size = 2G
innodb_purge_rseg_truncate_frequency = 128
binlog_gtid_simple_recovery=1
log_timestamps=system
transaction_write_set_extraction=MURMUR32
show_compatibility_56=on
CentOS 7 yum 安裝 PHP7.3 教程
CentOS 7 yum安裝 PHP7.3 教程
參考: https://www.mf8.biz/centos-rhel-install-php7-3/
1、首先安裝 EPEL 源:
yum install epel-release
安裝 REMI 源:
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
2、安裝 Yum 源管理工具:
yum install yum-utils
3、安裝 PHP7.3:
yum install -y php73-php-fpm php73-php-cli php73-php-bcmath php73-php-gd php73-php-json php73-php-mbstring php73-php-mcrypt php73-php-mysqlnd php73-php-opcache php73-php-pdo php73-php-pecl-crypto php73-php-pecl-mcrypt php73-php-pecl-geoip php73-php-recode php73-php-snmp php73-php-soap php73-php-xmll
安裝完成后最好重啟一下計算機(jī),不然有可能無法啟動php
設(shè)置開機(jī)啟動、運行服務(wù):
systemctl enable php73-php-fpm
systemctl start php73-php-fpm
設(shè)置 PHP
查找安裝包:
[root@xxx etc]# rpm -qa | grep 'php'
php73-php-cli-7.3.6-1.el7.remi.x86_64
php73-php-mbstring-7.3.6-1.el7.remi.x86_64
php73-php-pecl-mcrypt-1.0.2-1.el7.remi.x86_64
php73-runtime-2.0-1.el7.remi.x86_64
php73-php-pdo-7.3.6-1.el7.remi.x86_64
php73-php-bcmath-7.3.6-1.el7.remi.x86_64
php73-php-fpm-7.3.6-1.el7.remi.x86_64
php73-php-mysqlnd-7.3.6-1.el7.remi.x86_64
php73-php-snmp-7.3.6-1.el7.remi.x86_64
php73-php-gd-7.3.6-1.el7.remi.x86_64
php73-php-json-7.3.6-1.el7.remi.x86_64
php73-php-soap-7.3.6-1.el7.remi.x86_64
php73-php-recode-7.3.6-1.el7.remi.x86_64
php73-php-pecl-crypto-0.3.1-5.el7.remi.x86_64
php73-php-common-7.3.6-1.el7.remi.x86_64
php73-php-opcache-7.3.6-1.el7.remi.x86_64
php73-php-pecl-geoip-1.1.1-6.el7.remi.x86_64
找到:php73-php-fpm-7.3.6-1.el7.remi.x86_64安裝位置
[root@xxx etc]# rpm -ql php73-php-fpm-7.3.6-1.el7.remi.x86_64
/etc/logrotate.d/php73-php-fpm
/etc/opt/remi/php73/php-fpm.conf
/etc/opt/remi/php73/php-fpm.d
/etc/opt/remi/php73/php-fpm.d/www.conf
/etc/opt/remi/php73/sysconfig/php-fpm
/etc/systemd/system/php73-php-fpm.service.d
/opt/remi/php73/root/usr/sbin/php-fpm
/opt/remi/php73/root/usr/share/doc/php73-php-fpm-7.3.6
/opt/remi/php73/root/usr/share/doc/php73-php-fpm-7.3.6/php-fpm.conf.default
/opt/remi/php73/root/usr/share/doc/php73-php-fpm-7.3.6/www.conf.default
/opt/remi/php73/root/usr/share/fpm
/opt/remi/php73/root/usr/share/fpm/status.html
/opt/remi/php73/root/usr/share/licenses/php73-php-fpm-7.3.6
/opt/remi/php73/root/usr/share/licenses/php73-php-fpm-7.3.6/fpm_LICENSE
/opt/remi/php73/root/usr/share/man/man8/php-fpm.8.gz
/usr/lib/systemd/system/php73-php-fpm.service
/var/opt/remi/php73/lib/php/opcache
/var/opt/remi/php73/lib/php/session
/var/opt/remi/php73/lib/php/wsdlcache
/var/opt/remi/php73/log/php-fpm
/var/opt/remi/php73/run/php-fpm
查找php.ini位置:
[root@xxx etc]# find /etc/opt/remi/php73 -name php.ini
/etc/opt/remi/php73/php.ini
編輯/etc/opt/remi/php73/php.ini替換換 ;cgi.fix_pathinfo=1 為 cgi.fix_pathinfo=0 快捷命令:
sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/' /etc/opt/remi/php73/php.ini
重啟php73-php-fpm
systemctl restart php73-php-fpm
更多操作:
systemctl restart php73-php-fpm #重啟
systemctl start php73-php-fpm #啟動
systemctl stop php73-php-fpm #關(guān)閉
systemctl status php73-php-fpm #檢查狀態(tài)
查看 PHP
驗證一下是否安裝成功:
root@mf88.biz-service:~# php73 -v
PHP 7.3.0-1+(cli) (built: Dec 6 2018 20:24:55) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.0-dev, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.0-1+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies
更新 PHP
運行下面的命令系統(tǒng)就會更新所有可以更新的軟件包括 PHP
yum update
安裝更多組件
上面的一條命令安裝 PHP 只是安裝了部分 PHP 拓展,更多的軟件可見:
# yum search php73
Updating Subscription Management repositories.
Last metadata expiration check: 0:27:54 ago on Wed 15 May 2019 10:39:52 AM EDT.
============================================================================================= Name Exactly Matched: php73 ==============================================================================================
php73.x86_64 : Package that installs PHP 7.3
php73.x86_64 : Package that installs PHP 7.3
============================================================================================ Name & Summary Matched: php73 =============================================================================================
php73-syspaths.x86_64 : System-wide wrappers for the php73 package
php73-syspaths.x86_64 : System-wide wrappers for the php73 package
php73-scldevel.x86_64 : Package shipping development files for php73
php73-scldevel.x86_64 : Package shipping development files for php73
php73-php-zstd-devel.x86_64 : php73-php-zstd developer files (header)
php73-runtime.x86_64 : Package that handles php73 Software Collection.
php73-runtime.x86_64 : Package that handles php73 Software Collection.
php73-runtime.x86_64 : Package that handles php73 Software Collection.
php73-php-pecl-psr-devel.x86_64 : php73-php-pecl-psr developer files (header)
php73-php-pecl-psr-devel.x86_64 : php73-php-pecl-psr developer files (header)
php73-php-pecl-raphf-devel.x86_64 : php73-php-pecl-raphf developer files (header)
php73-php-pecl-raphf-devel.x86_64 : php73-php-pecl-raphf developer files (header)
php73-php-pecl-propro-devel.x86_64 : php73-php-pecl-propro developer files (header)
php73-php-pecl-yaconf-devel.x86_64 : php73-php-pecl-yaconf developer files (header)
php73-php-pecl-propro-devel.x86_64 : php73-php-pecl-propro developer files (header)
php73-php-pecl-yaconf-devel.x86_64 : php73-php-pecl-yaconf developer files (header)
php73-php-pecl-xmldiff-devel.x86_64 : php73-php-pecl-xmldiff developer files (header)
php73-php-pecl-swoole4-devel.x86_64 : php73-php-pecl-swoole4 developer files (header)
php73-php-pecl-xmldiff-devel.x86_64 : php73-php-pecl-xmldiff developer files (header)
php73-php-zephir-parser-devel.x86_64 : php73-php-zephir-parser developer files (headers)
php73-php-zephir-parser-devel.x86_64 : php73-php-zephir-parser developer files (headers)
php73-php-pecl-handlebars-devel.x86_64 : php73-php-pecl-handlebars developer files (header)
================================================================================================= Name Matched: php73 ==================================================================================================
php73-php.x86_64 : PHP scripting language for creating dynamic web sites
php73-php.x86_64 : PHP scripting language for creating dynamic web sites
php73-build.x86_64 : Package shipping basic build configuration