开发 Tips(5)

主要记录最近遇到的一些开发问题,解决方法。

1. Python 内存分析方法

主要涉及四个工具:
  • memory_profile:分析每一行代码的内存使用量
  • objgraph:跟踪内存中的对象的关系
  • guppy:在运行时跟踪堆的使用情况
  • pyrasite:向进程中注入代码
  • 根据上一步的信息定位到代码中的某一块,再使用 memory_profile 或 objgraph 来进行进一步的分析
  • 2. Docker Machine 基本操作命令

    • 创建 my-vm-name 虚拟机
    1
    
    docker-machine create --driver virtualbox my-vm-name
    
    • 查看全部 docker-machine
    1
    2
    3
    4
    
    docker-machine ls
    NAME         ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER        ERRORS
    default      *        virtualbox   Running   tcp://192.168.99.101:2376           v18.06.1-ce
    my-vm-name   -        virtualbox   Running   tcp://192.168.99.102:2376           v18.06.1-ce
    
    • 登录到 docker-machine
    1
    2
    
    docker-machine ssh default
    [email protected]:~$
    
    • 获取 docke-machine 的宿主机 IP
    1
    2
    
    docker-machine ip default
    192.168.99.101
    
    • 其他命令
    1
    
    docker-machine  [命令] [主机名]
    
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    
    active  查看活跃的 Docker 主机
    config  输出连接的配置信息
    create  创建一个 Docker 主机
    env  显示连接到某个主机需要的环境变量
    inspect  输出主机更多信息
    kill  停止某个主机
    regenerate-certs  为某个主机重新生成 TLS 认证信息
    restart  重启主机
    rm  删除某台主机
    ssh  SSH 到主机上执行命令
    scp  在主机之间复制文件
    start  启动一个主机
    stop  停止一个主机
    upgrade  更新主机 Docker 版本为最新
    url  获取主机的 URL
    

    3. 在 Docker Machine 安装软件

    • 启动容器,映射端口格式: hostPort:containerPort
    1
    2
    3
    4
    5
    
    docker container run \
      -d \
      -p 127.0.0.1:8080:80 \
      --name nginxname \
      nginx
    
    • 以 shell 的形式登录到容器
    1
    
    docker exec -it containerID bash
    
    • 查看容器的日志
    1
    
    docker logs -f containerID
    

    5. Python 多重继承