增加table_open_cache或max_tmp_tables 参数的大小后,从操作系统的角度看,mysqld进程需要使用的文件描述符的个数就要相应的增加,这个是由open_files_limit参数控制的 。
mysql> show variables like ‘open_files%’; +——————+——-+ | Variable_name | Value | +——————+——-+ | open_files_limit | 2670 | +——————+——-+ 1 row in set (0.00 sec) 但是这个参数是OS限制的,所以我们设定的值并不一定总是生效 。如果OS限制MySQL不能修改这个值,那么置为0 。如果是专用的MySQL服务器上,这个值一般要设置的尽量大,就是设为没有报Too many open files错误的最大值,这样就能一劳永逸了 。当操作系统无法分配足够的文件描述符的时候,mysqld进程会在错误日志里记录警告信息 。相应的,有两个状态变量记录了当前和历史的文件打开信息:
mysql> show global status like ‘%open%file%’; +—————+——-+ | Variable_name | Value | +—————+——-+ | Open_files | 0 | | Opened_files | 76 | +—————+——-+ 2 rows in set (0.00 sec) MySQL为每个连接分配线程来处理,可以通过threads_connected参数查看当前分配的线程数量:
mysql> show status like ‘%thread%’; +——————————————+——-+ | Variable_name | Value | +——————————————+——-+ | Delayed_insert_threads | 0 | | Performance_schema_thread_classes_lost | 0 | | Performance_schema_thread_instances_lost | 0 | | Slow_launch_threads | 0 | | Threads_cached | 0 | | Threads_connected | 1 | | Threads_created | 1 | | Threads_running | 1 | +——————————————+——-+ 8 rows in set (0.00 sec) 比较threads_connected参数和前面提到的max_connections参数,也可以作为目前的系统负载的参照,决定是否需要修改连接数 。
查看每个线程的详细信息:mysql>show processlist;对影响系统运行的线程:kill connection|query threadid的命令杀死 。
推荐阅读
- 九个MySQL数据库经典错误
- 淘宝洋淘秀在哪里设置 洋淘买家秀怎么设置
- 四统促建成贵最大高端绿茶生产合作社
- 佛教中能量最大的咒语 能量最强的咒语
- 世界上最大的动物是水母 世界上最毒的海洋动物
- 世界上最大的鲨鱼有多长 世界上最大的鲨鱼最大可以长多少米
- mysql之my.cnf/my.ini常用配置整理
- 我国最大的佛像在哪里 中国最大佛像拆除是真的吗
- 世界上飞的最高的鸟类之一 现存世界上最大的鹰有多大
- 鳐鱼是海洋中最大的硬骨鱼 鳎目鱼最大多少斤
