Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 132878604d | |||
| 14ee811801 | |||
| a8861b1506 |
@@ -91,11 +91,13 @@ GEM
|
||||
rb-fsevent (0.11.2)
|
||||
rb-inotify (0.10.1)
|
||||
ffi (~> 1.0)
|
||||
rexml (3.2.5)
|
||||
rexml (3.3.3)
|
||||
strscan
|
||||
rouge (3.30.0)
|
||||
safe_yaml (1.0.5)
|
||||
sassc (2.4.0)
|
||||
ffi (~> 1.9)
|
||||
strscan (3.1.0)
|
||||
terminal-table (2.0.0)
|
||||
unicode-display_width (~> 1.1, >= 1.1.1)
|
||||
tzinfo (2.0.6)
|
||||
|
||||
@@ -30,7 +30,7 @@ articles:
|
||||
show_cover: true
|
||||
cover_size: md
|
||||
show_excerpt: true
|
||||
show_readmore: true
|
||||
show_readmore: false
|
||||
show_info: true
|
||||
---
|
||||
<div class="layout--home">
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: "STSD: Stop Talking Start Doing"
|
||||
date: 2016-10-26 22:50:33 -0400
|
||||
tags: Diary
|
||||
cover: '/static/2024-04/logo.png'
|
||||
cover: '/static/2024-04/logo.webp'
|
||||
---
|
||||
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ title: "Using charles proxy to monitor mobile SSL traffics"
|
||||
date: 2016-10-27 22:50:33 -0400
|
||||
tags: ["Network", "Charles proxy"]
|
||||
author: Pengzhan Hao
|
||||
cover: '/static/2024-04/charles.png'
|
||||
cover: '/static/2024-04/charles.webp'
|
||||
---
|
||||
|
||||
In this blog, I will generally talk about how to use proper tools to monitor SSL traffics of a mobile devices. Currently, I only can dealing with those SSL traffics which use an obviously certification. Some applications may not using system root cert or they doesn't provide us a method to modify their own certs. For these situation, I still didn't find a good solutions for it. But I'll keep updating this if I get one.
|
||||
|
||||
@@ -3,7 +3,7 @@ title: "Some of my previews experiment works: 2016"
|
||||
date: 2016-10-28 12:27:33 -0400
|
||||
tags: ["Research", "Log", "Miscellanies"]
|
||||
author: Pengzhan Hao
|
||||
cover: '/static/2024-04/research2016.png'
|
||||
cover: '/static/2024-04/research2016.webp'
|
||||
---
|
||||
This blog contains only some basic record of my works. For some details, I will write a unique blog just for some specific topics.
|
||||
<!--more-->
|
||||
|
||||
@@ -3,7 +3,7 @@ title: "Xv6 introduction"
|
||||
date: 2017-07-28 14:56:55 -0400
|
||||
tags: ["Xv6", "Teaching", "Operating system"]
|
||||
author: Pengzhan Hao
|
||||
cover: '/static/2024-04/xv6.png'
|
||||
cover: '/static/2024-04/xv6.webp'
|
||||
---
|
||||
|
||||
In this post, you will learn a few basic concepts of xv6. Learning path will be closed coupled to first project assignment I gave when I assisted in teaching OS classes.
|
||||
|
||||
@@ -3,7 +3,7 @@ title: "Generate Word Cloud Figures with Chinese-Tokenization and WordCloud pyt
|
||||
date: 2020-09-15 22:00:14 -0400
|
||||
tags: Visualization
|
||||
author: Pengzhan Hao
|
||||
cover: '/static/2024-04/wordcloud.png'
|
||||
cover: '/static/2024-04/wordcloud.webp'
|
||||
---
|
||||
|
||||
Let's generate a word cloud like this.
|
||||
|
||||
@@ -3,7 +3,7 @@ title: "EDDL: How do we train neural networks on limited edge devices - PART 1"
|
||||
date: 2021-10-13 16:53:20 -0400
|
||||
tags: ["Research", "Edge computing"]
|
||||
author: Pengzhan Hao
|
||||
cover: '/static/2024-04/eddl1.png'
|
||||
cover: '/static/2024-04/eddl1.webp'
|
||||
---
|
||||
This post introduces our previous milestone in project "Edge trainer", as the paper "EDDL: A Distributed Deep Learning System for Resource-limited Edge Computing Environment." was published.
|
||||
As the first part of the introductions, I focus only on the motivation and summary of our works.
|
||||
|
||||
@@ -3,7 +3,7 @@ title: "EDDL: How do we train neural networks on limited edge devices - PART 2"
|
||||
date: 2021-10-31 13:01:14 -0400
|
||||
tags: ["Research", "Edge computing"]
|
||||
author: Pengzhan Hao
|
||||
cover: '/static/2024-04/eddl2.png'
|
||||
cover: '/static/2024-04/eddl2.webp'
|
||||
mathjax: true
|
||||
---
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ title: "Labs of CS350"
|
||||
date: 2022-02-22 17:08:17 -0400
|
||||
tags: ["Xv6", "Teaching", "Operating system", "Binghamton university"]
|
||||
author: Pengzhan Hao
|
||||
cover: '/static/2024-04/bu.png'
|
||||
cover: '/static/2024-04/bu.webp'
|
||||
---
|
||||
|
||||
This will be a series regarding lab I gave during the spring 2022 semester.
|
||||
|
||||
@@ -3,7 +3,7 @@ title: "Debug Kubelet"
|
||||
date: 2024-04-10 03:34:00 -0400
|
||||
tags: ["Kubernetes", "Kubelet", "Debug"]
|
||||
author: Pengzhan Hao
|
||||
cover: '/static/2024-04/kubelet.png'
|
||||
cover: '/static/2024-04/kubelet.webp'
|
||||
---
|
||||
|
||||
## Debug logs
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: Inotify watcher leaks in Kubelet
|
||||
date: 2024-04-18 16:35 -0400
|
||||
description:
|
||||
cover: '/static/2024-04/kubelet_inotify_leak_logo.png'
|
||||
cover: '/static/2024-04/kubelet_inotify_leak_logo.webp'
|
||||
category:
|
||||
tags: ["Kubernetes", "Kubelet", "Debug", "Inotify"]
|
||||
published: true
|
||||
@@ -77,7 +77,7 @@ Inode Pathname
|
||||
258855 /etc/srv/kubernetes/pki/ca-certificates.crt
|
||||
```
|
||||
|
||||
Put all processes above into one single script, I can retrieve all target files, that would help to understand if there's a real leakage. Also, I count the unique inode amount, this could also help to know which inode are monitored multiple times.
|
||||
Put all processes above into one single script(please see the [updated version in the appendix](#updated-script-to-get-inotify-watchers-initiated-by-kubelet)), I can retrieve all target files, that would help to understand if there's a real leakage. Also, I count the unique inode amount, this could also help to know which inode are monitored multiple times.
|
||||
|
||||
```bash
|
||||
cat << EOF | sudo tee -a test.sh
|
||||
@@ -149,6 +149,62 @@ This turns things easy, because I can just use pod ID to compare between running
|
||||
- [How Kubelet leaked inotify watchers?]()
|
||||
- [debugfs]()
|
||||
|
||||
## Appendix
|
||||
|
||||
### Updated script to get inotify watchers initiated by kubelet
|
||||
|
||||
Thanks for [yujuhong@](https://github.com/yujuhong)'s momentum and helps in finishing updated script.
|
||||
|
||||
```bash
|
||||
PID=$(echo $(ps -aux | grep "/home/kubernetes/bin/kubelet" | head -1) | cut -d " " -f 2)
|
||||
echo "Kubelet Pid:" ${PID}
|
||||
|
||||
inums_raw=$(find /proc/${PID}/fdinfo -type f 2>/dev/null | xargs grep ^inotify)
|
||||
# echo ${inums_raw}
|
||||
echo "Count: $(find /proc/${PID}/fdinfo -type f 2>/dev/null | xargs grep ^inotify | wc -l)"
|
||||
|
||||
while read -r line;
|
||||
do
|
||||
reg="ino:([0-9a-f]*) sdev:([0-9a-f]*)"
|
||||
if [[ ${line} =~ $reg ]]; then
|
||||
ino="${BASH_REMATCH[1]}"
|
||||
sdev="${BASH_REMATCH[2]}"
|
||||
# echo $ino $sdev
|
||||
else
|
||||
echo "wrong line"
|
||||
fi
|
||||
|
||||
sdev_in_dec=$((16#$sdev))
|
||||
minor=$((sdev_in_dec % 256))
|
||||
major=$((sdev_in_dec / 256))
|
||||
# echo "${major}:${minor}"
|
||||
|
||||
in_fds_sdev+=("${ino}-${major}:${minor}")
|
||||
done <<< "${inums_raw}"
|
||||
|
||||
uniq_pairs=($(echo "${in_fds_sdev[@]}" | sort | uniq))
|
||||
echo "Unique target" ${#uniq_pairs[@]}
|
||||
|
||||
printf "%-10s %-10s %-6s %s\n" "INUM" "DEV" "COUNT" "TARGET"
|
||||
for pair in "${uniq_pairs[@]}"
|
||||
do
|
||||
count=$(echo "${in_fds_sdev[@]}" | grep -o "${pair}" | wc -l)
|
||||
fd_hex=$(echo ${pair} | cut -d "-" -f 1)
|
||||
dev=$(echo ${pair} | cut -d "-" -f 2)
|
||||
fd_dec="$((16#${fd_hex}))"
|
||||
|
||||
mount_info=$(grep ${dev} /proc/$PID/mountinfo)
|
||||
if [[ -z $mount_info ]]; then
|
||||
echo "Can't find mount info for" $dev
|
||||
else
|
||||
tmpfs_path=$(echo $mount_info | cut -d " " -f 5)
|
||||
# echo $tmpfs_path
|
||||
loc=$(find ${tmpfs_path} -inum ${fd_dec})
|
||||
printf "%-10s %-10s %-6s %s\n" "${fd_dec}" "${dev}" "${count}" "${loc}"
|
||||
fi
|
||||
done
|
||||
```
|
||||
|
||||
## References
|
||||
|
||||
[^flbit_ino]: [Fluentbit error "cannot adjust chunk size" on GKE](https://stackoverflow.com/a/76712244)
|
||||
|
||||
@@ -138,11 +138,11 @@ $button: (
|
||||
);
|
||||
|
||||
$image: (
|
||||
width-xl: 20em,
|
||||
width-lg: 16rem,
|
||||
width: 12rem,
|
||||
width-sm: 8rem,
|
||||
width-xs: 4rem
|
||||
width-xl: 15em,
|
||||
width-lg: 12rem,
|
||||
width: 9rem,
|
||||
width-sm: 6rem,
|
||||
width-xs: 3rem
|
||||
);
|
||||
|
||||
$menu: (
|
||||
|
||||
@@ -1053,15 +1053,15 @@ input:focus { outline: none; }
|
||||
|
||||
.image { max-width: 100%; border-radius: 13px; }
|
||||
|
||||
.image--md, .image { width: 12rem; }
|
||||
.image--md, .image { width: 9rem; }
|
||||
|
||||
.image--xl { width: 20em; }
|
||||
.image--xl { width: 15em; }
|
||||
|
||||
.image--lg { width: 16rem; }
|
||||
.image--lg { width: 12rem; }
|
||||
|
||||
.image--sm { width: 8rem; }
|
||||
.image--sm { width: 6rem; }
|
||||
|
||||
.image--xs { width: 4rem; }
|
||||
.image--xs { width: 3rem; }
|
||||
|
||||
.card { max-width: 18rem; border-radius: 0.4rem; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.23), 0 1px 3px rgba(0, 0, 0, 0.08), 0 6px 12px rgba(0, 0, 0, 0.02); -webkit-transition: box-shadow 0.4s ease-in-out; transition: box-shadow 0.4s ease-in-out; }
|
||||
|
||||
|
||||
@@ -439,7 +439,7 @@ c13 9 26 20 30 26 7 11 -9 26 -27 26 -5 0 -3 -5 5 -10 9 -6 10 -10 3 -10 -24
|
||||
<div class="col-main cell cell--auto"><!-- start custom main top snippet -->
|
||||
|
||||
<!-- end custom main top snippet -->
|
||||
<article itemscope itemtype="http://schema.org/WebPage"><header style="display:none;"><h1>Home</h1></header><meta itemprop="headline" content="Home"><meta itemprop="author" content="Pengzhan Hao"/><div class="js-article-content"><div class="layout--articles"><div class="article-list items items--divided"><article class="item" itemscope itemtype="http://schema.org/BlogPosting"><div class="item__image" style="vertical-align: middle"><img class="image" src="/static/2024-04/kubelet_inotify_leak_logo.png" /></div><div class="item__content">
|
||||
<article itemscope itemtype="http://schema.org/WebPage"><header style="display:none;"><h1>Home</h1></header><meta itemprop="headline" content="Home"><meta itemprop="author" content="Pengzhan Hao"/><div class="js-article-content"><div class="layout--articles"><div class="article-list items items--divided"><article class="item" itemscope itemtype="http://schema.org/BlogPosting"><div class="item__image" style="vertical-align: middle"><img class="image" src="/static/2024-04/kubelet_inotify_leak_logo.webp" /></div><div class="item__content">
|
||||
<header><a href="/posts/inotify-watcher-leaks-in-kubelet"><h2 itemprop="headline" class="item__header">Inotify watcher leaks in Kubelet</h2></a></header>
|
||||
<div class="item__description"><div class="article__content" itemprop="description articleBody">Symptom
|
||||
Recently, I faced an issue where Kubelet on a node reported error message failed to create file descriptors.
|
||||
@@ -448,7 +448,7 @@ error creating file watcher: too many open files
|
||||
error creating file watcher: no space left on device
|
||||
|
||||
|
||||
After short checking, I found the node has max_user_watches of 10000, but the TotalinotifyWatches is beyond this value. (P. S...</div><p><a href="/posts/inotify-watcher-leaks-in-kubelet">Read more</a></p></div><div class="article__info clearfix"><ul class="left-col menu"><li>
|
||||
After short checking, I found the node has max_user_watches of 10000, but the TotalinotifyWatches is beyond this value. (P. S...</div></div><div class="article__info clearfix"><ul class="left-col menu"><li>
|
||||
<a class="button button--secondary button--pill button--sm"
|
||||
href="/archive.html?tag=Kubernetes">Kubernetes</a>
|
||||
</li><li>
|
||||
@@ -463,11 +463,11 @@ After short checking, I found the node has max_user_watches of 10000, but the To
|
||||
</li></ul><ul class="right-col menu"><li><i class="fas fa-user"></i> <span>Pengzhan Hao</span></li><li><i class="far fa-calendar-alt"></i> <span>Apr 18, 2024</span>
|
||||
</li></ul></div><meta itemprop="author" content="Pengzhan Hao"/><meta itemprop="datePublished" content="2024-04-18T16:35:00-04:00">
|
||||
<meta itemprop="keywords" content="Kubernetes,Kubelet,Debug,Inotify"></div>
|
||||
</article><article class="item" itemscope itemtype="http://schema.org/BlogPosting"><div class="item__image" style="vertical-align: middle"><img class="image" src="/static/2024-04/kubelet.png" /></div><div class="item__content">
|
||||
</article><article class="item" itemscope itemtype="http://schema.org/BlogPosting"><div class="item__image" style="vertical-align: middle"><img class="image" src="/static/2024-04/kubelet.webp" /></div><div class="item__content">
|
||||
<header><a href="/posts/Debug-kubelet"><h2 itemprop="headline" class="item__header">Debug Kubelet</h2></a></header>
|
||||
<div class="item__description"><div class="article__content" itemprop="description articleBody">Debug logs
|
||||
|
||||
Like all others program’s debugging, the most straightforward way for newbies and the easiest way for advanced developer is relying on logs. Same to debug kubelet, bumping up verbosity to show more logs is the most intuitive approach when facing an issue. Like most component in Kubernetes, kubelet uses klog for logging and there are ...</div><p><a href="/posts/Debug-kubelet">Read more</a></p></div><div class="article__info clearfix"><ul class="left-col menu"><li>
|
||||
Like all others program’s debugging, the most straightforward way for newbies and the easiest way for advanced developer is relying on logs. Same to debug kubelet, bumping up verbosity to show more logs is the most intuitive approach when facing an issue. Like most component in Kubernetes, kubelet uses klog for logging and there are ...</div></div><div class="article__info clearfix"><ul class="left-col menu"><li>
|
||||
<a class="button button--secondary button--pill button--sm"
|
||||
href="/archive.html?tag=Kubernetes">Kubernetes</a>
|
||||
</li><li>
|
||||
@@ -479,13 +479,13 @@ Like all others program’s debugging, the most straightforward way for newbies
|
||||
</li></ul><ul class="right-col menu"><li><i class="fas fa-user"></i> <span>Pengzhan Hao</span></li><li><i class="far fa-calendar-alt"></i> <span>Apr 10, 2024</span>
|
||||
</li></ul></div><meta itemprop="author" content="Pengzhan Hao"/><meta itemprop="datePublished" content="2024-04-10T03:34:00-04:00">
|
||||
<meta itemprop="keywords" content="Kubernetes,Kubelet,Debug"></div>
|
||||
</article><article class="item" itemscope itemtype="http://schema.org/BlogPosting"><div class="item__image" style="vertical-align: middle"><img class="image" src="/static/2024-04/bu.png" /></div><div class="item__content">
|
||||
</article><article class="item" itemscope itemtype="http://schema.org/BlogPosting"><div class="item__image" style="vertical-align: middle"><img class="image" src="/static/2024-04/bu.webp" /></div><div class="item__content">
|
||||
<header><a href="/posts/cs350-labs"><h2 itemprop="headline" class="item__header">Labs of CS350</h2></a></header>
|
||||
<div class="item__description"><div class="article__content" itemprop="description articleBody">This will be a series regarding lab I gave during the spring 2022 semester.
|
||||
|
||||
The reason why I am writing this down is because it has been a week and no students ask for the solution of the last Lab.
|
||||
I realise that learning gap between students are huge, especially when a non-profit university is admitting more and more students.
|
||||
To help all stud...</div><p><a href="/posts/cs350-labs">Read more</a></p></div><div class="article__info clearfix"><ul class="left-col menu"><li>
|
||||
To help all stud...</div></div><div class="article__info clearfix"><ul class="left-col menu"><li>
|
||||
<a class="button button--secondary button--pill button--sm"
|
||||
href="/archive.html?tag=Xv6">Xv6</a>
|
||||
</li><li>
|
||||
@@ -500,7 +500,7 @@ To help all stud...</div><p><a href="/posts/cs350-labs">Read more</a></p></div><
|
||||
</li></ul><ul class="right-col menu"><li><i class="fas fa-user"></i> <span>Pengzhan Hao</span></li><li><i class="far fa-calendar-alt"></i> <span>Feb 22, 2022</span>
|
||||
</li></ul></div><meta itemprop="author" content="Pengzhan Hao"/><meta itemprop="datePublished" content="2022-02-22T16:08:17-05:00">
|
||||
<meta itemprop="keywords" content="Xv6,Teaching,Operating system,Binghamton university"></div>
|
||||
</article><article class="item" itemscope itemtype="http://schema.org/BlogPosting"><div class="item__image" style="vertical-align: middle"><img class="image" src="/static/2024-04/eddl2.png" /></div><div class="item__content">
|
||||
</article><article class="item" itemscope itemtype="http://schema.org/BlogPosting"><div class="item__image" style="vertical-align: middle"><img class="image" src="/static/2024-04/eddl2.webp" /></div><div class="item__content">
|
||||
<header><a href="/posts/eddl-how-do-we-train-on-limited-edge-devices-part2"><h2 itemprop="headline" class="item__header">EDDL: How do we train neural networks on limited edge devices - PART 2</h2></a></header>
|
||||
<div class="item__description"><div class="article__content" itemprop="description articleBody">In the last post, part1, our idea of distributed learning on edge environment was generally addressed.
|
||||
I introduced the reason why edge distributed learning is needed and what improvements it can achieve.
|
||||
@@ -508,7 +508,7 @@ In this post, I will talk about our motivation study and how our framework works
|
||||
|
||||
How does data support us training on edge?
|
||||
|
||||
Before designin...</div><p><a href="/posts/eddl-how-do-we-train-on-limited-edge-devices-part2">Read more</a></p></div><div class="article__info clearfix"><ul class="left-col menu"><li>
|
||||
Before designin...</div></div><div class="article__info clearfix"><ul class="left-col menu"><li>
|
||||
<a class="button button--secondary button--pill button--sm"
|
||||
href="/archive.html?tag=Research">Research</a>
|
||||
</li><li>
|
||||
@@ -517,11 +517,11 @@ Before designin...</div><p><a href="/posts/eddl-how-do-we-train-on-limited-edge-
|
||||
</li></ul><ul class="right-col menu"><li><i class="fas fa-user"></i> <span>Pengzhan Hao</span></li><li><i class="far fa-calendar-alt"></i> <span>Oct 31, 2021</span>
|
||||
</li></ul></div><meta itemprop="author" content="Pengzhan Hao"/><meta itemprop="datePublished" content="2021-10-31T13:01:14-04:00">
|
||||
<meta itemprop="keywords" content="Research,Edge computing"></div>
|
||||
</article><article class="item" itemscope itemtype="http://schema.org/BlogPosting"><div class="item__image" style="vertical-align: middle"><img class="image" src="/static/2024-04/eddl1.png" /></div><div class="item__content">
|
||||
</article><article class="item" itemscope itemtype="http://schema.org/BlogPosting"><div class="item__image" style="vertical-align: middle"><img class="image" src="/static/2024-04/eddl1.webp" /></div><div class="item__content">
|
||||
<header><a href="/posts/eddl-how-do-we-train-on-limited-edge-devices"><h2 itemprop="headline" class="item__header">EDDL: How do we train neural networks on limited edge devices - PART 1</h2></a></header>
|
||||
<div class="item__description"><div class="article__content" itemprop="description articleBody">This post introduces our previous milestone in project “Edge trainer”, as the paper “EDDL: A Distributed Deep Learning System for Resource-limited Edge Computing Environment.” was published.
|
||||
As the first part of the introductions, I focus only on the motivation and summary of our works.
|
||||
More details in design and implementation can be found in l...</div><p><a href="/posts/eddl-how-do-we-train-on-limited-edge-devices">Read more</a></p></div><div class="article__info clearfix"><ul class="left-col menu"><li>
|
||||
More details in design and implementation can be found in l...</div></div><div class="article__info clearfix"><ul class="left-col menu"><li>
|
||||
<a class="button button--secondary button--pill button--sm"
|
||||
href="/archive.html?tag=Research">Research</a>
|
||||
</li><li>
|
||||
@@ -530,21 +530,21 @@ More details in design and implementation can be found in l...</div><p><a href="
|
||||
</li></ul><ul class="right-col menu"><li><i class="fas fa-user"></i> <span>Pengzhan Hao</span></li><li><i class="far fa-calendar-alt"></i> <span>Oct 13, 2021</span>
|
||||
</li></ul></div><meta itemprop="author" content="Pengzhan Hao"/><meta itemprop="datePublished" content="2021-10-13T16:53:20-04:00">
|
||||
<meta itemprop="keywords" content="Research,Edge computing"></div>
|
||||
</article><article class="item" itemscope itemtype="http://schema.org/BlogPosting"><div class="item__image" style="vertical-align: middle"><img class="image" src="/static/2024-04/wordcloud.png" /></div><div class="item__content">
|
||||
</article><article class="item" itemscope itemtype="http://schema.org/BlogPosting"><div class="item__image" style="vertical-align: middle"><img class="image" src="/static/2024-04/wordcloud.webp" /></div><div class="item__content">
|
||||
<header><a href="/posts/generate-word-cloud-with-chinese-fenci"><h2 itemprop="headline" class="item__header">Generate Word Cloud Figures with Chinese-Tokenization and WordCloud python libraries</h2></a></header>
|
||||
<div class="item__description"><div class="article__content" itemprop="description articleBody">Let’s generate a word cloud like this.
|
||||
Don’t understand the language is not a big deal.
|
||||
If your written language is based on latin alphabet(or other language has space between words), skip tokenization.</div><p><a href="/posts/generate-word-cloud-with-chinese-fenci">Read more</a></p></div><div class="article__info clearfix"><ul class="left-col menu"><li>
|
||||
If your written language is based on latin alphabet(or other language has space between words), skip tokenization.</div></div><div class="article__info clearfix"><ul class="left-col menu"><li>
|
||||
<a class="button button--secondary button--pill button--sm"
|
||||
href="/archive.html?tag=Visualization">Visualization</a>
|
||||
</li></ul><ul class="right-col menu"><li><i class="fas fa-user"></i> <span>Pengzhan Hao</span></li><li><i class="far fa-calendar-alt"></i> <span>Sep 15, 2020</span>
|
||||
</li></ul></div><meta itemprop="author" content="Pengzhan Hao"/><meta itemprop="datePublished" content="2020-09-15T22:00:14-04:00">
|
||||
<meta itemprop="keywords" content="Visualization"></div>
|
||||
</article><article class="item" itemscope itemtype="http://schema.org/BlogPosting"><div class="item__image" style="vertical-align: middle"><img class="image" src="/static/2024-04/xv6.png" /></div><div class="item__content">
|
||||
</article><article class="item" itemscope itemtype="http://schema.org/BlogPosting"><div class="item__image" style="vertical-align: middle"><img class="image" src="/static/2024-04/xv6.webp" /></div><div class="item__content">
|
||||
<header><a href="/posts/intro-xv6"><h2 itemprop="headline" class="item__header">Xv6 introduction</h2></a></header>
|
||||
<div class="item__description"><div class="article__content" itemprop="description articleBody">In this post, you will learn a few basic concepts of xv6. Learning path will be closed coupled to first project assignment I gave when I assisted in teaching OS classes.
|
||||
Understand system call and know how to implement a simple one will be coved as the first half.
|
||||
In the second half of this post, I will discuss a little bit more on how to debug ...</div><p><a href="/posts/intro-xv6">Read more</a></p></div><div class="article__info clearfix"><ul class="left-col menu"><li>
|
||||
In the second half of this post, I will discuss a little bit more on how to debug ...</div></div><div class="article__info clearfix"><ul class="left-col menu"><li>
|
||||
<a class="button button--secondary button--pill button--sm"
|
||||
href="/archive.html?tag=Xv6">Xv6</a>
|
||||
</li><li>
|
||||
@@ -556,9 +556,9 @@ In the second half of this post, I will discuss a little bit more on how to debu
|
||||
</li></ul><ul class="right-col menu"><li><i class="fas fa-user"></i> <span>Pengzhan Hao</span></li><li><i class="far fa-calendar-alt"></i> <span>Jul 28, 2017</span>
|
||||
</li></ul></div><meta itemprop="author" content="Pengzhan Hao"/><meta itemprop="datePublished" content="2017-07-28T14:56:55-04:00">
|
||||
<meta itemprop="keywords" content="Xv6,Teaching,Operating system"></div>
|
||||
</article><article class="item" itemscope itemtype="http://schema.org/BlogPosting"><div class="item__image" style="vertical-align: middle"><img class="image" src="/static/2024-04/research2016.png" /></div><div class="item__content">
|
||||
</article><article class="item" itemscope itemtype="http://schema.org/BlogPosting"><div class="item__image" style="vertical-align: middle"><img class="image" src="/static/2024-04/research2016.webp" /></div><div class="item__content">
|
||||
<header><a href="/posts/some-of-my-previews-exper-work"><h2 itemprop="headline" class="item__header">Some of my previews experiment works: 2016</h2></a></header>
|
||||
<div class="item__description"><div class="article__content" itemprop="description articleBody">This blog contains only some basic record of my works. For some details, I will write a unique blog just for some specific topics.</div><p><a href="/posts/some-of-my-previews-exper-work">Read more</a></p></div><div class="article__info clearfix"><ul class="left-col menu"><li>
|
||||
<div class="item__description"><div class="article__content" itemprop="description articleBody">This blog contains only some basic record of my works. For some details, I will write a unique blog just for some specific topics.</div></div><div class="article__info clearfix"><ul class="left-col menu"><li>
|
||||
<a class="button button--secondary button--pill button--sm"
|
||||
href="/archive.html?tag=Research">Research</a>
|
||||
</li><li>
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta property="twitter:title" content="Using charles proxy to monitor mobile SSL traffics" />
|
||||
<script type="application/ld+json">
|
||||
{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"Pengzhan Hao"},"dateModified":"2021-12-11T13:35:39-05:00","datePublished":"2016-10-27T22:50:33-04:00","description":"In this blog, I will generally talk about how to use proper tools to monitor SSL traffics of a mobile devices. Currently, I only can dealing with those SSL traffics which use an obviously certification. Some applications may not using system root cert or they doesn’t provide us a method to modify their own certs. For these situation, I still didn’t find a good solutions for it. But I’ll keep updating this if I get one. My current solution is using AP to forward all SSL traffic to a proxy, charles proxy is my first choice (Prof asked). It’s a non-free software which still update new versions now. So mainly, I’ll talk about how to charles SSL proxy.","headline":"Using charles proxy to monitor mobile SSL traffics","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.pengzhan.dev/posts/charles-is-not-a-good-tool"},"url":"https://blog.pengzhan.dev/posts/charles-is-not-a-good-tool"}</script>
|
||||
{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"Pengzhan Hao"},"dateModified":"2024-04-24T00:32:03-04:00","datePublished":"2016-10-27T22:50:33-04:00","description":"In this blog, I will generally talk about how to use proper tools to monitor SSL traffics of a mobile devices. Currently, I only can dealing with those SSL traffics which use an obviously certification. Some applications may not using system root cert or they doesn’t provide us a method to modify their own certs. For these situation, I still didn’t find a good solutions for it. But I’ll keep updating this if I get one. My current solution is using AP to forward all SSL traffic to a proxy, charles proxy is my first choice (Prof asked). It’s a non-free software which still update new versions now. So mainly, I’ll talk about how to charles SSL proxy.","headline":"Using charles proxy to monitor mobile SSL traffics","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.pengzhan.dev/posts/charles-is-not-a-good-tool"},"url":"https://blog.pengzhan.dev/posts/charles-is-not-a-good-tool"}</script>
|
||||
<!-- End Jekyll SEO tag -->
|
||||
|
||||
<!-- end custom head snippets -->
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta property="twitter:title" content="EDDL: How do we train neural networks on limited edge devices - PART 1" />
|
||||
<script type="application/ld+json">
|
||||
{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"Pengzhan Hao"},"dateModified":"2021-12-11T13:35:39-05:00","datePublished":"2021-10-13T16:53:20-04:00","description":"This post introduces our previous milestone in project “Edge trainer”, as the paper “EDDL: A Distributed Deep Learning System for Resource-limited Edge Computing Environment.” was published. As the first part of the introductions, I focus only on the motivation and summary of our works. More details in design and implementation can be found in late posts.","headline":"EDDL: How do we train neural networks on limited edge devices - PART 1","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.pengzhan.dev/posts/eddl-how-do-we-train-on-limited-edge-devices"},"url":"https://blog.pengzhan.dev/posts/eddl-how-do-we-train-on-limited-edge-devices"}</script>
|
||||
{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"Pengzhan Hao"},"dateModified":"2024-04-24T00:32:03-04:00","datePublished":"2021-10-13T16:53:20-04:00","description":"This post introduces our previous milestone in project “Edge trainer”, as the paper “EDDL: A Distributed Deep Learning System for Resource-limited Edge Computing Environment.” was published. As the first part of the introductions, I focus only on the motivation and summary of our works. More details in design and implementation can be found in late posts.","headline":"EDDL: How do we train neural networks on limited edge devices - PART 1","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.pengzhan.dev/posts/eddl-how-do-we-train-on-limited-edge-devices"},"url":"https://blog.pengzhan.dev/posts/eddl-how-do-we-train-on-limited-edge-devices"}</script>
|
||||
<!-- End Jekyll SEO tag -->
|
||||
|
||||
<!-- end custom head snippets -->
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta property="twitter:title" content="Generate Word Cloud Figures with Chinese-Tokenization and WordCloud python libraries" />
|
||||
<script type="application/ld+json">
|
||||
{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"Pengzhan Hao"},"dateModified":"2021-12-11T13:35:39-05:00","datePublished":"2020-09-15T22:00:14-04:00","description":"Let’s generate a word cloud like this. Don’t understand the language is not a big deal. If your written language is based on latin alphabet(or other language has space between words), skip tokenization.","headline":"Generate Word Cloud Figures with Chinese-Tokenization and WordCloud python libraries","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.pengzhan.dev/posts/generate-word-cloud-with-chinese-fenci"},"url":"https://blog.pengzhan.dev/posts/generate-word-cloud-with-chinese-fenci"}</script>
|
||||
{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"Pengzhan Hao"},"dateModified":"2024-04-24T00:32:03-04:00","datePublished":"2020-09-15T22:00:14-04:00","description":"Let’s generate a word cloud like this. Don’t understand the language is not a big deal. If your written language is based on latin alphabet(or other language has space between words), skip tokenization.","headline":"Generate Word Cloud Figures with Chinese-Tokenization and WordCloud python libraries","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.pengzhan.dev/posts/generate-word-cloud-with-chinese-fenci"},"url":"https://blog.pengzhan.dev/posts/generate-word-cloud-with-chinese-fenci"}</script>
|
||||
<!-- End Jekyll SEO tag -->
|
||||
|
||||
<!-- end custom head snippets -->
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta property="twitter:title" content="Xv6 introduction" />
|
||||
<script type="application/ld+json">
|
||||
{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"Pengzhan Hao"},"dateModified":"2021-12-11T13:35:39-05:00","datePublished":"2017-07-28T14:56:55-04:00","description":"In this post, you will learn a few basic concepts of xv6. Learning path will be closed coupled to first project assignment I gave when I assisted in teaching OS classes. Understand system call and know how to implement a simple one will be coved as the first half. In the second half of this post, I will discuss a little bit more on how to debug xv6 using gdb.","headline":"Xv6 introduction","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.pengzhan.dev/posts/intro-xv6"},"url":"https://blog.pengzhan.dev/posts/intro-xv6"}</script>
|
||||
{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"Pengzhan Hao"},"dateModified":"2024-04-24T00:32:03-04:00","datePublished":"2017-07-28T14:56:55-04:00","description":"In this post, you will learn a few basic concepts of xv6. Learning path will be closed coupled to first project assignment I gave when I assisted in teaching OS classes. Understand system call and know how to implement a simple one will be coved as the first half. In the second half of this post, I will discuss a little bit more on how to debug xv6 using gdb.","headline":"Xv6 introduction","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.pengzhan.dev/posts/intro-xv6"},"url":"https://blog.pengzhan.dev/posts/intro-xv6"}</script>
|
||||
<!-- End Jekyll SEO tag -->
|
||||
|
||||
<!-- end custom head snippets -->
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta property="twitter:title" content="Some of my previews experiment works: 2016" />
|
||||
<script type="application/ld+json">
|
||||
{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"Pengzhan Hao"},"dateModified":"2021-12-11T13:35:39-05:00","datePublished":"2016-10-28T12:27:33-04:00","description":"This blog contains only some basic record of my works. For some details, I will write a unique blog just for some specific topics.","headline":"Some of my previews experiment works: 2016","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.pengzhan.dev/posts/some-of-my-previews-exper-work"},"url":"https://blog.pengzhan.dev/posts/some-of-my-previews-exper-work"}</script>
|
||||
{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"Pengzhan Hao"},"dateModified":"2024-04-24T00:32:03-04:00","datePublished":"2016-10-28T12:27:33-04:00","description":"This blog contains only some basic record of my works. For some details, I will write a unique blog just for some specific topics.","headline":"Some of my previews experiment works: 2016","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.pengzhan.dev/posts/some-of-my-previews-exper-work"},"url":"https://blog.pengzhan.dev/posts/some-of-my-previews-exper-work"}</script>
|
||||
<!-- End Jekyll SEO tag -->
|
||||
|
||||
<!-- end custom head snippets -->
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta property="twitter:title" content="STSD: Stop Talking Start Doing" />
|
||||
<script type="application/ld+json">
|
||||
{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"Pengzhan Hao"},"dateModified":"2024-04-03T18:23:31-04:00","datePublished":"2016-10-26T22:50:33-04:00","description":"My personal blog, some contents are useful, the others are not. Just like my mediocre life.","headline":"STSD: Stop Talking Start Doing","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.pengzhan.dev/posts/welcome-to-my-blog"},"url":"https://blog.pengzhan.dev/posts/welcome-to-my-blog"}</script>
|
||||
{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"Pengzhan Hao"},"dateModified":"2024-04-24T00:32:03-04:00","datePublished":"2016-10-26T22:50:33-04:00","description":"My personal blog, some contents are useful, the others are not. Just like my mediocre life.","headline":"STSD: Stop Talking Start Doing","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.pengzhan.dev/posts/welcome-to-my-blog"},"url":"https://blog.pengzhan.dev/posts/welcome-to-my-blog"}</script>
|
||||
<!-- End Jekyll SEO tag -->
|
||||
|
||||
<!-- end custom head snippets -->
|
||||
|
||||
@@ -2,43 +2,43 @@
|
||||
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
<url>
|
||||
<loc>https://blog.pengzhan.dev/posts/welcome-to-my-blog</loc>
|
||||
<lastmod>2024-04-03T18:23:31-04:00</lastmod>
|
||||
<lastmod>2024-04-24T00:32:03-04:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://blog.pengzhan.dev/posts/charles-is-not-a-good-tool</loc>
|
||||
<lastmod>2021-12-11T13:35:39-05:00</lastmod>
|
||||
<lastmod>2024-04-24T00:32:03-04:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://blog.pengzhan.dev/posts/some-of-my-previews-exper-work</loc>
|
||||
<lastmod>2021-12-11T13:35:39-05:00</lastmod>
|
||||
<lastmod>2024-04-24T00:32:03-04:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://blog.pengzhan.dev/posts/intro-xv6</loc>
|
||||
<lastmod>2021-12-11T13:35:39-05:00</lastmod>
|
||||
<lastmod>2024-04-24T00:32:03-04:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://blog.pengzhan.dev/posts/generate-word-cloud-with-chinese-fenci</loc>
|
||||
<lastmod>2021-12-11T13:35:39-05:00</lastmod>
|
||||
<lastmod>2024-04-24T00:32:03-04:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://blog.pengzhan.dev/posts/eddl-how-do-we-train-on-limited-edge-devices</loc>
|
||||
<lastmod>2021-12-11T13:35:39-05:00</lastmod>
|
||||
<lastmod>2024-04-24T00:32:03-04:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://blog.pengzhan.dev/posts/eddl-how-do-we-train-on-limited-edge-devices-part2</loc>
|
||||
<lastmod>2021-12-11T13:35:39-05:00</lastmod>
|
||||
<lastmod>2024-04-24T00:32:03-04:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://blog.pengzhan.dev/posts/cs350-labs</loc>
|
||||
<lastmod>2022-05-04T19:45:56-04:00</lastmod>
|
||||
<lastmod>2024-04-24T00:32:03-04:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://blog.pengzhan.dev/posts/Debug-kubelet</loc>
|
||||
<lastmod>2024-04-18T21:14:15-04:00</lastmod>
|
||||
<lastmod>2024-04-24T00:32:03-04:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://blog.pengzhan.dev/posts/inotify-watcher-leaks-in-kubelet</loc>
|
||||
<lastmod>2024-04-18T21:14:15-04:00</lastmod>
|
||||
<lastmod>2024-04-24T00:32:03-04:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://blog.pengzhan.dev/archive</loc>
|
||||
|
||||
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 6.5 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 63 KiB |