Re: [openstack-dev] [nova][cinder] (OperationalError) (1040, 'Too many connections') None None
On Sun, Sep 28, 2014 at 5:56 PM, Nader Lahouti nader.laho...@gmail.com wrote: Hi All, I am seeing 'Too many connections' error in nova api and cinder when when installing openstack using the latest.. The error happens when launching couple of VMs (in this test around 5 VMs). Here are the logs when error happens: (1) nova-api logs/traceback: http://paste.openstack.org/show/116414/ (2) cinder api logs/traceback: http://paste.openstack.org/show/hbaomc5IVS3mig8z2BWq/ (3) Stats of some connections: http://paste.openstack.org/show/116425/ As it shown in (3) the issue is not seen with icehouse release. Can somebody please let me know if it is a known issue? Hi Nader, Would you mind pastebin'ing the contents of: SHOW FULL PROCESSLIST\G when executed from the mysql command line client? That will help to show us which threads are stuck executing what in MySQL. Best, -jay ___ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
Re: [openstack-dev] [nova][cinder] (OperationalError) (1040, 'Too many connections') None None
On Sep 28, 2014, at 5:56 PM, Nader Lahouti nader.laho...@gmail.com wrote: Hi All, I am seeing 'Too many connections' error in nova api and cinder when when installing openstack using the latest.. The error happens when launching couple of VMs (in this test around 5 VMs). Here are the logs when error happens: (1) nova-api logs/traceback: http://paste.openstack.org/show/116414/ (2) cinder api logs/traceback: http://paste.openstack.org/show/hbaomc5IVS3mig8z2BWq/ (3) Stats of some connections: http://paste.openstack.org/show/116425/ As it shown in (3) the issue is not seen with icehouse release. Can somebody please let me know if it is a known issue? I’ve not been alerted to this before, the stats on (3) look pretty alarming. anyone else seeing things like this? ___ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
Re: [openstack-dev] [nova][cinder] (OperationalError) (1040, 'Too many connections') None None
Hi Jay, Thanks for your reply. I'm not able to use mysql command line. $ mysql ERROR 1040 (HY000): Too many connections $ Is there any other way to collect the information? Thanks, Nader. On Mon, Sep 29, 2014 at 8:42 AM, Jay Pipes jaypi...@gmail.com wrote: On Sun, Sep 28, 2014 at 5:56 PM, Nader Lahouti nader.laho...@gmail.com wrote: Hi All, I am seeing 'Too many connections' error in nova api and cinder when when installing openstack using the latest.. The error happens when launching couple of VMs (in this test around 5 VMs). Here are the logs when error happens: (1) nova-api logs/traceback: http://paste.openstack.org/show/116414/ (2) cinder api logs/traceback: http://paste.openstack.org/show/hbaomc5IVS3mig8z2BWq/ (3) Stats of some connections: http://paste.openstack.org/show/116425/ As it shown in (3) the issue is not seen with icehouse release. Can somebody please let me know if it is a known issue? Hi Nader, Would you mind pastebin'ing the contents of: SHOW FULL PROCESSLIST\G when executed from the mysql command line client? That will help to show us which threads are stuck executing what in MySQL. Best, -jay ___ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev ___ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
Re: [openstack-dev] [nova][cinder] (OperationalError) (1040, 'Too many connections') None None
What do you see if you run mysqladmin processlist I hope it doesn’t also give the same error (but that may be what you see). -amrith From: Nader Lahouti [mailto:nader.laho...@gmail.com] Sent: Monday, September 29, 2014 12:31 PM To: OpenStack Development Mailing List (not for usage questions) Subject: Re: [openstack-dev] [nova][cinder] (OperationalError) (1040, 'Too many connections') None None Hi Jay, Thanks for your reply. I'm not able to use mysql command line. $ mysql ERROR 1040 (HY000): Too many connections $ Is there any other way to collect the information? Thanks, Nader. On Mon, Sep 29, 2014 at 8:42 AM, Jay Pipes jaypi...@gmail.commailto:jaypi...@gmail.com wrote: On Sun, Sep 28, 2014 at 5:56 PM, Nader Lahouti nader.laho...@gmail.commailto:nader.laho...@gmail.com wrote: Hi All, I am seeing 'Too many connections' error in nova api and cinder when when installing openstack using the latest.. The error happens when launching couple of VMs (in this test around 5 VMs). Here are the logs when error happens: (1) nova-api logs/traceback: http://paste.openstack.org/show/116414/ (2) cinder api logs/traceback: http://paste.openstack.org/show/hbaomc5IVS3mig8z2BWq/ (3) Stats of some connections: http://paste.openstack.org/show/116425/ As it shown in (3) the issue is not seen with icehouse release. Can somebody please let me know if it is a known issue? Hi Nader, Would you mind pastebin'ing the contents of: SHOW FULL PROCESSLIST\G when executed from the mysql command line client? That will help to show us which threads are stuck executing what in MySQL. Best, -jay ___ OpenStack-dev mailing list OpenStack-dev@lists.openstack.orgmailto:OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev ___ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
Re: [openstack-dev] [nova][cinder] (OperationalError) (1040, 'Too many connections') None None
On Sep 29, 2014, at 12:31 PM, Nader Lahouti nader.laho...@gmail.com wrote: Hi Jay, Thanks for your reply. I'm not able to use mysql command line. $ mysql ERROR 1040 (HY000): Too many connections $ Is there any other way to collect the information? you can try stopping everything, getting on the command line *first* and leaving it open, then rerunning your whole environment, so that you’ve reserved that spot at least to do testing queries. Thanks, Nader. On Mon, Sep 29, 2014 at 8:42 AM, Jay Pipes jaypi...@gmail.com wrote: On Sun, Sep 28, 2014 at 5:56 PM, Nader Lahouti nader.laho...@gmail.com wrote: Hi All, I am seeing 'Too many connections' error in nova api and cinder when when installing openstack using the latest.. The error happens when launching couple of VMs (in this test around 5 VMs). Here are the logs when error happens: (1) nova-api logs/traceback: http://paste.openstack.org/show/116414/ (2) cinder api logs/traceback: http://paste.openstack.org/show/hbaomc5IVS3mig8z2BWq/ (3) Stats of some connections: http://paste.openstack.org/show/116425/ As it shown in (3) the issue is not seen with icehouse release. Can somebody please let me know if it is a known issue? Hi Nader, Would you mind pastebin'ing the contents of: SHOW FULL PROCESSLIST\G when executed from the mysql command line client? That will help to show us which threads are stuck executing what in MySQL. Best, -jay ___ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev ___ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev ___ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
Re: [openstack-dev] [nova][cinder] (OperationalError) (1040, 'Too many connections') None None
On 09/29/2014 12:31 PM, Nader Lahouti wrote: Hi Jay, Thanks for your reply. I'm not able to use mysql command line. $ mysql ERROR 1040 (HY000): Too many connections $ Is there any other way to collect the information? This should allow you to change the max connections property without restarting the server, and then you should be able to connect to MySQL and run SHOW FULL PROCESSLIST for us: http://www.percona.com/blog/2010/03/23/too-many-connections-no-problem/ Best, -jay ___ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
Re: [openstack-dev] [nova][cinder] (OperationalError) (1040, 'Too many connections') None None
Hi Jay, I login first and the recreated the problem and here is the log: http://paste.openstack.org/show/116776/ Thanks, Nader. On Mon, Sep 29, 2014 at 8:42 AM, Jay Pipes jaypi...@gmail.com wrote: On Sun, Sep 28, 2014 at 5:56 PM, Nader Lahouti nader.laho...@gmail.com wrote: Hi All, I am seeing 'Too many connections' error in nova api and cinder when when installing openstack using the latest.. The error happens when launching couple of VMs (in this test around 5 VMs). Here are the logs when error happens: (1) nova-api logs/traceback: http://paste.openstack.org/show/116414/ (2) cinder api logs/traceback: http://paste.openstack.org/show/hbaomc5IVS3mig8z2BWq/ (3) Stats of some connections: http://paste.openstack.org/show/116425/ As it shown in (3) the issue is not seen with icehouse release. Can somebody please let me know if it is a known issue? Hi Nader, Would you mind pastebin'ing the contents of: SHOW FULL PROCESSLIST\G when executed from the mysql command line client? That will help to show us which threads are stuck executing what in MySQL. Best, -jay ___ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev ___ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
Re: [openstack-dev] [nova][cinder] (OperationalError) (1040, 'Too many connections') None None
On 09/29/2014 12:48 PM, Nader Lahouti wrote: Hi Jay, I login first and the recreated the problem and here is the log: http://paste.openstack.org/show/116776/ OK. Looks like there isn't anything wrong with your setup. I'm guessing you have set up Keystone to run in Apache with 10 worker processes, and you have the workers config option setting in nova.conf, neutron.conf and all the other project configuration files set to 0, which will trigger a number of worker processes equal to the number of CPU cores on your box, which I'm guessing from looking at your SHOW FULL PROCESSLIST is around 24-32 cores. Solution: either lower the workers configuration option from 0 to something like 12, or increase the max_connections setting in your my.cnf to something that can handle the worker processes from all the OpenStack services (I'd recommend something like 2000). Best, -jay ___ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
Re: [openstack-dev] [nova][cinder] (OperationalError) (1040, 'Too many connections') None None
On Mon, Sep 29, 2014 at 9:58 AM, Jay Pipes jaypi...@gmail.com wrote: On 09/29/2014 12:48 PM, Nader Lahouti wrote: Hi Jay, I login first and the recreated the problem and here is the log: http://paste.openstack.org/show/116776/ OK. Looks like there isn't anything wrong with your setup. I'm guessing you have set up Keystone to run in Apache with 10 worker processes, and you have the workers config option setting in nova.conf, neutron.conf and all the other project configuration files set to 0, which will trigger a number of worker processes equal to the number of CPU cores on your box, which I'm guessing from looking at your SHOW FULL PROCESSLIST is around 24-32 cores. I haven't modified the default values in *.conf files (I'm using devstack for installation) for workers setting. How to check that keystone is using apache with 10 worker process? And the number of CPU cores on my box is 32. Solution: either lower the workers configuration option from 0 to something like 12, or increase the max_connections setting in your my.cnf to something that can handle the worker processes from all the OpenStack services (I'd recommend something like 2000). Just for clarification, regarding the setting of workers option in the *.conf file: Fore neutron: # api_workers = 0 For nova, what option should be set? I see these options: metadata_workers=None(IntOpt)Number of workers for metadata service I'll try your solution and let you know the result. Best, -jay ___ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev ___ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
Re: [openstack-dev] [nova][cinder] (OperationalError) (1040, 'Too many connections') None None
Yes, looks like MySQL was just configured with too low a max-connections value. -amrith | -Original Message- | From: Jay Pipes [mailto:jaypi...@gmail.com] | Sent: Monday, September 29, 2014 12:58 PM | To: openstack-dev@lists.openstack.org | Subject: Re: [openstack-dev] [nova][cinder] (OperationalError) (1040, 'Too | many connections') None None | | On 09/29/2014 12:48 PM, Nader Lahouti wrote: | Hi Jay, | | I login first and the recreated the problem and here is the log: | http://paste.openstack.org/show/116776/ | | OK. Looks like there isn't anything wrong with your setup. I'm guessing | you have set up Keystone to run in Apache with 10 worker processes, and | you have the workers config option setting in nova.conf, neutron.conf and | all the other project configuration files set to 0, which will trigger a | number of worker processes equal to the number of CPU cores on your box, | which I'm guessing from looking at your SHOW FULL PROCESSLIST is around | 24-32 cores. | | Solution: either lower the workers configuration option from 0 to | something like 12, or increase the max_connections setting in your my.cnf | to something that can handle the worker processes from all the OpenStack | services (I'd recommend something like 2000). | | Best, | -jay | | ___ | OpenStack-dev mailing list | OpenStack-dev@lists.openstack.org | http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev ___ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
Re: [openstack-dev] [nova][cinder] (OperationalError) (1040, 'Too many connections') None None
what’s spooking me is the original paste at http://paste.openstack.org/show/116425/ which showed: icehouse: Fri Sep 26 17:00:50 PDT 2014 Number of open TCP:3306 - 58 Number of open TCP:3306 nova-api - 5 Number of open TCP:3306 mysqld - 29 Number of open TCP:8774 - 10 Number of nova-api - 14 fresh startup with juno: Fri Sep 26 09:42:58 PDT 2014 Number of open TCP:3306 - 152 Number of open TCP:3306 nova-api - 7 Number of open TCP:3306 mysqld - 76 Number of open TCP:8774 - 66 Number of nova-api - 99 does that seem right that an upgrade from icehouse would cause there to be 99 nova-api procs at startup where there were only 14 before? On Sep 29, 2014, at 1:34 PM, Amrith Kumar amr...@tesora.com wrote: Yes, looks like MySQL was just configured with too low a max-connections value. -amrith | -Original Message- | From: Jay Pipes [mailto:jaypi...@gmail.com] | Sent: Monday, September 29, 2014 12:58 PM | To: openstack-dev@lists.openstack.org | Subject: Re: [openstack-dev] [nova][cinder] (OperationalError) (1040, 'Too | many connections') None None | | On 09/29/2014 12:48 PM, Nader Lahouti wrote: | Hi Jay, | | I login first and the recreated the problem and here is the log: | http://paste.openstack.org/show/116776/ | | OK. Looks like there isn't anything wrong with your setup. I'm guessing | you have set up Keystone to run in Apache with 10 worker processes, and | you have the workers config option setting in nova.conf, neutron.conf and | all the other project configuration files set to 0, which will trigger a | number of worker processes equal to the number of CPU cores on your box, | which I'm guessing from looking at your SHOW FULL PROCESSLIST is around | 24-32 cores. | | Solution: either lower the workers configuration option from 0 to | something like 12, or increase the max_connections setting in your my.cnf | to something that can handle the worker processes from all the OpenStack | services (I'd recommend something like 2000). | | Best, | -jay | | ___ | OpenStack-dev mailing list | OpenStack-dev@lists.openstack.org | http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev ___ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev ___ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
Re: [openstack-dev] [nova][cinder] (OperationalError) (1040, 'Too many connections') None None
more on to previous reply (sorry hit the send button by accident) For nova workers option: osapi_compute_workers=None And what is for keystone what option need to be set? # The number of worker processes to serve the public WSGI # application. Defaults to number of CPUs (minimum of 2). # (integer value) #public_workers=None # The number of worker processes to serve the admin WSGI # application. Defaults to number of CPUs (minimum of 2). # (integer value) #admin_workers=None I'll try your solution and let you know the result. Thanks, Nader. On Mon, Sep 29, 2014 at 10:34 AM, Nader Lahouti nader.laho...@gmail.com wrote: On Mon, Sep 29, 2014 at 9:58 AM, Jay Pipes jaypi...@gmail.com wrote: On 09/29/2014 12:48 PM, Nader Lahouti wrote: Hi Jay, I login first and the recreated the problem and here is the log: http://paste.openstack.org/show/116776/ OK. Looks like there isn't anything wrong with your setup. I'm guessing you have set up Keystone to run in Apache with 10 worker processes, and you have the workers config option setting in nova.conf, neutron.conf and all the other project configuration files set to 0, which will trigger a number of worker processes equal to the number of CPU cores on your box, which I'm guessing from looking at your SHOW FULL PROCESSLIST is around 24-32 cores. I haven't modified the default values in *.conf files (I'm using devstack for installation) for workers setting. How to check that keystone is using apache with 10 worker process? And the number of CPU cores on my box is 32. Solution: either lower the workers configuration option from 0 to something like 12, or increase the max_connections setting in your my.cnf to something that can handle the worker processes from all the OpenStack services (I'd recommend something like 2000). Just for clarification, regarding the setting of workers option in the *.conf file: Fore neutron: # api_workers = 0 For nova, what option should be set? I see these options: metadata_workers=None(IntOpt)Number of workers for metadata service I'll try your solution and let you know the result. Best, -jay ___ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev ___ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
Re: [openstack-dev] [nova][cinder] (OperationalError) (1040, 'Too many connections') None None
On 09/29/2014 01:34 PM, Nader Lahouti wrote: On Mon, Sep 29, 2014 at 9:58 AM, Jay Pipes jaypi...@gmail.com mailto:jaypi...@gmail.com wrote: On 09/29/2014 12:48 PM, Nader Lahouti wrote: Hi Jay, I login first and the recreated the problem and here is the log: http://paste.openstack.org/__show/116776/ http://paste.openstack.org/show/116776/ OK. Looks like there isn't anything wrong with your setup. I'm guessing you have set up Keystone to run in Apache with 10 worker processes, and you have the workers config option setting in nova.conf, neutron.conf and all the other project configuration files set to 0, which will trigger a number of worker processes equal to the number of CPU cores on your box, which I'm guessing from looking at your SHOW FULL PROCESSLIST is around 24-32 cores. I haven't modified the default values in *.conf files (I'm using devstack for installation) for workers setting. How to check that keystone is using apache with 10 worker process? And the number of CPU cores on my box is 32. OK, as I suspected. Solution: either lower the workers configuration option from 0 to something like 12, or increase the max_connections setting in your my.cnf to something that can handle the worker processes from all the OpenStack services (I'd recommend something like 2000). Just for clarification, regarding the setting of workers option in the *.conf file: Fore neutron: # api_workers = 0 For nova, what option should be set? I see these options: metadata_workers=None (IntOpt)Number of workers for metadata service You can keep all those options as-is (the default of 0) and just set your my.cnf max_connections variable to 2000. Best, -jay ___ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
Re: [openstack-dev] [nova][cinder] (OperationalError) (1040, 'Too many connections') None None
On Mon, Sep 29, 2014 at 12:34 PM, Nader Lahouti nader.laho...@gmail.com wrote: I haven't modified the default values in *.conf files (I'm using devstack for installation) for workers setting. How to check that keystone is using apache with 10 worker process? And the number of CPU cores on my box is 32. About two weeks ago we changed DevStack to default to setting the worker count to NPROC / 2, with a minimum of 2. As of today, this will set workers for ceilometer (non-mod_wsgi), cinder, glance, keystone (non-mod_wsgi), nova, swift and trove. This is controlled by API_WORKERS in local.conf. dt -- Dean Troyer dtro...@gmail.com ___ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
Re: [openstack-dev] [nova][cinder] (OperationalError) (1040, 'Too many connections') None None
Jay, I increased the max_connection to 2000 and so far don't see any issue. After launching 20 VMs the number of connections as follows: Mon Sep 29 05:05:29 PDT 2014 Number of open TCP:3306 - 326 Number of open TCP:3306 nova-api - 34 Number of open TCP:3306 mysqld - 163 Number of open TCP:8774 - 66 Number of nova-api - 98 It seems the default max_connection for Juno in not enough and should be changed as you suggested. But the question is what is correct/reliable value? Thanks for the help. Nader. On Mon, Sep 29, 2014 at 10:41 AM, Jay Pipes jaypi...@gmail.com wrote: On 09/29/2014 01:34 PM, Nader Lahouti wrote: On Mon, Sep 29, 2014 at 9:58 AM, Jay Pipes jaypi...@gmail.com mailto:jaypi...@gmail.com wrote: On 09/29/2014 12:48 PM, Nader Lahouti wrote: Hi Jay, I login first and the recreated the problem and here is the log: http://paste.openstack.org/__show/116776/ http://paste.openstack.org/show/116776/ OK. Looks like there isn't anything wrong with your setup. I'm guessing you have set up Keystone to run in Apache with 10 worker processes, and you have the workers config option setting in nova.conf, neutron.conf and all the other project configuration files set to 0, which will trigger a number of worker processes equal to the number of CPU cores on your box, which I'm guessing from looking at your SHOW FULL PROCESSLIST is around 24-32 cores. I haven't modified the default values in *.conf files (I'm using devstack for installation) for workers setting. How to check that keystone is using apache with 10 worker process? And the number of CPU cores on my box is 32. OK, as I suspected. Solution: either lower the workers configuration option from 0 to something like 12, or increase the max_connections setting in your my.cnf to something that can handle the worker processes from all the OpenStack services (I'd recommend something like 2000). Just for clarification, regarding the setting of workers option in the *.conf file: Fore neutron: # api_workers = 0 For nova, what option should be set? I see these options: metadata_workers=None (IntOpt)Number of workers for metadata service You can keep all those options as-is (the default of 0) and just set your my.cnf max_connections variable to 2000. Best, -jay ___ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev ___ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
Re: [openstack-dev] [nova][cinder] (OperationalError) (1040, 'Too many connections') None None
On 09/29/2014 03:12 PM, Nader Lahouti wrote: Jay, I increased the max_connection to 2000 and so far don't see any issue. After launching 20 VMs the number of connections as follows: Mon Sep 29 05:05:29 PDT 2014 Number of open TCP:3306 - 326 Number of open TCP:3306 nova-api - 34 Number of open TCP:3306 mysqld - 163 Number of open TCP:8774 - 66 Number of nova-api - 98 It seems the default max_connection for Juno in not enough and should be changed as you suggested. But the question is what is correct/reliable value? max_connections is not an OpenStack configuration option (therefore there isn't a default max_connections for Juno. It is a MySQL-specific option. Best, -jay ___ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev