国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

nsinit:監(jiān)控 RHEL/Fedora 上 Docker 的每個(gè)容器資源

ls0609 / 2871人閱讀

摘要:它也給它們帶來了內(nèi)核維護(hù)的每個(gè)的計(jì)數(shù)器。管理員期望每個(gè)容器的資源計(jì)數(shù)器也在里面。在的最新版本,工程師已經(jīng)開始構(gòu)建并發(fā)布一個(gè)名為的二進(jìn)制包,它目前是的一部分,它是的。因此,像這樣做這些文件時(shí)可讀的文本格式,盡管不是人類可讀的。

  

注:該文作者是 Jeremy Eder,原文地址為 nsinit: per-container resource monitoring of Docker containers on RHEL/Fedora

應(yīng)用資源計(jì)數(shù)實(shí)例

基于 *NIX 系統(tǒng)的管理員習(xí)慣于查看系統(tǒng)各處的資源計(jì)數(shù)器,在某些地方,像 /proc, /sys 以及最近的 /cgroup 或是 /sys/fs/cgroup。RHEL6 版本廣泛的采用了 Control Groups (cgroups),cgroups 已經(jīng)連續(xù)穩(wěn)定的運(yùn)行了幾年,并且通過審查在 Fedora 版本中也是一樣穩(wěn)定的。

實(shí)現(xiàn) cgroups 不僅僅是讓系統(tǒng)管理員在多個(gè)邏輯分區(qū)中劃分一個(gè)獨(dú)立的 OS。它也給它們帶來了內(nèi)核維護(hù)的每個(gè) cgroup 的計(jì)數(shù)器。除了常用的用例,比如服務(wù)質(zhì)量保障或是收費(fèi)。

Docker 的獨(dú)特轉(zhuǎn)折

隨著采用 Linux 容器技術(shù)的數(shù)據(jù)提升(Docker 是把一些成熟技術(shù)封裝進(jìn)一個(gè)令人欽佩的可用性包中)。管理員期望每個(gè)容器的資源計(jì)數(shù)器也在里面。非常幸運(yùn)的是,因?yàn)?Docker 嚴(yán)重依賴 Cgroups,很多系統(tǒng)管理員熟悉的計(jì)數(shù)器是可以使用的。他們可能受益于一些可用性改進(jìn)。但是如果你通過 cgroup VFS 來探索,你可以非常容易的挖掘出它們。

  

我應(yīng)該注意到某些層次結(jié)構(gòu)和命令在 RHEL 和 Fedora 是特定的。因此你或許需要為你的系統(tǒng)定制某些路徑或包名。

在 Fedora 的最新版本,工程師已經(jīng)開始構(gòu)建并發(fā)布一個(gè)名為 “nsinit” 的二進(jìn)制包,它目前是 libcontainer 的一部分,它是 Docker 的 execution driver。 nsinit 是一個(gè)非常強(qiáng)大的 debugging 工具,系統(tǒng)管理員不僅僅可以看到每個(gè)容器的資源計(jì)數(shù)器,還可以看到容器的運(yùn)行期配置和“跳進(jìn)”容器。

怎樣使用 nsinit 的功能

首先你應(yīng)該從 Fedora 獲取一個(gè)副本,或者構(gòu)建一個(gè)你自己的。自己構(gòu)建是一項(xiàng)沒有必要復(fù)雜操作。因此我們非常高興他們開始為 Fedora 構(gòu)建它以至于你可以這樣做:

# yum install --enablerepo=updates-testing golang-github-docker-libcontainer

$ rpm -qf `which nsinit`
golang-github-docker-libcontainer-1.1.0-7.git29363e2.fc20.x86_64

# nsinit
NAME:
 nsinit - A new cli application

USAGE:
 nsinit [global options] command [command options] [arguments...]

VERSION:
 0.1

