内存参数

mysql 监控及优化——转载自http://www.cnblogs.com/suansuan/

自作多情 提交于 2019-12-06 09:59:05
1、Mysql连接数   Mysql默认最大连接数为100。   设置Mysql的最大连接数,在Mysql的配置文件中增加:   max_connections = 1000               #Mysql的最大连接数,默认如果不写的话是100个   wait_timeout = 10               #超时时间   配置文件路径:    (/etc/my.cnf 系统自带) (/opt/lampp/etc/my.cnf 安装Mysql 路径)   查看当前有多少个连接   show status like '%Threads_connected%';  #查看当前连接数   show processlist;            #也可查看锁表 2、Mysql缓存   Query Cache缓存的是sql语句对应的结果集,InnoDB_Buffer_Pool中缓存的是表中的数据。Buffer_Pool是设置的越大越好,一般设置为服务器物理内存的70%。   缓存1(MySQL层):查询缓存 Query Cache     ①.查询表里的数据有变化,之前的缓存失效。     ②.查询语句必须一模一样,才能用查询缓存;只要字符大小写或者注释等有一点点不同,都不可以用查询缓存。     ③.任何一个包含不确定的函数(比如now(),current_date()

Spark性能优化

[亡魂溺海] 提交于 2019-12-06 03:09:44
Spark性能优化 1)避免创建重复RDD 2)尽可能复用同一个RDD 3)对多次使用的RDD进行持久化 4)尽量避免使用shuffle类算子 5)使用map-side预聚合的shuffle操作 6)使用高性能的算子 7)广播大变量 8)使用Kryo优化序列化性能 9)优化数据结构 10)资源参数调优 1)避免创建重复RDD ​ 对于同一份数据,只应该创建一个RDD,不能创建多个RDD来代表同一份数据。 2)尽可能复用同一个RDD ​ 除了要避免在开发过程中对一份完全相同的数据创建多个RDD之外,在对不同的数据执行算子 操作时还要尽可能地复用一个RDD。比如说,有一个RDD的数据格式是key-value类型的,另 一个是单value类型的,这两个RDD的value数据是完全一样的。那么此时我们可以只使用key-value类型的那个RDD,因为其中已经包含了另一个的数据。对于类似这种多个RDD的数据有重叠或者包含的情况,我们应该尽量复用一个RDD,这样可以尽可能地减少RDD的数量,从而尽可能减少算子执行的次数。 3)对多次使用的RDD进行持久化 Spark中对于一个RDD执行多次算子的默认原理是这样的:每次你对一个RDD执行一个算子操作时,都会重新从源头处计算一遍,计算出那个RDD来,然后再对这个RDD执行你的算子操作。因此对于这种情况,建议是:对多次使用的RDD进行持久化

Linux gdb调试器用法全面解析

