Database, application server, development tools and model code
Welcome to the Linux Power8 server environment
|PowerLinux environment introduction|
Welcome to use IBM and CSDN together to provide PowerLinux environment management based on cloud computing. The operating system used in this environment is RHEL Redhat 7. The use of the hardware processor forPower 8 processor. Physical resources of the operating environment are 1 12G, CPU memory and 50GB file system space capacity.
RHEL 7 based on the Linux 3.10 kernel, to provide users with a powerful and simplified automatic installation, release and management, enhance the ease of use, stability, etc.. At the same time, the new kernel will bring more new features, enhance the performance and support more hardware for RHEL.
|Database, application server, development tools and model code|
Powerlinux is a good development and use of the platform, not only provide with X86 platform without differentiation development environment support, and with the aid of the power hardware platform of high security, high stability and high performance to meet customer's business needs.
PowerLinux environment, installation and configuration of the mainstream of the common development of language and tool products. Among them, the development including C / C + +, Java, PHP, ruby, python, Perl, and IBM has been optimized for the powerlinux compiler advance tool chains (ADT) and specific demonstration case; tool products including MySQL database, SQLite, Hadoop, middleware Tomcat and other products. Users can also be related to the installation of software tools.
- Development language C/C++Environment provides the C/C++ language development and operation support. Version of the C / C + + compiler installed GCC 4.82 and IBM provides advance ToolChain compiler (for IBM power processor optimized C / C + + compiler), directory is /opt/at7.0 (the system default is to use the built-in GCC, if use the ATC, the need to set the environment variable path to point to /opt/at7.0/bin). Environment provides a number of C/C++ model code, where the directory for the /root/code_samples/c_cpp directory.
- Development language JavaEnvironment provides the JAVA language development and operation support. Install the Java version for the openjdk 1.7.0, while providing the IBM J9 JDK directory for /opt/ibm/java-ppc-71/jre (the system default is to use the openjdk, if use J9 JDK, need to set the environment variable path to point to /opt/ibm/java-ppc-71/jre/bin). Environment provides a number of Java model code, where the directory for the /root/code_samples/java directory.
- Development language PHP
Environment provides the PHP language development and operation support. The installation of the PHP version is 5.4.16. Provided the PHP environment of the script, where the directory for the /root/code_samples/php directory.
- Development language Ruby
Environment provides the Ruby language development and operation support. The installation of the Ruby version is 2.0.0p353. Ruby environment provided by the script as well as the HelloWorld model code, where the directory for the /root/code_samples/ruby directory.
- Development language Python-
Environment provides the development and operation of Python language support. The installation of the Python version is 2.7.5. Python environment provided by the script as well as the HelloWorld model code, where the directory for the /root/code_samples/python directory.
- Development language Perl
Environment provides the Perl language development and operation support. The installation of the Perl version is 5.16.3. Perl environment provided by the script as well as the HelloWorld model code, where the directory for the /root/code_samples/perl directory.
- Application server Tomcat
- environment installed Tomcat application server running support. The installation of the Tocmat version is 7.0.42. Tomcat where the directory for the /etc/tomcat directory.
- Database MariaDB
Environment installed MariaDB database management system operation support. MariaDB database management system is a branch of the mysql. MariaDB is fully compatible with MySQL, including the API and command line, which can easily become the MySQL substitutes. The installation of the MariaDB version is 5.5.37.
- Database SQLite
- environment installed SQLite database running support. SQLite is a lightweight database, is to abide by the acid in a relational database management system and its design goal is embedded and are now in many embedded products used it, it occupies resources is very low. SQLite management command SQLite3, the installation of the SQLite version of 3.7.17.
|Know Power 8|
POWER 8 processorHas 12 core design, 96 threads, 22nm process manufacturing, and supports PCI-E 3 interface specification. The POWER 8 is a major bright spot is that IBM for the first time in conjunction with other technology giants to create the OpenPOWER foundation, the opening of the chip design architecture, to achieve the depth of customization program. Power 8 system is designed for large data IBM system, according to the April 7, 2014 IBM internal testing, the new generation of POWER 8 analysis faster than the latest x86 system 50 times faster. POWER 8 implementation of the open policy, support OpenStack, Linux and other open source software, and through the OpenPOWER foundation open IP authorized to fully meet the cloud computing, Web2.0 customer's customized needs.
- View Power8 hardware information
- some common commands to view the Power8 hardware characteristics.
1) view processor information: /proc/cpuinfo cat
2) view memory information: /proc/meminfo cat
3) view CPU multi thread information: --smt ppc64_cpu
4) view the directory space occupied: -h DF
- Power8 new characteristic transaction memory (Memory Transactional)
Transactional memory is a shared memory synchronization mechanism, which is implemented by a similar database transaction technology. Transactional memory access mechanism, allowing the process / thread to access the critical area of memory, to achieve the atomic characteristics of similar transactions in the instructions of the action or all of the execution, or one does not perform. The process / thread uses two new CPU instructions, tbegin and tend, to mark a memory area that is about to be accessed. Power8 from the hardware level to achieve the support of transactional memory. The use of this technology, to avoid the use of locks, such as the emergence of some of the problems such as deadlock and greatly improve the degree of parallelism, effectively improve the performance of the application system. System environment, the deployment of the use of Power8 services, the characteristics of the memory of examples, including a copy of the Java code and C++ code.
The latest version of the IBM Java 7 technology has supported the transactional memory characteristics of power8 server, a substantial increase in the use of some concurrenthashmap, hashtable and HashMap and concurrentlinkedqueue and map Java object scene application performance. Application code does not need to make any changes, you can enjoy the performance of the hardware transaction memory characteristics brought about by the surge. Attached to the Java example code in the /home/code_samples/tm/java directory. Main.java is a multi-threaded program code, mainly the use of multiple threads to HashTable objects at the same time to operate. Exetm_71.sh is the use of the TM characteristics of the running script (which runs about 2~3 minutes to complete); exetm_7_none.sh is not the use of the TM characteristics of the script (complete the operation takes about 5~6 minutes). By comparison, you will see the huge performance improvement brought by the TM feature.
If your application code is based on C/C++ language development, if you want to use the transactional memory characteristics, you need to make some changes to the code. In the case of the C++, it describes how to use the interface service provided by the transactional memory to achieve the performance improvement. Example code in /home/code_samples/tm/cpp/tmtest.cpp, compile the way for the implementation of the "compile.sh sh"". You can refer to the example of the source code and compile the script content, try to use the TM characteristics in their own code.
- Power8 new features CPU concurrent multi threading technology (SMT 8)
CPU concurrent multi threading technology SMT, IBM from the Power5 chip to achieve the new technology, which supports a CPU kernel while processing multiple instructions, so you can achieve a maximum of a single CPU several times the speed of processing. Concurrent multithreaded execution power sources in the CPU has a number of registers, but due to the CPU usually every time can only execute one instruction, even pipeline, a point in time real implementation of Alu occupy also only one instruction and other parallel instruction only at decoding, addressing. So most of the registers are not working and are idle. In view of this situation, IBM designed a register structure, capable of CPU processing status tracking, when it is discovered that there is unused registers, but this time another thread and use it, is under the condition of keeping the current process to another thread executing at the same time, so at the same time, a theory of CPU can process multiple threads of instructions. Of course, SMT is set to 8 and can not achieve the performance of 1 times the SMT eight times, in some cases test, SMT8 can achieve SMT1 three times ~ four times. Most applications can benefit from SMT technology.
Simultaneous multi threading (SMT) greatly improved the performance of multithreaded applications, the number of registers is multiple, so it can be in a dispatch window to a nuclear distribution of two, four, eight threads and let them run concurrently, each processor cycle issue multiple instructions in hardware threads of instructions, so we can offers the advantage of reproducing by pipeline registers. Power6 processor can only be set up to SMT for 2, SMT on the Power7 can be set up to 4. And the latest Power8 processor can achieve SMT 8, that is, a CPU can run eight threads simultaneously task. Most of the application systems can get better performance by using SMT multi thread technology.
You do not need to change the code logic of the application, you can use SMT concurrent multi-threaded technology to experience the changes brought about by the performance, to experience the charm of Power8. The following describes how to use SMT in the Linux Power8 environment with multiple threads:
Environment with an example of the sysbench program, through the operation of this example, you can experience the SMT multi threading technology to bring the CPU processing capacity. Performance test of modified sysbench workload is an open-source multi-threaded performance testing tool can perform CPU / memory / thread /IO/ database etc.. Here, we only simple use of thread detection, through the different SMT value set to illustrate the effects on the performance of the program. Sysbench example where the path is: /home/code_samples/benchmark/sysbench/sysbench-0.4.8/sysbench. Can run runbench_smt1.sh, runbench_smt2.sh, runbench_smt4.sh, runbench_smt8.sh different scripts to observe in a variety of SMT settings, the performance of the application.
- Power8 new features CAPI interface
Power8 provides a new set of interfaces, called CAPI (Accelerator Processor Interface Coherent). Through the CAPI interface, some of the graphics processor (Nvida) or FPGA and other external components can communicate directly with the Power8 processor. The CAPI interface is provided using the PCI-E3.0 channel. Application systems can use CAPI access to these graphics processors, FPGA, and other external components to achieve some of the key features. Because capi access external hardware can share the memory address of the processor, so reducing the stack path length caused by operating systems and different layer devices in the process of operation, so greatly enhance the operating efficiency and performance. Hardware acceleration function is realized. In previous experiments showed that a read or write operation command, use the capi interface flash memory access mode, with traditional after file system, LVM, adapter, disk compared to the former only need less than 500 instructions, and the traditional way and need to 20000 order.