COMMANDS:
 exec 在一個(gè)容器中執(zhí)行一個(gè)新命令
 init 在命名空間運(yùn)行初始化進(jìn)程
 stats 顯示容器的統(tǒng)計(jì)信息
 config 顯示容器的配置信息
 nsenter 初始化進(jìn)程用于進(jìn)入一個(gè)已經(jīng)存在的命名空間
 pause 暫停容器的進(jìn)程
 unpause 解除暫停的容器進(jìn)程
 help, h 顯示命令列表或是一個(gè)命令的幫助信息

我覆蓋測試了 nsinit 的大部分有用的功能;config, stats 和 exec。

  

注意:nsinit 當(dāng)前要求你在容器的狀態(tài)目錄運(yùn)行,因此到目前為止,我們假設(shè)你的所有運(yùn)行的命令都在那里。

因此,像這樣做:

# docker ps -q
4caad549289

# CID=`docker ps -q`
# cd /var/lib/docker/execdriver/native/$CID*
# ll
total 8
-rw-r-xr-x. 1 root root 3826 Sep  1 20:11 container.json
-rw-r--r--. 1 root root  114 Sep  1 20:11 state.json

這些文件時(shí)可讀的文本格式,盡管不是人類可讀的。nsinit 可以完美的打印這些文件。比如,一個(gè) nsinit 配置文件的刪減版本輸出(完整的版本在這里)。注意,你可以通過使用 docker inspect 獲取更多的這些信息(但不是全部)。

# nsinit config