这一生的挚爱 提交于 2019-12-06 01:16:29
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/21cnbao/article/details/7385161 更多精华文章请扫描下方二维码关注Linux阅码场 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具,GDB主要可帮助工程师完成下面4个方面的功能: 启动程序,可以按照工程师自定义的要求随心所欲的运行程序。 让被调试的程序在工程师指定的断点处停住,断点可以是条件表达式。 当程序被停住时,可以检查此时程序中所发生的事,并追索上文。 动态地改变程序的执行环境。 不管是调试Linux内核空间的驱动还是调试用户空间的应用程序,掌握gdb的用法都是必须。而且,调试内核和调试应用程序时使用的gdb命令是完全相同的,下面以代码清单22.2的应用程序为例演示gdb调试器的用法。 1 int add(int a, int b) 2 { 3 return a + b; 4 } 5 6 main() 7 { 8 int sum[10] = 9 { 10 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 11 } ; 12 int i; 13 14 int array1[10] = 15 { 16 48, 56, 77, 33, 33, 11, 226, 544,

Python面试题(4)

浪子不回头ぞ 提交于 2019-12-06 00:37:25
1.Python下多线程的限制以及多进程中传递参数的方式 Python多线程有个全局解释器锁,这个锁的意思是任一时间只能有一个线程运用解释器。并发不是并行。 多进程间同享数据,能够运用multiprocession.Value和multiprocessing.Array 认真学习下multiprocessing模块 2.Python是怎样进行内存管理的 内存池的概念 3.什么是lambda函数?他有什么好处? lambda函数是一个能接纳任意多个参数并且返回单个表达式值的函数。 lambda函数不能包括指令,他们所包括的表达式不能超过一个。 不要试图想lambda函数中塞入太多东西,如果需要更复杂的东西,就定义一个一般函数。 4.怎么用Python输出一个Fibonacci数列? 基础。 5.介绍下Python中webbrowser的用法? 熟悉webbrowser模块。 6.解释下Python的and-or语法 这里需要大致知道and和or用于列表和数字之间的区别。 7.如何倒序迭代一个数组 # 通用方法 for i in range(len(l)-1, -1,-1): print(l[i]) # 内置函数reversed for i in reversed(l): print(i) 8.Python是怎样进行类型变换的 9.Python里面如何实现tuple和list的转换

python-redis

江枫思渺然 提交于 2019-12-05 23:57:27
一、简介 二、redis的安装和使用 三、python操作redis之安装和支持存储类型 四、python操作redis连接:   普通连接   连接池 五、操作之String操作: 六、操作之Hash操作: 七、操作之list操作: 八、操作之set操作: 九、管道: 十、django中使用redis 一、简介 redis是一个key-value存储系统。和Memcached类似,它支持存储value类型相对更多,   包括string(字符串)、       list(列表)、       set(集合)、       zset(sorted set --有序集合)       hash(哈希类型) 这些数据类型都支持push/pop/add/remove及取交集和差集以及更加丰富的操作,这些操作都是原子性的。在这基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中的。区别是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-salve(主从)同步 1、使用redis的好处   1、速度快,数据存放到内存中,存放的数据都是key-value形式的无关联数据,查找时间更快  2、支持丰富分数据类型,string,list,set,sorted set,hash   3

MySQL技术体系之核心参数

一个人想着一个人 提交于 2019-12-05 22:19:39
本文主要基于MySQL 5.7版本的数据库环境,总结my.cnf文件中核心参数的配置使用,让更多的人对MySQL技术体系有更全面、更专业的深度了解。 一、客户端核心参数 1、port 端口号,默认3306 2、socket Socket文件地址,默认以.sock为文件名称后缀,用于UNIX套接字通信。 二、服务端全局区(SGA)缓冲区参数 1、innodb_buffer_pool InnoDB缓冲池,位于主内存 缓存被访问过的表数据、索引文件、插入缓冲、数据字典等 推荐大小设置为物理内存的50%-80% 2、innodb_buffer_pool_instance 将缓冲池进一步划分为互相隔离的内存区域,更好的支持并发读写,减少内存争用现象 默认值为1 仅当innodb_buffer_pool参数配置大于1024MB有效 通过命令show engine innodb status查看每个内存区域的内存使用情况 3、innodb_old_blocks_time和innodb_old_blocks_pct InnoDB缓冲池innodb_buffer_pool,内部由LRU链表管理 LRU链表进一步分为old pages list和young pages list: old pages list:存放长时间未被访问的数据页 young pages list:存放最新、最近被访问的数据页

ABAP基础语法总结心得

ⅰ亾dé卋堺 提交于 2019-12-05 22:17:41
1.数据类型及属性 类型 说明 C N 0到9之间字符组成的数字字符串 D 日期格式必须为 YYYYMMDD T 格式为 24-hour的 HHMMSS I -2.147.483.648 to +2.147.483.647 F 小数位最大可以到17位,即可精确到小数点后17位 P 两个数字位压缩后才占一个字节,由于0-9的数字只需要4Bit位,所以一个字节实质上允许存储二位数字,这就是P数据类型为压缩数据类型的由来。并借用半个字节来存储小数点位置、正号、负号相关信息 X 十六进制字符 0-9, A-F具体的范围为:00~FF 类型X是十六进制类型,可表示内存字节实际内容,使用两个十六制字符表示一个字节中所存储的内容。但直接打印输出时,输出的还是赋值时字面意义上的值,而不是Unicode解码后的字符 如果未在 DATA 语句中指定参数<length>,则创建长度为 1 注:如果值是字母,则一定要大写 语法示例: DATA: number(16) TYPE p DECIMALS 14 VALUE '12345678901234567.89012345678901'. "16 * 2 = 32表示了整个字面意义上允许的最大字面个数,而14表示的是字面上小数点后面允许的最大小数位,而不是指14个字节,只有这里定义时的16才表示16个字节 predefined ABAP types Type

修改java虚拟机启动内存大小

白昼怎懂夜的黑 提交于 2019-12-05 19:35:44
在运行java桌面应用程序的时候,有时候会因为jvm内存太小,从而内存溢出,程序崩溃。 可是通过修改 eclipse.ini 中的参数,来实现修改jvm的内存大小。 -vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M 这里有几个问题: 1. 各个参数的含义什么? 2. 为什么有的机器我将-Xmx和-XX:MaxPermSize都设置为512M之后Eclipse可以启动,而有些机器无法启动? 3. 为何将上面的参数写入到eclipse.ini文件Eclipse没有执行对应的设置? 1. 各个参数的含义什么? 参数中-vmargs的意思是设置JVM参数,所以后面的其实都是JVM的参数了,我们首先了解一下JVM内存管理的机制,然后再解释每个参数代表的含义。 堆(Heap)和非堆(Non-heap)内存 按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给自己用的,所以方法区、JVM内部处理或优化所需的内存

前端面试实习题目总结:

只谈情不闲聊 提交于 2019-12-05 18:00:20
以下是部分整理,有时间还会整理出其他的~~ (最近还在找实习呜呜~~) 1.JavaScript是一种弱类型语言,有什么优点和缺点 https://blog.csdn.net/sinolze... (1)强类型定义语言:强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。举个例子:如果你定义了一个整型变量a,那么程序根本不可能将a当作字符串类型处理。强类型定义语言是类型安全的语言。 (2)弱类型定义语言:数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。 强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。另外,“这门语言是不是动态语言”与“这门语言是否类型安全”之间是完全没有联系的! 例如:Python是动态语言,是强类型定义语言(类型安全的语言); VBScript是动态语言,是弱类型定义语言(类型不安全的语言);JAVA是静态语言,是强类型定义语言(类型安全的语言)。 2.js的数据类型: https://www.cnblogs.com/wu-we... .类型定义 JS是一种弱类型语言。JS拥有动态类型,相同的变量可以用作不同的类型。 JS有7种数据类型:三种基本类型(数字,字符串,布尔),两种引用数据类型(对象,数组)

JVM 参数调优配置

妖精的绣舞 提交于 2019-12-05 16:03:25
在 tomcat 配置文件 tomcat/bin/catalina.sh 中 配置 JAVA_OPTS="-server -Xms2048m -Xmx2048m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=1024m"。在配置文件第一行进行配置。 -Xms 2048m:设置 JVM初始分配的堆内存 为2048m,若设置与-Xmx不同,每次垃圾回收完成后JVM重新分配内存. -Xmx 4096m:设置 JVM最大可用堆内存 为4096M. -Xss 1024k :设置 每个线程的堆栈大小 为1024K。JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K.更具应用的线程所需内存大小进行 调整.在相同物理内存下,减小这个值能生成更多的线程.但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右. -XX:PermSize =512m:设置 非堆区初始内存 分配大小为512m,其缩写为permanent size(持久化内存). -XX:MaxPermSize =512m:设置JVM最大允许分配的 非堆内存 最大上限为512m. 注:在配置之前一定要慎重的考虑一下自身软件所需要的非堆区内存大小,因为此处内存是不会被java垃圾回收机制进行处理的地方。并且更加要注意的是