原创 golang go build下載報timeout 超時

go env -w GOPROXY=https://goproxy.cn,direct 指定使用代理下載,上面是七牛雲的,也可以使用其他的。

原创 mongodb獲取空閒磁盤空間

這篇文章 mongodb使用內存和硬盤特性 我們介紹過mongodb刪除數據後,並不會釋放磁盤空間。大部分數據庫爲了性能都會這樣做,比如mysql也是。不過mysql可以整理磁盤空間,把空閒的磁盤釋放掉,還給操作系統,但是mongodb卻不

原创 golang常用json庫的選擇

Sonic 如果對性能要求非常高,可以使用Sonic。但是Sonic有一些要求,高性能必然帶來特例化,官方也介紹了,對CPU架構和系統等都有要求。其底層使用了一些彙編和c的代碼實現,所以如果不是對性能要求特別高,可以不用。 fastjson

原创 如何用autotool構建一個工程

本文主要介紹如何用autotool工具構建一個自己的工程,每個工具具體是做什麼用的,正常開發中應該在哪裏增加相關配置文件等。 編寫一個示例 main.c #include "plib.h" void main() { my

原创 configure.ac語法規則

AC_CONFIG_FILES 所有的Makefile.ac文件必須在AC_CONFIG_FILES中指定 AC_CONFIG_FILES([ lib/Makefile lib/aaa/Makefile lib/bbb/Makefil

原创 mongodb 不存在就插入

一 不存在插入,存在不做任何處理。 db.companies.updateOne( {"company": "test"}, { $setOnInsert: { "name": "nameVal2", ... } }, {

原创 linux vmware virtual box windows11

vmware安裝windows11 vmware安裝windows11的時候會報錯,無法啓動。應該在Options->Access Control增加密碼,並且Hardware下有TPM設備。 如果還不行,打開設置Options->Adva

原创 kvm安裝windows11

安裝工具 sudo apt install virt-manager sudo apt install qemu-syste

原创 vmware轉kvm

由於kvm比vmware更高的性能,所以準備把虛擬機換到kvm上。 導出虛擬機 虛擬機使用久了,大部分都是多塊vmdk虛擬硬盤,所以先要合併到一起。實際上不需要在vmware安裝目錄查找命令自己合併,直接把虛擬機導出即可,vmware會自動

原创 golang/gin常見用法和問題

結構體數組與接口數組轉換 如果想把[]struct轉爲[]interface,我們發現直接賦值會報錯。 理論上interface可以轉換任何數據,爲什麼結構體數組不可以呢?這是因爲interface的設計導致的,如果能理解interface

原创 python鏈接mongodb的問題

python鏈接mongodb需要指定數據庫 import pymongo monclient = pymongo.MongoClient("mongodb://用戶名:密碼@192.168.10.200:27017/數據庫名") mon

原创 Linux MySQL8.1 二進制安裝和配置

下載bin文件 https://dev.mysql.com/downloads/mysql/ 選擇Linux Generic,下載對應的tar包 解壓tar包 解壓完成後,目錄結構如下: ls bin docs include lib

原创 DPDK-22.11.2 [五] 多進程

dpdk支持多進程運行,不過要指定參數打開,如果沒有設定,但開啓第二個dpdk程序是會報錯,告訴你相關係統資源被佔用。 EAL: Cannot create lock on '/var/run/dpdk/rte/config'. Is an

原创 Linux C語言Shared Library共享庫細節探究

開發中遇到一個問題,比如有一個類庫A,被類庫B引用,類庫B和類庫A都被程序C引用。類庫A中有一個全局變量G,要求同一個進程中使用的是同一個全局變量G。 雖然看起來很簡單,但是實際探究下來還有不少坑。 如果不是類庫 如果A B都不是類庫,而是

原创 DPDK-22.11.2 [四] Virtio_user as Exception Path

因爲dpdk是把網卡操作全部拿到用戶層,與原生系統驅動不再兼容,所以被dpdk接管的網卡從系統層面(ip a/ifconfig)無法看到,同樣數據也不再經過系統內核。 如果想把數據再發送到系統,就要用到virtio user。這種把數據從d