新项目用rust, 新代码也用rust

今天在Hacker New上看到了一篇称赞rust的文章Writing New Code in Rust Is a Win for All of Us。 原文内容就不贴出来了,maillist的内容一般都可以活的很久,随时可以去阅读。 ...

February 21, 2025 · datewu

socat工具

众所周知kubenetest的端口转发功能kubectl port-forward非常实用,可以提高开发人员的debug效率。 其实kubectl port-forward的底层脏活累活都是socat命令在做,kubectl只能算是一个代理商。 ...

April 14, 2020 · datewu

容器PID

架构部的同事问了我两个问题: 宿主机上有个进程很耗 cpu,怎么判断它是不是某个容器的进程; 如果它是跑在容器里,怎么查到是哪个容器(container id); 解决方案 有两种方法来解决上面两个问题: ...

March 13, 2020 · datewu

挂载硬盘

update: more user friendly 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 #bin/bash mustBeRoot() { if [ "$(id -u)" != "0" ]; then echo "只有root用户才能运行" 1>&2 echo "当前登录用户`whoami`" exit 1 fi } # 数据盘挂载 checkAndMountDataDisk() { echo "选择数据盘/分区 :" fdisk -l | grep /dev | grep G | cut -f 1 -d , echo " " read -p "请输入硬盘/分区 名:/dev/" -r disk_name disk_id=`blkid | grep $disk_name` if [ $? -ne 0 ];then echo "获取硬盘/分区 $disk_name uuid失败,请检查名称是否准确" exit 1 fi disk_path=`echo $disk_id | cut -f 1 -d ':' ` echo "已选择 $disk_path" disk_uuid=`blkid $disk_path | cut -f 2 -d '"' ` disk_info=`lsblk -f $disk_path | grep $disk_uuid ` if [ $? -ne 0 ];then echo "获取硬盘/分区 $disk_path 详细信息失败,请检查名称是否正确" exit 1 fi fs_type=`echo $disk_info | cut -f 2 -d ' '` if [ $fs_type != 'ext4' ];then echo "硬盘文件系统格式不是ext4。" read -p "是否格式化为 ext4? 输入 y 同意格式化" -r format_ext4 if [ $format_ext4 != 'y' ];then echo "未格式化 $disk_path 文件系统格式,退出安装脚本。" exit 1 fi echo "即将格式化 $disk_path 文件系统格式...." mkfs.ext4 $disk_path fi if [ -d "$1" ];then echo "数据盘挂载点/data目录已存在" else echo "创建数据盘挂载点/data目录" mkdir $1 fi mount UUID=$disk_uuid $1 echo "UUID=$disk_uuid $1 ext4 defaults 0 0" >> /etc/fstab echo "硬盘挂载成功" } checkDataMountpoint() { echo '挂载数据盘' grep "$1" /etc/fstab | grep ext4 if [ $? -ne 0 ];then checkAndMountDataDisk else echo '数据盘已挂载' mount -a fi cpAndUntar } mustBeRoot checkDataMountpoint ${1-/data} lsblk 首先使用lsblk查看当前系统硬盘挂载的情况 ...

October 18, 2019 · datewu

Systemd配置问题

问题 用 kubeadm 部署 kubernetes 集群,启动kubelet服务后,kubelet daemon 会认为 /etc/sysconfig/kubelet内容的优先级更高, 覆盖KUBELET_EXTRA_ARGS环境变量--pod-infra-container-image的配置内容。 ...

May 11, 2019 · datewu

无法创建macvlan设备

最近给客户调试 macvlan network时,遇到了Linux kernel 报错 SIOCSIFFKAGS: Device or resource busy. 无法创建网络device。 结果长时间的debug分析, 发现问题是高并发压测 创建和释放macvlan device的时候,设备的mac address出现了重复。 ...

March 7, 2019 · datewu

tcp性能调优

我们一般会调整内核tcp参数以提高web服务器(比如ngin)的性能。 sysctl 加载Linux 内核配置 1 sysctl -p /etc/sysctl.d/xxx-xxx.conf meat 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 # /etc/sysctl.d/00-network.conf # Receive Queue Size per CPU Core, number of packets # Example server: 8 cores net.core.netdev_max_backlog = 4096 # SYN Backlog Queue, number of half-open connections net.ipv4.tcp_max_syn_backlog = 32768 # Accept Queue Limit, maximum number of established # connections waiting for accept() per listener. net.core.somaxconn = 65535 # Maximum number of SYN and SYN+ACK retries before # packet expires. net.ipv4.tcp_syn_retries = 1 net.ipv4.tcp_synack_retries = 1 # Timeout in seconds to close client connections in # TIME_WAIT after receiving FIN packet. net.ipv4.tcp_fin_timeout = 5 # Disable SYN cookie flood protection net.ipv4.tcp_syncookies = 0 # Maximum number of threads system can have, total. # Commented, may not be needed. See user limits. #kernel.threads-max = 3261780 # Maximum number of file descriptors system can have, total. # Commented, may not be needed. See user limits. #fs.file-max = 3261780

April 5, 2016 · datewu

刷机HG255d

交叉编译 在ubuntu下安装编译工具(gcc,xmllib,cmake, git 等); git克隆openwrt仓库:git clone git://git.openwrt.org/14.07/openwrt.git; 自定义kernel target: 源代码做两处修改 : ...

March 17, 2015 · datewu