{
 "mount_config": {
 "mounts": [
 {
 "type": "bind",
 "source": "/var/lib/docker/init/dockerinit-1.1.1",
 "destination": "/.dockerinit",
 "private": true
 },
 {
 "type": "bind",
 "source": "/etc/resolv.conf",
 "destination": "/etc/resolv.conf",
 "private": true
 },

 "mount_label": "system_u:object_r:svirt_sandbox_file_t:s0:c631,c744"
 },
 "hostname": "4caad5492898",
 "environment": [
 "HOME=/",
 "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/goroot/bin:/gopath/bin",
 "HOSTNAME=4caad5492898",
 "DEBIAN_FRONTEND=noninteractive",
 "GOROOT=/goroot",
 "GOPATH=/gopath"
 ],
 "namespaces": {
 "NEWIPC": true,
 "NEWNET": true,
 "NEWNS": true,
 "NEWPID": true,
 "NEWUTS": true
 },
 "capabilities": [
 "CHOWN",
 "DAC_OVERRIDE",
 "FOWNER",
 "MKNOD",
 "NET_RAW",
 "SETGID",
 "SETUID",
 "SETFCAP",
 "SETPCAP",
 "NET_BIND_SERVICE",
 "SYS_CHROOT",
 "KILL"
 ],
 "networks": [
 {
 "type": "loopback",
 "address": "127.0.0.1/0",
 "gateway": "localhost",
 "mtu": 1500
 },
 {
 "type": "veth",
 "bridge": "docker0",
 "veth_prefix": "veth",
 "address": "172.17.0.6/16",
 "gateway": "172.17.42.1",
 "mtu": 1500
 }
 ],
 "cgroups": {
 "name": "4caad5492898f1a4230353de15e2acfc05809c69d05ec7289c6a14ef6d57b195",
 "parent": "docker",
 "allowed_devices": [

 "process_label": "system_u:system_r:svirt_lxc_net_t:s0:c631,c744",
 "restrict_sys": true
}

統(tǒng)計(jì)模式更有趣,nsinit 讀取 cgroup 中 CPU 和 memory 使用計(jì)數(shù)器。網(wǎng)絡(luò)統(tǒng)計(jì)信息來自于 /sys/class/net//statistics。從這里你可以看到你的應(yīng)用使用了多少內(nèi)存,圖表在增長,觀察 CPU 使用率,用其他工具交叉檢查數(shù)據(jù)等等。

{
 "network_stats": {
 "rx_bytes": 180568,
 "rx_packets": 89,
 "tx_bytes": 28316,
 "tx_packets": 92
 },
 "cgroup_stats": {
 "cpu_stats": {
 "cpu_usage": {
 "total_usage": 985559718,
 "percpu_usage": [
 43613750,
 79789656,
 132486590,
 78759739,
 49063680,
 60703059,
 36277458,
 35919550,
 36329424,
 20096103,
 8148695,
 25279255,
 0,
 0,
 0,
 6144761,
 14814784,
 2612915,
 95162480,
 33853872,
 114861235,
 71115914,
 6533416,
 33993382
 ],
 "usage_in_kernelmode": 510000000,
 "usage_in_usermode": 440000000
 },
 "throlling_data": {}
 },
 "memory_stats": {
 "usage": 27992064,
 "max_usage": 29020160,
 "stats": {
 "active_anon": 4411392,
 "active_file": 3149824,
 "cache": 22278144,
 "hierarchical_memory_limit": 9223372036854775807,
 "hierarchical_memsw_limit": 9223372036854775807,
 "inactive_anon": 0,
 "inactive_file": 19128320,
 "mapped_file": 3723264,
 "pgfault": 94783,
 "pgmajfault": 25,
 "pgpgin": 19919,
 "pgpgout": 13902,
 "rss": 4460544,
 "rss_huge": 2097152,
 "swap": 0,
 "total_active_anon": 4411392,
 "total_active_file": 3149824,
 "total_cache": 22278144,
 "total_inactive_anon": 0,
 "total_inactive_file": 19128320,
 "total_mapped_file": 3723264,
 "total_pgfault": 94783,
 "total_pgmajfault": 25,
 "total_pgpgin": 19919,
 "total_pgpgout": 13902,
 "total_rss": 4460544,
 "total_rss_huge": 2097152,
 "total_swap": 0,
 "total_unevictable": 0,
 "unevictable": 0
 },
 "failcnt": 0
 },
 "blkio_stats": {}
 }
}

nsenter 通常用于在一個(gè)已經(jīng)存在的容器中運(yùn)行一個(gè)命令,像這樣:

# nsenter -m -u -n -i -p -t 19119 bash

19119 是容器中一個(gè)進(jìn)程的 PID。丑陋啊,nsinit 使得這個(gè)稍微容易些(恕我直言)。

# nsinit exec cat /etc/hostname
4caad549289
# nsinit exec bash
bash-4.2# exit

當(dāng)你在調(diào)試每個(gè)容器的 QoS 實(shí)現(xiàn)時(shí),nsinit 的功能和統(tǒng)計(jì)信息報(bào)告是非常有用的。實(shí)現(xiàn)/校驗(yàn) 資源天花板/保障,對(duì)你的容器正在做的事情有一個(gè)完全的了解。

這個(gè)區(qū)域是在快速移動(dòng)的。。。我想介紹另外兩個(gè)工具,最后應(yīng)該比 nsinit 有更廣闊的適用性。

Google 已經(jīng)發(fā)布了一個(gè)叫做 cAdvisor 的項(xiàng)目,提供了一個(gè)基本的 web 接口,但是更重要的 API 是給上一層(比如 Kubernetes)使用了。

Red Hat 提議容器支持 Performance Co-Pilot,一個(gè)在 RHEL7 中系統(tǒng)級(jí)別的性能監(jiān)控工具。隨著這個(gè)目標(biāo)教授了很多其他關(guān)于容器的工具。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/26336.html

相關(guān)文章

  • 幾種 Docker 監(jiān)控工具對(duì)比

    摘要:在我們列舉的幾個(gè)監(jiān)控的服務(wù)或平臺(tái)中,這是唯一一款國內(nèi)產(chǎn)品。也是一款付費(fèi)監(jiān)控解決方案,計(jì)劃收費(fèi)方案是美分小時(shí)。同樣也支持監(jiān)控,還包括對(duì)容器級(jí)事件的監(jiān)測停止開始等等和管理容器產(chǎn)生的日志。由于是一個(gè)監(jiān)控方案,相對(duì)來說它的安裝和部署都比較簡單。 輕量級(jí)虛擬化容器 Docker,自發(fā)布以來便廣受業(yè)界關(guān)注,在開源界和企業(yè)界掀起了一陣風(fēng)。Docker 容器相對(duì)于 VM 有以下幾個(gè)優(yōu)勢:啟動(dòng)速度快;資...

    張春雷 評(píng)論0 收藏0
  • Docker 監(jiān)控實(shí)戰(zhàn)

    摘要:監(jiān)控告警是運(yùn)營系統(tǒng)最核心的功能之一,騰訊內(nèi)部有一套很成熟的監(jiān)控告警平臺(tái),而且開發(fā)運(yùn)維同學(xué)已經(jīng)習(xí)慣這套平臺(tái),如果我們針對(duì)容器再開發(fā)一個(gè)監(jiān)控告警平臺(tái),會(huì)花費(fèi)很多精力,而且沒有太大的意義。也是一款付費(fèi)監(jiān)控解決方案,計(jì)劃收費(fèi)方案是美分小時(shí)。 如今,越來越多的公司開始使用 Docker 了,現(xiàn)在來給大家看幾組數(shù)據(jù): 2 / 3 的公司在嘗試了 Docker 后最終使用了它 也就是說 Docker...

    william 評(píng)論0 收藏0
  • 想用好 Docker ,你不能錯(cuò)過這些

    摘要:阿里云的容器服務(wù)采用的是的模式,集成了阿里云的一些基礎(chǔ)服務(wù)日志監(jiān)控存儲(chǔ)等,在調(diào)度等方面做了很多優(yōu)化,你也可以使用看看。容器服務(wù)提供了針對(duì)阿里云的的插件,容器之間的數(shù)據(jù)包不需要封裝操作,性能幾乎和內(nèi)兩臺(tái)通信性能一樣。 Docker 引起了交付方式的變革,從交付代碼和文檔變成交付Docker鏡像乃至交付編排模板。容器服務(wù)讓我們可以專注應(yīng)用本身功能的開發(fā),而無需關(guān)注基礎(chǔ)設(shè)施、應(yīng)用部署、管理等...

    Elle 評(píng)論0 收藏0
  • 想用好 Docker ,你不能錯(cuò)過這些

    摘要:阿里云的容器服務(wù)采用的是的模式,集成了阿里云的一些基礎(chǔ)服務(wù)日志監(jiān)控存儲(chǔ)等,在調(diào)度等方面做了很多優(yōu)化,你也可以使用看看。容器服務(wù)提供了針對(duì)阿里云的的插件,容器之間的數(shù)據(jù)包不需要封裝操作,性能幾乎和內(nèi)兩臺(tái)通信性能一樣。 Docker 引起了交付方式的變革,從交付代碼和文檔變成交付Docker鏡像乃至交付編排模板。容器服務(wù)讓我們可以專注應(yīng)用本身功能的開發(fā),而無需關(guān)注基礎(chǔ)設(shè)施、應(yīng)用部署、管理等...

    blankyao 評(píng)論0 收藏0
  • 解惑|你是否為容器監(jiān)控操碎了心?

    摘要:系統(tǒng)監(jiān)控容器數(shù)量容器監(jiān)控應(yīng)用監(jiān)控每個(gè)主機(jī)監(jiān)控?cái)?shù)量主機(jī)監(jiān)控項(xiàng)以主機(jī)為中心的監(jiān)控體系容器作為主機(jī),以主機(jī)為中心將有兩個(gè)問題無法解決容器作為主機(jī),因?yàn)槿萜魃芷诜浅6虝海员O(jiān)控系統(tǒng)會(huì)認(rèn)為一半主機(jī)在頻發(fā)故障。 導(dǎo)讀:容器對(duì)于物理機(jī)和虛擬機(jī),單從監(jiān)控上看就不是一個(gè)數(shù)量級(jí)的,但監(jiān)控又是至關(guān)重要的,沒有監(jiān)控如同閉眼開車。 本次分享邀請(qǐng)數(shù)人云運(yùn)維總監(jiān)龐錚,本文將從以下幾個(gè)方面聊聊容器監(jiān)控的相關(guān)思考...

    韓冰 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<