I'm using OpenX 2.8.7 on nginx, PHP 5.3.6 (FastCGI via PHP-FPM) and APC. memcached version is 1.4.5 and have 64MB allocated to it.
I'm testing the speed of a banner delivery for a zone with 720 linked banners (all of them have several limitations - countries and 1-2 site variables).
When using file-based caching with 1200 second expiration, the banner is delivered (via php local mode tag) in 0.08-0.10 seconds. When delivered with memcached, it's always 0.13-0.16 seconds (still 1200 seconds expiry time).
The testing environment is not loaded in any way. There's a lot of free RAM.
Is it possible that OpenX with memcached will be slower than the default file-based caching?
Thanks,
Bar.
It is possible because you have an overhead of creating a connection to your Memcache server.
I believe that the Memcache caching is more useful when you have multiple OpenX servers serving ads.
Related
I have server A which runs under Windows (C#), I have server B which runs under Linux (Java). I need to setup a fast and reliable way of interaction between these two servers.
Requirements:
The size of data is small (many small messages of kbyte or something)
The rate is 1 message per second at least; good to have 1 per ms
The order should be preserved
Persistency not required
Delivery confirmation - yes
Some options out of my head:
Kafka / other messaging systems. The downsize is that I have to use a
middleware in a form of server.
Use Cloud queues from AWS or other cloud service. Can be costly?
Own messaging via TCP messages (very time consuming, I guess there
are open-source alternatives). No middleware.
Somehow via shared filesystem?
Setup Linux Server on Windows and.. what? Any special options if
applications are sharing same host?
I have recently been working on a nodejs app which uses open socket connections for all of its communication. The index is served up through nginx. I want to benchmark the ability of the server to handle a high amount of load which means I would end up testing my application's ability to manage open sockets, and not its ability to serve up the index file.
Does anyone know of a reliable way to do this?
You can try wsbench as solution, but you don't necessarily use wsbench for all transports.
For example:
node wsbench -c 100 -r 10 ws://example.com:8080/socket.io/websocket
my company wants to set up a small intranet portal on LAN. We are about 100 users at max. I am thinking about Joomla on a windows server environment with XAMPP.
Just to be safe, is XAMPP efficient for serving about 50 to 100 users ? Does it have some connection limits ? Also how about using it as a webserver for a small intranet portal.
Have your say guys.
XAMPP is "just" a collection of established applications for serving web pages. The underlaying apache can handle far more that the expected 100 users.
I haven't tried it yet, but think that maybe even the out-of-the-box configuration might be sufficient - if not you can always modify the underlaying Apache and/or MySQL database according to your needs.
XAMPP is just a handy single-click installer for Apache/MySQL/PHP which is all you need to run Joomla. This stack powers some of the largest websites on the net, so I don't think you'll run into any problems there. The specs of the server are what you should be most concerned about, but any low-range server should be able to handle that capacity without blinking.
Just be aware that the default settings used by XAMPP are specifically designed for developers working on their own local machines: there's no root password for MySQL, permissions are very relaxed, etc. Take some time to go through the config after you set it up.
You could also look at WAMP, depending on your requirements. Similar sort of thing but with the same issues that nickf stated.
Sometimes, when i click on my app link, it takes about 30 seconds before the app starts loading, while it's in the verifying stage. Other times, with the same install, one which i have loaded and used many times, it takes no time at all. Why? What can i change about the deployment to stop this? Please note that i have no admin access to the proxy server, nor possibility of changing the proxy server.
I think this is a performance issue that you need to take up with the guys who support the proxy server. The request is hitting the proxy server and waiting for it to give permission to come through andretrieve the files. It probably depends on how much traffic the server has at any given time.
Does anyone have experience deploying GWT apps to EC2?
If I were to install tomcat or apache on a ec2 instance, could I have users connect directly to a url pointing there?
Would that be cost effective, or would java hosting services be best?
Is there any downside to hosting the edge HTTP server on a regular hosting service and have that direct requests to EC2? Performance ever an issue here?
Other answers are correct but I just wanted to share the fact that we are are developing a product that is 100% EC2/S3 based and also have a pure GWT front end.
We use maven2 for builds and the excellent gwt-maven plugin. This makes it easy to produce a WAR package of our web application as output. We use Jetty but Tomcat would work just as well.
We have pound (a http accelerator/load balancer) running on the VM listening for http & https, which then forwards to requests to lighttpd (static) or jetty (app). This also simplifies SSL certificates because pound handles SSL. I've found Java servers have always been a pain to configure with SSL certs.
Yes, you can host pretty much whatever you want, as you effectively have a dedicated Linux machine at your command.
As I last recall, the basic rate for an EC2 instance, on their "low end box" worked out to around $75/month, so you can use that as a benchmark against other vendors. That also assumed that the machine is up 24x7 (since you pay for it by the hour).
The major downside of an EC2 instance is simply that it can "go away" at any time, and when it does, any data written to your instance will "go away" as well.
That means you need to set it up so that you can readily restart the server, but also you need to offline any data that you generate and wish to keep (either to one of Amazons other services, like S3, or to some other external service). That will incur some extra costs depending on volume.
Finally, you will also be billed for any traffic to the service.
The thing to compare it against is another "Virtual Server" from some other vendor. There is a lot of interesting things that can be done with EC2, but it may well be easier to go with a dedicated Virtual hosting service if you're just using a single machine.
Others have given good answers. I would have to add that you need to spend programmer time getting to know EC2's quirks and addressing them (e.g. with EBS). It's not completely trivial, and though it is useful knowledge to have and may be worth it for that reason alone, if you want to get up and running quickly with just a few servers, you should probably look at other hosted options.
On the other hand, if you plan to scale up massively enough (eventually hosting many servers on EC2) then I would highly recommend it. You have to architect a few things, but you need to do that anyways. The flexibility of on-demand computing, and the generally low price, makes this a killer platform once you reach a certain scale of operation.
You definitely can host an http server in EC2, but you need to take into consideration the following:
As mentioned before the cost can be much higher than alternative hosting solutions
Your instance (the machine you've started in EC2) can go off unexpectedly. There is no guarantee from Amazon for 24x7 availability. This mean that the data you've stored in local storage will be lost and when you've start a new instance, it will get a new IP.
To successfully host a server in EC2, you therefore need to employ some other services from Amazon. You need Elastic IP, so that you can circumvent the new IP address problem. You can also use Elastic Block Storage. This is a service that will allow you to mount in your machine a disk, that will not go away when your instance is lost.