Ubuntu 安装配置Anaconda

by Web全栈工程师 on 2018 年 12 月 09 日

Anaconda是一种Python语言的免费增值开源发行版,用于进行大规模数据处理、预测分析,和科学计算,致力于简化包的管理和部署。Anaconda使用软件包管理系统Conda进行包管理。这里演示ubuntu server环境安装、配置Anaconda工具。

Anaconda安装

cd /tmp
wget https://repo.continuum.io/archive/Anaconda2-2018.12-Linux-x86_64.sh
download_file_md5=md5sum Anaconda2-2018.12-Linux-x86_64.sh | cut -f1 -d\
bash Anaconda2-2018.12-Linux-x86_64.sh
source ~/.bashrc
conda list

Anaconda环境配置

#查看当前安装的所有版本python
conda search "^python$"
#创建一个名为my_env的python3的虚拟环境
conda create --name my_env python=3
#激活虚拟环境
source activate my_env
#退出虚拟环境
source deactivate
#查看环境信息
conda info --envs
#创建一个安装过numpy库的python虚拟环境
conda create --name my_env python=3 numpy
#移除虚拟环境
conda remove --name my_env --all
#升级Anaconda
conda update anaconda
#卸载 Anaconda
onda install anaconda-clean

Anaconda里包含的编程环境

  • Python(shell) : 标准CPython
  • IPython(shell): 相当于在命令窗口的命令提示符后输入ipython回车。pip install ipython安装的ipython用法一样。
  • Ipython QTConsole
  • IPython Notebook:直接点击打开,或者在命令提示符中输入ipython.exe notebook
  • Jupyter QTConsole
  • Jupyter Notebook:直接点击打开,或在终端中输入: jupyter notebook 以启动服务器;在浏览器中打开notebook页面地址:http://localhost:8888 。Jupyter Notebook是一种 Web 应用,能让用户将说明文本、数学方程、代码和可视化内容全部组合到一个易于共享的文档中。
  • Spyder:直接点击打开IDE。最大优点就是模仿MATLAB的“工作空间”
  • Anaconda Prompt : 命令行终端
  • 支持其他IDE,如Pycharm

Anaconda安装包管理

  • 列出已经安装的包:在命令提示符中输入pip list或者用conda list
  • 安装新包:在命令提示符中输入“pip install 包名”,或者“conda install 包名”
  • 更新包: conda update package_name
  • 升级所有包: conda upgrade –all
  • 卸载包:conda remove package_names
  • 搜索包:conda search search_term

Anaconda管理环境

  • 安装nb_conda,用于notebook自动关联nb_conda的环境
  • 创建环境:在Anaconda终端中 conda create -n env_name package_names[=ver]
  • 使用环境:在Anaconda终端中 activate env_name
  • 离开环境:在Anaconda终端中 deactivate
  • 导出环境设置:conda env export > environmentName.yaml 或 pip freeze > environmentName.txt
  • 导入环境设置:conda env update -f=/path/environmentName.yaml 或 pip install -r /path/environmentName.txt
  • 列出环境清单:conda env list
  • 删除环境: conda env remove -n env_name

{ Comments on this entry are closed }

Web压力测试工具:Locust

by Web全栈工程师 on 2017 年 10 月 22 日

Locust是一款用Python编写的分布式用户负载测试工具,用于对网站(或其他系统)进行负载测试,并确定系统可以处理多少并发用户。

Locust完全基于事件,因此可以在一台机器上支持数千个并发用户。与许多其他基于事件的应用程序相比,它不使用回调,并且能自定义每个并发的行为,非常有助于代码测试:

安装Locust

Locust安装对Python版本有要求,这里使用了conda管理不同的python版本

conda create --name locust_env python=3.6
source activate locust_env
python -m pip install locustio	

编写locust脚本

from locust import HttpLocust, TaskSet, TaskSet

def index(l):
  l.client.get("/")

class UserTasks(TaskSet):
  tasks = [index]

class WebsiteUser(HttpLocust):
  host = "http://0.0.0.0:8089"
  min_wait = 2000
  max_wait = 5000
  task_set = UserTasks	

脚本保存在:locustfile.py

运行Locust测试

#如果存在locustfile.py文件,则可以:
locust --host=http://domain.com

#或者
locust -H http://domain.com -f locustfile.py

打开 url:8089,

有2个参数:

  • Number of users to simulate的意思是我们需要多少的并发用户
  • Hatch rate (users spawned/second)每秒递增用户

参数“Number of users to simulate” 和 system open files limit 文件句柄限制有关,影响到并发上限

#查看open files
ulimit -n
ulimit -Sn
ulimit -Hn

#临时修改 open files
ulimit -n 1024000

#永久修改
echo "fs.nr_open = 10000000" >> /etc/sysctl.conf
echo "fs.file-max = 11000000" >> /etc/sysctl.conf

一般nginx的并发在5万左右

参考资料

https://docs.locust.io/en/stable/quickstart.html#start-locust
https://debugtalk.com/post/locustplus-talk-about-performance-test/
https://debugtalk.com/post/head-first-locust-user-guide/
http://www.chengweiyang.cn/2015/11/14/how-to-enlarge-linux-open-files-upper-cell/

{ Comments on this entry are closed }

搭建Syncthing文件同步服务

九月 11, 2017

Syncthing是一个开源的文件同步客户端与服务器软件,采用Go语言编写。它可以在本地网络上的设备之间或通过 […]

Read the full article →

Ubuntu远程挂载小米路由器磁盘

八月 21, 2017

Ubuntu远程挂载小米路由器,并允许非root用户访问: 小米路由器设置:允许终端”全盘访问&# […]

Read the full article →

Git Cheat Sheet

七月 1, 2017

Git 常用命令速查 入门 git init or git clone url 配置 git config – […]

Read the full article →

PC电脑远程控制Android手机

六月 7, 2017

Teamviewer的TeamviewerHost功能能实现远程无人值守Android设备,但是有二个缺点,一 […]

Read the full article →

Window上的命令行终端工具Cmder

五月 5, 2017

Window下自动的Terminal工具:CMD或者PowerShell,总是用的不顺手;这里推荐一款Cmde […]

Read the full article →

HIVE 使用指南

四月 6, 2017

HIVE 介绍 hive是什么? hive是一个基于hadoop的数据仓库系统,提供一种机制把数据映射为结构化 […]

Read the full article →

Docker 可视化管理平台

三月 10, 2017

UI For Docker 项目地址:https://github.com/kevana/ui-for-doc […]

Read the full article →

TensorFlow 资源整理

三月 1, 2017

jtoy 发起整理的 TensorFlow 资源,包含一些很棒的 TensorFlow 工程、库、项目等。 什 […]

Read the full article →