自动安装脚本:
curl https://sh.rustup.rs -sSf | sh
手工选择安装:
wget https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init
chmod +x rustup-init
./rustup-init
发布时间:August 20, 2017 // 分类: // No Comments
自动安装脚本:
curl https://sh.rustup.rs -sSf | sh
手工选择安装:
wget https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init
chmod +x rustup-init
./rustup-init
发布时间:August 10, 2017 // 分类: // No Comments
限制单位时间内执行次数,并保持先后顺序。
package main
import "fmt"
import "time"
var c chan chan int
func worker(i int) {
t := make(chan int)
c <- t
fmt.Println(i, "启动任务")
loop:
for {
select {
case <-t:
fmt.Println(i)
break loop
default:
fmt.Println(i, "等待可用")
time.Sleep(100 * time.Millisecond)
}
}
fmt.Println(i, "开始任务")
}
func master() {
for {
for i := 0; i < 10; i++ {
t := <-c
t <- 1
time.Sleep(500 * time.Millisecond)
}
}
}
func main() {
c = make(chan chan int, 20)
for i := 0; i < 10; i++ {
go worker(i)
time.Sleep(500 * time.Millisecond)
}
go master()
for {
time.Sleep(1000 * time.Millisecond)
}
}
发布时间:August 7, 2017 // 分类: // No Comments
新建:
pvcreate /dev/vd[b-c]1
vgcreate alivg /dev/vd[b-c]1
lvcreate -l +100%free -i 2 -I 128 alivg -n alilv
mkfs.ext4 /dev/alivg/alilv
mount /dev/alivg/alilv /data/
查看lv信息:
lvdisplay -m
--- Segments ---
Logical extents 0 to 10237:
Type striped
Stripes 2
Stripe size 512.00 KiB
Stripe 0:
Physical volume /dev/vdb1
Physical extents 0 to 5118
Stripe 1:
Physical volume /dev/vdc1
Physical extents 0 to 5118
扩充:
pvcreate /dev/vd[d-e]1
vgextend alivg /dev/vd[d-e]1
lvresize -l +100%free -i 2 -I 128 /dev/alivg/alilv
resize2fs /dev/alivg/alilv
发布时间:August 4, 2017 // 分类: // No Comments
使用dd测试吞吐量:
#默认启用写缓存
dd bs=64k count=4k if=/dev/zero of=test;rm -rf test
#最后一次性写入硬盘
dd bs=64k count=4k if=/dev/zero of=test conv=fdatasync;rm -rf test
#每次读取64k马上写入硬盘
dd if=/dev/zero of=test bs=64k count=4k oflag=dsync;rm -rf test
使用测试读吞吐量:
hdparm -Tt /dev/vdc1
使用fio测试iops和吞吐量:
fio --bs=4k --ioengine=libaio --iodepth=1 --direct=1 --rw=read --time_based --runtime=600 --refill_buffers --norandommap --randrepeat=0 --group_reporting --name=fio-read --size=100G --filename=/dev/sdb
block=4k iodepth=1 随机读测试,能反映磁盘的时延性能;
block=128K iodepth=32 能反映峰值吞吐性能 ;
block=4k iodepth=32 能反映峰值IOPS性能。
随机读写iops:
吞吐量:
延时:
参考:
https://www.qcloud.com/document/product/362/6741
https://www.qcloud.com/document/product/362/6745
发布时间:July 30, 2017 // 分类: // No Comments
package main
import (
"fmt"
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
func main() {
var sqlt string
var table string
db, err := sql.Open("mysql", "root:password@/dbname?charset=utf8")
//查询
sqlt = "SELECT tid from " + table + " where id = (SELECT max(id) FROM " + table + ");"
rows, err = db.Query(sqlt)
for rows.Next() {
err = rows.Scan(&tid)
fmt.Println(tid)
}
//插入
sqlt = "INSERT " + table + " SET tid=?,amount=?,price=?,time=?,type=?,funds=?"
stmt, _ := db.Prepare(sqlt)
stmt.Exec(v.Id, v.Volume, v.Price, v.At, v.Side, v.Funds)
//执行
db.Exec("delete from table where id = '1'")
}