日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
最詳細(xì)的CentOS6與7對(duì)比(二):服務(wù)管理對(duì)比

本主題將從3個(gè)角度進(jìn)行對(duì)比

成都創(chuàng)新互聯(lián)為客戶提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、程序、域名、空間一條龍服務(wù),提供基于WEB的系統(tǒng)開(kāi)發(fā). 服務(wù)項(xiàng)目涵蓋了網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站程序開(kāi)發(fā)、WEB系統(tǒng)開(kāi)發(fā)、微信二次開(kāi)發(fā)、手機(jī)網(wǎng)站開(kāi)發(fā)等網(wǎng)站方面業(yè)務(wù)。

  1. 常見(jiàn)設(shè)置(centos 6 vs CentOS 7)
  2. 服務(wù)管理(Sysvinit vs Upstart vs Systemd)
  3. 性能測(cè)試(cpu/mem/io/oltp)

本文為第二部分:服務(wù)管理的對(duì)比

1. sysvinit、upstart、systemd簡(jiǎn)介

/ CentOS 5 CentOS 6 CentOS 7 備注
sysvinit 第一代,傳統(tǒng),兼容最多(/etc/init.d/、/etc/rc.X)
upstart 第二代,形似systemd雛形(/etc/init)
systemd 第三代,配合cgroup,systemd完全接管整個(gè)系統(tǒng)(/usr/lib/systemd)

2. sysvinit、upstart、systemd常用命令

動(dòng)作 sysvinit upstart systemd
查看 service mytest status initctl status mytest systemctl status mytest.service
啟動(dòng) service mytest start initctl start mytest systemctl start mytest.service
關(guān)閉 service mytest stop initctl stop mytest systemctl stop mytest.service
強(qiáng)殺進(jìn)程 kill -9 PID kill -9 PID systemctl kill mytest.service --signal=9
重啟 service mytest restart initctl restart mytest systemctl restart mytest.service
重載 service mytest reload initctl reload mytest systemctl reload mytest.service
開(kāi)機(jī)啟動(dòng) chkconfig mytest on /etc/init/mytest.conf里配置start on runlevel [3] systemctl enable mytest.service

3. runlevel運(yùn)行級(jí)別

運(yùn)行級(jí)別 CentOS 6 CentOS 7
0 halt runlevel0.target -> poweroff.target
1 Single user mode runlevel1.target -> rescue.target
2 Multiuser, without NFS runlevel2.target -> multi-user.target
3 Full multiuser mode runlevel3.target -> multi-user.target
4 unused runlevel4.target -> multi-user.target
5 X11 runlevel5.target -> graphical.target
6 reboot runlevel6.target -> reboot.target
查看 cat /etc/inittab systemctl get-default
開(kāi)機(jī)生效 編輯/etc/inittab systemctl set-default multi-user.target
立即切換 init 5 systemctl isolate graphical.target

4. 日志查詢

CentOS 6: 手工在/var/log/messages、/var/log/dmesg、/var/log/secure中g(shù)rep,麻煩且效率低

CentOS 7: 統(tǒng)一使用journalctl,可以使用多個(gè)因素匹配,比如時(shí)間段、服務(wù)名、日志級(jí)別等等。另外,systemd日志默認(rèn)經(jīng)過(guò)壓縮,是二進(jìn)制文件,無(wú)法直接查看

journalctl常用命令 作用 CentOS 6比
journalctl 所有日志,包含系統(tǒng)、內(nèi)核等等 手動(dòng)在對(duì)應(yīng)日志文件中g(shù)rep
journalctl --dmesg 查看當(dāng)前開(kāi)機(jī)后的內(nèi)核日志 dmesg
journalctl --boot 查看當(dāng)前開(kāi)機(jī)后的日志 先查當(dāng)前開(kāi)機(jī)啟動(dòng)時(shí)間,然后cat /var/log/...
journalctl --boot=-1 查看上一次啟動(dòng)的日志 查詢上次開(kāi)機(jī)到當(dāng)前開(kāi)機(jī)之間時(shí)間,然后cat /var/log/...
journalctl --since="2018-08-01 12:00:00" 查看從指定時(shí)間開(kāi)始到當(dāng)前的日志 手動(dòng)在日志里grep
journalctl --since=yesterday --until=today 查看昨天0-24點(diǎn)的日志 手動(dòng)在日志里grep
journalctl -n 20 查看最后10行 tail -n 20
journalctl -f 實(shí)時(shí)滾動(dòng)顯示最新日志 tail -f
journalctl -e 直接翻到最后 tail
journalctl -u mytest.service 查看指定服務(wù)日志 先查詢?nèi)罩颈4媛窂剑缓笤賑at查看
journalctl -p 0 查看指定日志級(jí)別的日志,日志級(jí)別從0到7 通過(guò)syslog將不同級(jí)別的日志放到不同文件中
journalctl -u mytest.service -o json-pretty或-o verbose 查看每條日志詳細(xì)信息(包含元信息) 無(wú)
journalctl --disk-usage 查看日志所在的磁盤(pán)空間 du -shx /var/log/messages等

