Top Nav

Archive | Distributions

Slow DNS Lookups For Web Requests

Ran into a strange problem recently … web server behind a firewall was able to resolve names with “dig” sucessfully but attempts to fetch web pages with “wget” or “curl” was very slow … seemed to hang on name resolution.  So this would work fine:

but this would hang for several seconds:

This problem extended to curl requests from with in PHP … in this case a Magento website … various plugins in the site were “calling home” when loading admin pages which resulted in making the admin painfully slow.

After much debugging we concluded that the problem was due to the fact that certain versions of glibc run IPv4 and IPv6 requests in parallel which breaks some firewalls and/or DNS servers. The work around was to add this option in /etc/resolv.conf:

This forces the requests to be made sequentially instead of in parallel. Hope this helps other struggling with these weird symptoms.


MariaDB on CentOS 7 – “Error in accept: Too many open files”

By default is seems the soft and hard open files limits on MariaDB in CentOS 7 are 1024 and 4096 respectfully. You can see these limits by first getting the process ID:

And then looking at the limits in the proc filesystem:

You’ll see something like this:

Notice the numbers for “Max open files”.

If you run into problems with MariaDB failing and you see errors like this in the log:

Then you need to increase the open files limits by editing:

and adding this line:

to the “[Service]” section. Then reload the systemctl daemon:

and restart the MariaDB service:

Now the limit will be increased.  For example:

UPDATE: We’ve seen similar problems with nginx. The solution is similar … increase the limits for the nginx service.

UPDATE: As noted by Bastiaan Welmers in the comments, it better to copy the service control file then to edit:







Fix Completion In Shell On Ubuntu

Sometimes with a new user on Ubuntu I find that filename auto-completion is missing in the shell. I found two issues that cause this:

1. Ubuntu sets new users to /bin/sh which is a very limited shell. So first step is to change the user to /bin/bash:

2. The /etc/bash.bashrc has filename completion disabled by default. Edit this file and un-comment the appropriate lines. Here’s what it looked like on one server:

So I changed to:

Upon login the new user should now have filename completion features.

Also note that by default “vi” is handicapped. Here’s how to upgrade to a full feature set:


Fix vi On Ubuntu

Some times I’ll run into an Ubuntu install where “vi” does not work as expected. For example the backspace and arrow keys will in insert mode will add characters. Turns out Ubuntu installs vim-tiny by default which is a stripped down (and historically compatible) version of vi. The solution is just to install the full version:


Manage Apache Modules On Ubuntu

Configuration for enable modules is stored in:


Available but inactive modules are stored in:


A module can be enabled with:

Where [modulename] is the module to be enabled.

For example:

will enable the rewrite module.

A module can be disabled in a similar fashion with:

Don’t forget to restart apache after making changes with: