vzubc v.3
2011-05-21 05:40:43
This is a third version of vzubc script. I kinda start to like it, it is really helpful. I will ...
+ развернуть текст сохранённая копия
This is a third version of vzubc script. I kinda start to like it, it is really helpful. I will probably finish the TODO, write the man page and will include the tool to vzctl.
The script parses /proc/bc/resources (or /proc/user_beancounters) and outputs it in a more human-readable format.
FEATURES:
1. Held, maxheld, barrier, limit, and fail counter are shown for every beancounter.
2. Values that are in pages are converted to bytes
3. Long values are converted to kilo-, mega-, gigabytes etc.
4. For held and maxheld it shows how close the value to the barrier and the limit, in per cent
5. Can be used both inside CT and on HN
6. User can specify CTIDs or CT names to output info about
7. Optional top-like autoupdate mode (using "watch")
8. Optional "relative failcnt" mode (show increase in UBC fail counters since last run)
9. Optional quiet mode (only shows "worth to look at" UBCs (ie ones close to limits and/or with failcnt))
CHANGES from v.2:
* Added lots of options/features (watch mode, relative failcnt, quiet), TODO list is times
Script: vzubc
Example output:
vzubc -c 111 -q
-------------------------------------------------------------------
CT 111 | HELD Bar% Lim%| MAXH Bar% Lim%| BAR | LIM |+FAIL
-------------+-----------------+-----------------+-----+-----+-----
kmemsize|13.6M 99% 96%|13.7M 100% 97%|13.7M|14.1M| 19
numproc| 170 70% 70%| 172 71% 71%| 240 | 240 | -
-------------------------------------------------------------------
TODO:
* colors
* recognize vSwap
* add UBC consistency check a la vzcfgvalidate (helpful for CT owner!)
* rewrite in C??
Тэги:
homemade,
openvz,
work
vzubc v.2
2011-05-20 14:21:39
This is a second version of vzubc script. The script is written in AWK, it parses /proc/ ...
+ развернуть текст сохранённая копия
This is a second version of vzubc script. The script is written in AWK, it parses /proc/user_beancounters and tries to output it in a more human-readable format.
FEATURES:
1. Held, maxheld, barrier, limit, and fail counter are shown for every beancounter.
2. Values that are in pages are converted to bytes
3. Long values are converted to kilo-, mega-, gigabytes etc.
4. For held and maxheld it shows how close the value to the barrier and the limit, in per cent
5. Can be used both inside CT and on HN
CHANGES from v.1:
* Added barrier and limit display
* Added percentage of held/maxheld to limit (it was only for barrier)
* More proper long values display, now with decimal point if possible (similar to ls -lh)
* ASCII table like output
* Zeroes and 'unlimited' are shown as '-'
TODO:
* colors
* recognize vSwap
* use /proc/bc/*/resources if available
* quieter mode (only show values close to limits and/or with failcnt > 0)
* save failcnt and show the difference from the prev. run
* add interactive mode (top-like) using watch
* add UBC consistency check a la vzcfgvalidate (helpful for CT owner!)
* rewrite in C??
Script source:
#!/bin/sh
f=${1:-/proc/user_beancounters}
cat $f | LANG=C awk '
function hr(res, v) {
if ((v == 9223372036854775807) || (v == 2147483647) || (v == 0))
return "- ";
i=1
if ((res ~ /pages$/) && (v != 0)) {
v = v*4; i++
}
while (v >= 1024) {
v=v/1024
i++
}
fmt="%d%c"
if (v < 100)
fmt="%.3g%c"
return sprintf(fmt, v, substr(" KMGTPEZY", i, 1))
}
function dp(p, d) {
if ((d == 0) || (d == 9223372036854775807) || (d == 2147483647))
return "- "
r = sprintf("%.2f", p / d * 100);
fmt="%d"
if (r < 10)
fmt="%.2g"
r = sprintf(fmt, r)
if (r == 0)
return "- "
return r "%"
}
/^Version: / {
if ($2 != "2.5") {
print "Error: unknown version:",
$2 > "/dev/stderr"
exit 1
}
next
}
/^[[:space:]]*uid / {
next
}
/^[[:space:]]*dummy/ {
id=""
next
}
/^[[:space:]]*[0-9]+:/ {
bcid=strtonum($1)
printf "-------------------------------------------------------------------\n"
printf "CT %-10s| HELD Bar%% Lim%%| MAXH Bar%% Lim%%| BAR | LIM | FAIL\n", bcid
printf "-------------+-----------------+-----------------+-----+-----+-----\n"
id=$2
held=$3
maxheld=$4
barrier=$5
limit=$6
failcnt=$7
}
/^[[:space:]]*[a-z]+/ {
id=$1
held=$2
maxheld=$3
barrier=$4
limit=$5
failcnt=$6
}
(id!="") {
printf "%13s|%5s %5s %5s|%5s %5s %5s|%5s|%5s| %5s\n",
id,
hr(id, held), dp(held, barrier), dp(held, limit),
hr(id, maxheld), dp(maxheld, barrier), dp(maxheld, limit),
hr(id, barrier), hr(id, limit), hr(id, failcnt)
id=""
}
'
Example output:
-------------------------------------------------------------------
CT 60 | HELD Bar% Lim%| MAXH Bar% Lim%| BAR | LIM | FAIL
-------------+-----------------+-----------------+-----+-----+-----
kmemsize| 933K 5% 5%|1.92M 12% 11%|15.8M|16.8M| -
lockedpages| - - - | - - - | 128K| 128K| -
privvmpages|4.15M 1.1% 0.99%|10.4M 2% 2%| 384M| 418M| -
shmpages| - - - | - - - | 32M| 32M| -
numproc| 7 5% 5%| 17 13% 13%| 130 | 130 | -
physpages|2.63M - - |7.86M - - | - | - | -
vmguarpages| - - - | - - - | 24M| - | -
oomguarpages|2.63M 10% - |7.86M 32% - | 24M| - | -
numtcpsock| 2 2% 2%| 2 2% 2%| 80 | 80 | -
numflock| 2 2% 1.8%| 3 3% 2%| 100 | 110 | -
numpty| - - - | - - - | 16 | 16 | -
numsiginfo| - - - | 2 0.78% 0.78%| 256 | 256 | -
tcpsndbuf| - - - | - - - | 312K| 512K| -
tcprcvbuf| - - - | - - - | 312K| 512K| -
othersockbuf|2.27K 0.88% 0.34%|8.12K 3% 1.2%| 258K| 658K| -
dgramrcvbuf| - - - |8.27K 6% 6%| 129K| 129K| -
numothersock| 3 3% 3%| 10 12% 12%| 80 | 80 | -
dcachesize| - - - | - - - | 2M| 3M| -
numfile| 169 2% 2%| 290 3% 3%| 8K| 8K| -
numiptent| - - - | - - - | 128 | 128 | -
-------------------------------------------------------------------
CT 0 | HELD Bar% Lim%| MAXH Bar% Lim%| BAR | LIM | FAIL
-------------+-----------------+-----------------+-----+-----+-----
kmemsize|3.69M - - |4.72M - - | - | - | -
lockedpages| - - - |29.4M - - | - | - | -
privvmpages|15.7M - - |61.5M - - | - | - | -
shmpages|2.56M - - |2.62M - - | - | - | -
numproc| 77 - - | 86 - - | - | - | -
physpages| 8.8M - - |16.3M - - | - | - | -
vmguarpages| - - - | - - - | - | - | -
oomguarpages| 8.8M - - |16.3M - - | - | - | -
numtcpsock| 3 - - | 5 - - | - | - | -
numflock| 1 - - | 2 - - | - | - | -
numpty| 1 - - | 1 - - | - | - | -
numsiginfo| - - - | 2 - - | - | - | -
tcpsndbuf|81.7K - - |81.7K - - | - | - | -
tcprcvbuf| 48K - - | - - - | - | - | -
othersockbuf|31.7K - - |50.8K - - | - | - | -
dgramrcvbuf| - - - |10.8K - - | - | - | -
numothersock| 30 - - | 34 - - | - | - | -
dcachesize| - - - | - - - | - | - | -
numfile|1.18K - - |1.29K - - | - | - | -
numiptent| - - - | - - - | - | - | -
Тэги:
homemade,
openvz,
work
May 21, 2011
2011-05-18 16:26:56
И кстати, дорогие мои.
Пора срочно признаваться в тайной любви, досказывать ...
+ развернуть текст сохранённая копия
И кстати, дорогие мои.
Пора срочно признаваться в тайной любви, досказывать недосказанное и доделывать недоделанное.
Ну и вообще, и жить торопиться, и чувствовать спешить.
Потому что дяденька Ховард Кэмпинг утверждает: "On May 21, there's going to be a terrific earthquake, way, way greater than anything else the earth has ever experienced and that will be the beginning of judgment day. The rest of the world will know instantly that judgment day has begun because all the earthquake sensors will pick that up instantly and they will be able to, until it comes to 6 p.m. on May 21 in their city, they will be able to witness what has happened there."
Ну и песенка в тему:
Тэги:
life,
work,
youtube
Эффективные решения для изучения иностранных языков
2011-05-17 18:18:40
Знание иностранных языков в современном мире не просто полезно, но и необходимо. Особенно это ...
+ развернуть текст сохранённая копия
Знание иностранных языков в современном мире не просто полезно, но и необходимо. Особенно это касается самого распространенного и популярного сегодня языка - английского. Повсюду нас окружают английские названия и английские термины. Например, работать с компьютером без минимальных навыков в английском языке может быть очень сложно. Так что, если вы еще не знаете английский язык, то лучше вам поскорее это исправить. А в этом вам могут помочь обучающие программы по английскому языку, которые представлены на сайте cktrm.ru.
Центр образовательных компьютерных технологий «РЕПЕТИТОР МультиМедиа» занимается разработкой современных решений для изучения и преподавания иностранных языков. Опытные лингвисты, IT-специалисты и преподаватели уже на протяжении пятнадцати лет помогают всем желающим в эффективном изучении иностранного языка. На сегодняшний день специалистами центра «РЕПЕТИТОР МультиМедиа» разработано огромное количество обучающих программ, аудио- и видеоуроков, а также образовательных интернет-проектов.
Самостоятельное изучение иностранных языков - это гораздо проще, чем кажется. Обучаясь иностранному языку при помощи специальных программ, вы легко освоите основные правила грамматики языка, без особых усилий обогатите свой словарный запас и попрактикуетесь в использовании языка.
На сайте cktrm.ru представлены обучающие программы и тренажеры по английскому, немецкому и русскому языку, любую из которых вы можете приобрести прямо на сайте центра. Каждая программа имеет свою определенную специфику. Например, если вам необходимо изучить британский английский, то вам подойдет обучающий тренажер "Живой Английский", который можно купить по этой ссылке - http://www.cktrm.ru/le.
Прежде чем заказывать полную версию программы, вы можете бесплатно скачать демоверсию. Это очень удобно, ведь вы сможете предварительно поработать с программой и понять, подходит ли она вам.
Тэги:
education,
work
Ткань космоса.
2011-05-16 11:54:54
Гвозди бы делать в этих людей.
Как объяснить поведение человека, который распечатывает ...
+ развернуть текст сохранённая копия
Гвозди бы делать в этих людей.
Как объяснить поведение человека, который распечатывает пиисят/семьдесят/не-знаю-сколько-но-много страниц книги Брайана Грина "Ткань Космоса" и потом аккуратно складывает все эти многабукв в корзину?
Это что? Не понравилось?
Ниасилил?
Порвалась ткань космоса?
Мир полон загадок.
Тэги:
life,
work