5. 實(shí)現(xiàn)守護(hù)進(jìn)程

CentOS 6

  • sysvinit需要自行實(shí)現(xiàn)
    • nohup &
    • screen
    • supervisor
  • upstart和systemd類似,將程序運(yùn)行在前臺(tái)即可

CentOS 7

  • 由systemd啟動(dòng),將程序運(yùn)行在前臺(tái)即可

6. sysvinit、upstart、systemd例子

sysvinit

cat > /etc/init.d/mytest <

upstart

cat > /etc/init/mytest.conf <

systemd

cat > /usr/lib/systemd/system/mytest.service <

7. PID管理

  • sysvinit: 需要生成PID文件,用于后期關(guān)閉、重啟等使用
  • upstart: 無(wú)需PID文件,upstart會(huì)記錄主進(jìn)程ID,子進(jìn)程ID沒(méi)有記錄
  • systemd: 無(wú)需PID文件,所有進(jìn)程ID由cgroup統(tǒng)一接管

8. 內(nèi)置的資源限制

CentOS 6: 除了ulimit,沒(méi)有其他限制進(jìn)程資源的簡(jiǎn)便方法
CentOS 7: 除了ulimit,還支持部分cgroup限制,可對(duì)進(jìn)程做內(nèi)存限制和cpu資源限制等

[Service]
ExecStart=...
MemoryLimit=500M
CPUShares=100

另外,CentOS 7可以通過(guò)systemd-cgtop命令查看cgroup里的性能數(shù)據(jù)

9. 服務(wù)異常自動(dòng)重啟

upstart

start on runlevel [3]

description "mytest"

exec /root/mytest.sh
post-stop exec sleep 5
respawn
respawn limit unlimited

systemd

[Unit]
Description=mytest
 [Service]
Type=simple
ExecStart=/root/mytest.sh
Restart=always
RestartSec=5
StartLimitInterval=0
 [Install]
WantedBy=multi-user.target

上面2種方式均表示,無(wú)限次自動(dòng)重啟,每次重啟前等待5秒

10. 寫(xiě)日志方式

CentOS 6: 自行輸出到文件中,或通過(guò)syslog記錄(如logger命令)

CentOS 7: 只要程序由systemd啟動(dòng),只需將輸出日志到標(biāo)準(zhǔn)輸出或標(biāo)準(zhǔn)錯(cuò)誤

  • 建議centos7只將應(yīng)用程序的一些元信息輸出到標(biāo)準(zhǔn)輸出或標(biāo)準(zhǔn)錯(cuò)誤,比如啟動(dòng)成功、啟動(dòng)失敗等等
  • 不建議將業(yè)務(wù)日志輸出到j(luò)ournal。因?yàn)閖ournal中所有日志都存在一個(gè)文件中,會(huì)導(dǎo)致2個(gè)問(wèn)題:
    • 如果沒(méi)有做日志持久化,則默認(rèn)存在內(nèi)存中,會(huì)導(dǎo)致最多一半的內(nèi)存被占用
    • 存儲(chǔ)量很大,會(huì)導(dǎo)致查詢其他日志很耗時(shí)
  • 解決辦法:輸出到syslog,[Service]支持StandardOutput=syslog

11. 指定每條日志級(jí)別

CentOS 6: 通過(guò)syslog將不同級(jí)別的日志輸出到不同文件

CentOS 7: 只需在輸出的每一行開(kāi)頭加<日志級(jí)別>,比如

echo '<0>hello, emerg'
echo '<1>hello, alert'
echo '<2>hello, crit'
echo '<3>hello, err'
echo '<4>hello, warning'
echo '<5>hello, notice'
echo '<6>hello, info'
echo '<7>hello, debug'

12. systemd日志永久保存

systemd日志默認(rèn)保存在內(nèi)存中,因此當(dāng)服務(wù)器重啟后,就無(wú)法通過(guò)journalctl來(lái)查看之前的日志,解決方法:

mkdir -p /var/log/journal
systemctl restart systemd-journald

網(wǎng)站欄目:最詳細(xì)的CentOS6與7對(duì)比(二):服務(wù)管理對(duì)比
鏈接URL:http://www.5511xx.com/article/djpssoi.html